Files
plane/packages/tailwind-config/index.css
Anmol Singh Bhatia 1cf0249d24 chore: wire @makeplane/propel into web (#9699)
* chore: wire @makeplane/propel into web

* style: fix comboButton indentation in dropdowns
2026-08-28 00:09:16 +05:30

242 lines
5.7 KiB
CSS

@import "tailwindcss";
/*
* Design tokens + animations come from @makeplane/propel, which supersedes the
* variables.css / animations.css this package used to ship. It defines every
* token name we had bar one — --scrollbar-thumb-surface-hover, whose consumers
* now point at propel's --scrollbar-thumb-hover — plus every --animate-* token
* and a superset of our keyframes, and it keys light/dark off the same
* [data-theme*="dark"] / [data-theme="dark-contrast"] selectors we already use.
*
* Token *values* are propel's, not ours: many differ from what this package
* shipped. See the migration notes for the drift that needs a visual pass.
*
* Styles barrel (tokens + animations + `@source` of propel dist) so component
* utilities emit. propel's CSS does not import tailwindcss itself.
*/
@import "@makeplane/propel/styles";
@source "../**/*.{ts,tsx}";
* {
-webkit-text-size-adjust: 100%;
-ms-text-size-adjust: 100%;
font-variant-ligatures: none;
-webkit-font-variant-ligatures: none;
text-rendering: optimizeLegibility;
-moz-osx-font-smoothing: grayscale;
-webkit-font-smoothing: antialiased;
}
body {
@apply font-body bg-canvas text-primary;
}
/* emoji icon picker */
@utility conical-gradient {
background: conic-gradient(
from 180deg at 50% 50%,
#ff6b00 0deg,
#f7ae59 70.5deg,
#3f76ff 151.12deg,
#05c3ff 213deg,
#18914f 289.87deg,
#f6f172 329.25deg,
#ff6b00 360deg
);
}
/* progress bar */
@utility progress-bar {
fill: currentColor;
color: var(--text-color-secondary);
}
::-webkit-input-placeholder,
::placeholder,
:-ms-input-placeholder {
@apply text-placeholder;
}
@utility vertical-lr {
writing-mode: vertical-lr;
width: fit-content;
}
@-moz-document url-prefix() {
* {
scrollbar-width: none;
}
.vertical-scrollbar,
.horizontal-scrollbar {
scrollbar-width: initial;
scrollbar-color: rgba(96, 100, 108, 0.1) transparent;
&:hover {
scrollbar-color: rgba(96, 100, 108, 0.25) transparent;
}
&:active {
scrollbar-color: rgba(96, 100, 108, 0.7) transparent;
}
}
}
/* ---------- Scrollbar utilities ----------- */
::-webkit-scrollbar {
@apply hidden;
}
.vertical-scrollbar {
@apply overflow-y-auto;
}
.horizontal-scrollbar {
@apply overflow-x-auto;
}
.vertical-scrollbar,
.horizontal-scrollbar {
&::-webkit-scrollbar {
@apply block;
}
&::-webkit-scrollbar-track {
@apply bg-layer-transparent rounded-full;
}
&::-webkit-scrollbar-thumb {
background-clip: padding-box;
@apply bg-scrollbar-thumb rounded-full;
&:hover {
@apply bg-scrollbar-thumb-hover;
}
&:active {
@apply bg-scrollbar-thumb-active;
}
}
/* Container hover out-orders `::-webkit-scrollbar-thumb:hover` and `:active`
at equal specificity, so this shade shows while hovering *and* dragging. */
&:hover::-webkit-scrollbar-thumb {
@apply bg-scrollbar-thumb-hover;
}
&::-webkit-scrollbar-corner {
@apply bg-layer-transparent;
}
}
.vertical-scrollbar-margin-top-md::-webkit-scrollbar-track {
margin-top: 44px;
}
/* Scrollbar variants
* `sm`, `md` and `lg` collide by name with propel's own scrollbar utilities,
* imported at the top of this file. Both definitions are emitted and ours lands
* second, so it wins — but only for properties it actually restates. propel sets
* `scrollbar-width` / `scrollbar-color`, and from Chromium 121 setting either of
* those makes the browser ignore every ::-webkit-scrollbar rule on the element,
* which would silently drop the geometry below and leave one 11px scrollbar
* everywhere. Resetting both back to `auto` hands the pseudo-elements back.
*
* This leans on ours being emitted after propel's, which follows from `@utility`
* registration order and is not something Tailwind documents for duplicate
* names. Keep these definitions below the propel @import. If scrollbars ever
* turn thin and uniform app-wide, this is why — rename ours to break the tie.
*
* `xs` has no propel counterpart, so it needs no reset.
*/
@utility scrollbar-xs {
&::-webkit-scrollbar {
height: 10px;
width: 10px;
}
&::-webkit-scrollbar-thumb {
border: 3px solid rgba(0, 0, 0, 0);
}
}
@utility scrollbar-sm {
scrollbar-width: auto;
scrollbar-color: auto;
&:hover {
scrollbar-color: auto;
}
&::-webkit-scrollbar {
height: 12px;
width: 12px;
}
&::-webkit-scrollbar-thumb {
border: 3px solid rgba(0, 0, 0, 0);
}
}
@utility scrollbar-md {
scrollbar-width: auto;
scrollbar-color: auto;
&:hover {
scrollbar-color: auto;
}
&::-webkit-scrollbar {
height: 14px;
width: 14px;
}
&::-webkit-scrollbar-thumb {
border: 3px solid rgba(0, 0, 0, 0);
}
}
@utility scrollbar-lg {
scrollbar-width: auto;
scrollbar-color: auto;
&:hover {
scrollbar-color: auto;
}
&::-webkit-scrollbar {
height: 16px;
width: 16px;
}
&::-webkit-scrollbar-thumb {
border: 4px solid rgba(0, 0, 0, 0);
}
}
/* highlight class */
@utility highlight {
border: 1px solid var(--border-color-accent-strong) !important;
}
@utility highlight-with-line {
border-left: 5px solid var(--border-color-accent-strong) !important;
background: var(--background-color-layer-2);
}
/* By applying below class, the autofilled text in form fields will not have the default autofill background color and styles applied by WebKit browsers */
@utility disable-autofill-style {
&:-webkit-autofill,
&:-webkit-autofill:hover,
&:-webkit-autofill:focus,
&:-webkit-autofill:active {
-webkit-background-clip: text;
}
}
@layer base {
button:not(:disabled),
[role="button"]:not(:disabled) {
cursor: pointer;
}
input::placeholder,
textarea::placeholder {
@apply text-placeholder;
}
}