@cosxai/ui 0.25.0 → 1.0.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (165) hide show
  1. package/CHANGELOG.md +597 -0
  2. package/NOTICE +11 -0
  3. package/README.md +52 -0
  4. package/package.json +57 -7
  5. package/src/brand.css +13 -0
  6. package/src/components/Badge.tsx +68 -0
  7. package/src/components/Button.tsx +178 -0
  8. package/src/components/Card.tsx +42 -0
  9. package/src/components/Checkbox.tsx +67 -0
  10. package/src/components/Dialog.tsx +111 -0
  11. package/src/components/Field.tsx +66 -0
  12. package/src/components/Figure.tsx +30 -0
  13. package/src/components/Icon.tsx +32 -0
  14. package/src/components/IconButton.tsx +55 -0
  15. package/src/components/Input.tsx +74 -0
  16. package/src/components/Logo.tsx +62 -0
  17. package/src/components/Marker.tsx +26 -0
  18. package/src/components/MetaLabel.tsx +38 -0
  19. package/src/components/Radio.tsx +72 -0
  20. package/src/components/Select.tsx +351 -0
  21. package/src/components/Spinner.tsx +20 -0
  22. package/src/components/Switch.tsx +67 -0
  23. package/src/components/Table.tsx +196 -0
  24. package/src/components/Tabs.tsx +124 -0
  25. package/src/components/Tag.tsx +35 -0
  26. package/src/components/Textarea.tsx +46 -0
  27. package/src/components/ThemeProvider.tsx +80 -0
  28. package/src/components/Toast.tsx +159 -0
  29. package/src/components/Tooltip.tsx +57 -0
  30. package/src/components/core.test.tsx +242 -0
  31. package/src/components/forms-control.ts +36 -0
  32. package/src/components/forms.test.tsx +280 -0
  33. package/src/components/logo-art.ts +4 -0
  34. package/src/components/overlays.test.tsx +245 -0
  35. package/src/components/useButtonAction.ts +57 -0
  36. package/src/fonts.css +20 -0
  37. package/src/index.ts +34 -24
  38. package/src/lib/cn.ts +23 -6
  39. package/src/modes.css +10 -0
  40. package/src/styles.css +19 -0
  41. package/src/theme.css +143 -0
  42. package/src/tokens/colors.css +112 -0
  43. package/src/tokens/compat.css +36 -0
  44. package/src/tokens/elevation.css +14 -0
  45. package/src/tokens/motion.css +42 -0
  46. package/src/tokens/spacing.css +55 -0
  47. package/src/tokens/typography-cjk.css +42 -0
  48. package/src/tokens/typography.css +81 -0
  49. package/src/actionbar/ActionBar.tsx +0 -837
  50. package/src/actionbar/ActionBarButton.tsx +0 -111
  51. package/src/actionbar/ActionBarMenuGroup.tsx +0 -116
  52. package/src/actionbar/ActionBarModeHandle.tsx +0 -171
  53. package/src/actionbar/ActionBarProvider.tsx +0 -91
  54. package/src/actionbar/actionbar-context.ts +0 -45
  55. package/src/actionbar/index.ts +0 -28
  56. package/src/actionbar/types.ts +0 -147
  57. package/src/actionbar/useActionBarItems.ts +0 -60
  58. package/src/actionbar/useActionBarMode.ts +0 -144
  59. package/src/actionbar/useActionBarPanel.ts +0 -56
  60. package/src/actionbar/useActionBarStatusDot.ts +0 -49
  61. package/src/actionbar/useActionBarToast.ts +0 -33
  62. package/src/ambient/AmbientBackdrop.tsx +0 -74
  63. package/src/ambient/CommandInput.tsx +0 -107
  64. package/src/ambient/SuperbarStrip.tsx +0 -36
  65. package/src/ambient/index.ts +0 -6
  66. package/src/bento/BentoCell.tsx +0 -66
  67. package/src/bento/BentoGrid.tsx +0 -42
  68. package/src/bento/index.ts +0 -2
  69. package/src/command/CommandPalette.tsx +0 -329
  70. package/src/command/CommandProvider.tsx +0 -57
  71. package/src/command/command-context.ts +0 -12
  72. package/src/command/index.ts +0 -6
  73. package/src/command/rank.ts +0 -50
  74. package/src/command/types.ts +0 -37
  75. package/src/command/useCommandSource.ts +0 -37
  76. package/src/dialogs/DialogsProvider.tsx +0 -216
  77. package/src/dialogs/Modal.tsx +0 -260
  78. package/src/dialogs/Toast.tsx +0 -85
  79. package/src/dialogs/dialogs-context.ts +0 -6
  80. package/src/dialogs/index.ts +0 -10
  81. package/src/dialogs/types.ts +0 -37
  82. package/src/dialogs/useDialogs.ts +0 -8
  83. package/src/editorial/EditorialSpotlight.tsx +0 -63
  84. package/src/editorial/Folio.tsx +0 -52
  85. package/src/editorial/PlateMarker.tsx +0 -33
  86. package/src/editorial/RomanSection.tsx +0 -65
  87. package/src/editorial/RunningMarginalia.tsx +0 -65
  88. package/src/editorial/index.ts +0 -10
  89. package/src/hooks/index.ts +0 -5
  90. package/src/hooks/useKeyboardHotkey.ts +0 -93
  91. package/src/hooks/useReducedMotion.ts +0 -20
  92. package/src/hooks/useViewport.ts +0 -61
  93. package/src/layout/Breadcrumb.tsx +0 -74
  94. package/src/layout/LeftNavRail.tsx +0 -139
  95. package/src/layout/MobileTabBar.tsx +0 -101
  96. package/src/layout/NavItem.tsx +0 -128
  97. package/src/layout/NavSearchTrigger.tsx +0 -88
  98. package/src/layout/NavSection.tsx +0 -40
  99. package/src/layout/RightSidebarPanel.tsx +0 -111
  100. package/src/layout/Shell.tsx +0 -91
  101. package/src/layout/SidePanel.tsx +0 -316
  102. package/src/layout/StickyBanner.tsx +0 -83
  103. package/src/layout/Topbar.tsx +0 -68
  104. package/src/layout/index.ts +0 -24
  105. package/src/layout/useNavRailState.ts +0 -69
  106. package/src/lib/time-utils.ts +0 -44
  107. package/src/neobrutalism/Marquee.tsx +0 -81
  108. package/src/neobrutalism/Sticker.tsx +0 -71
  109. package/src/neobrutalism/index.ts +0 -4
  110. package/src/primitives/Avatar.tsx +0 -53
  111. package/src/primitives/Button.tsx +0 -67
  112. package/src/primitives/Card.tsx +0 -41
  113. package/src/primitives/Checkbox.tsx +0 -87
  114. package/src/primitives/Chip.tsx +0 -191
  115. package/src/primitives/Combobox.tsx +0 -507
  116. package/src/primitives/CopyField.tsx +0 -139
  117. package/src/primitives/CountBadge.tsx +0 -50
  118. package/src/primitives/Input.tsx +0 -204
  119. package/src/primitives/Kbd.tsx +0 -45
  120. package/src/primitives/MentionCombobox.tsx +0 -612
  121. package/src/primitives/MultiCombobox.tsx +0 -327
  122. package/src/primitives/PageHeader.tsx +0 -77
  123. package/src/primitives/Radio.tsx +0 -131
  124. package/src/primitives/SegmentedControl.tsx +0 -135
  125. package/src/primitives/Select.tsx +0 -779
  126. package/src/primitives/SignaturePad.tsx +0 -461
  127. package/src/primitives/Tag.tsx +0 -56
  128. package/src/primitives/Textarea.tsx +0 -62
  129. package/src/primitives/ToggleSwitch.tsx +0 -79
  130. package/src/primitives/Tooltip.tsx +0 -213
  131. package/src/primitives/index.ts +0 -53
  132. package/src/pwa/InstallPromptBanner.tsx +0 -132
  133. package/src/pwa/index.ts +0 -4
  134. package/src/pwa/manifest.template.json +0 -20
  135. package/src/pwa/registerSW.ts +0 -55
  136. package/src/riso/Halftone.tsx +0 -85
  137. package/src/riso/Misregister.tsx +0 -63
  138. package/src/riso/RisoStamp.tsx +0 -76
  139. package/src/riso/index.ts +0 -3
  140. package/src/sketch/HandUnderline.tsx +0 -53
  141. package/src/sketch/RoughArrow.tsx +0 -91
  142. package/src/sketch/RoughBox.tsx +0 -73
  143. package/src/sketch/StickyNote.tsx +0 -56
  144. package/src/sketch/index.ts +0 -4
  145. package/src/styles/base.css +0 -186
  146. package/src/styles/chrome-ambient.css +0 -235
  147. package/src/styles/chrome-bento.css +0 -192
  148. package/src/styles/chrome-editorial.css +0 -168
  149. package/src/styles/chrome-neobrutalism.css +0 -326
  150. package/src/styles/chrome-riso.css +0 -339
  151. package/src/styles/chrome-sketch.css +0 -362
  152. package/src/styles/chrome-swiss.css +0 -265
  153. package/src/styles/chrome-terminal.css +0 -272
  154. package/src/styles/fonts.css +0 -1034
  155. package/src/styles/index.css +0 -343
  156. package/src/styles/tokens.css +0 -941
  157. package/src/terminal/AsciiBox.tsx +0 -65
  158. package/src/terminal/BrailleSpinner.tsx +0 -46
  159. package/src/terminal/index.ts +0 -4
  160. package/src/theme/ThemeProvider.tsx +0 -99
  161. package/src/theme/index.ts +0 -6
  162. package/src/theme/inline-script.ts +0 -40
  163. package/src/theme/theme-context.ts +0 -7
  164. package/src/theme/types.ts +0 -39
  165. package/src/theme/useTheme.ts +0 -8
@@ -1,235 +0,0 @@
1
- /* Ambient Glass chrome — component overrides.
2
- Tokens.css supplies the gradient backdrop + glass surface
3
- tokens + Superbar gradient. This file makes every chrome
4
- surface translucent with backdrop-filter blur so the ambient
5
- mesh shows through, and threads the Superbar accent into the
6
- places it belongs (active list items, AI input divider). */
7
-
8
- html[data-ck-chrome="ambient"] body {
9
- /* Pin the ambient mesh to the viewport so it doesn't scroll
10
- with content — feels like a real desktop wallpaper. */
11
- background-attachment: fixed;
12
- font-weight: 400;
13
- }
14
-
15
- /* ===== Layout chrome: glass surfaces over the mesh ============ */
16
-
17
- html[data-ck-chrome="ambient"] [data-ck-leftnav] {
18
- background: var(--ck-bg-sidebar) !important;
19
- backdrop-filter: var(--ck-blur-window);
20
- -webkit-backdrop-filter: var(--ck-blur-window);
21
- border-right: 1px solid var(--ck-border-subtle);
22
- }
23
-
24
- html[data-ck-chrome="ambient"] [data-ck-topbar] {
25
- background: var(--ck-bg-sidebar) !important;
26
- backdrop-filter: var(--ck-blur-window);
27
- -webkit-backdrop-filter: var(--ck-blur-window);
28
- border-bottom: 1px solid var(--ck-border-subtle);
29
- }
30
-
31
- /* ===== Cards ================================================= */
32
-
33
- html[data-ck-chrome="ambient"] .ck-card {
34
- background: var(--ck-bg-surface);
35
- border: 1px solid var(--ck-border-subtle);
36
- border-radius: 16px;
37
- box-shadow: var(--ck-shadow-1);
38
- backdrop-filter: var(--ck-blur-window);
39
- -webkit-backdrop-filter: var(--ck-blur-window);
40
- }
41
- html[data-ck-chrome="ambient"] .ck-card__head {
42
- border-bottom: 1px solid var(--ck-border-subtle);
43
- }
44
- html[data-ck-chrome="ambient"] .ck-card__foot {
45
- border-top: 1px solid var(--ck-border-subtle);
46
- background: transparent;
47
- }
48
-
49
- /* ===== Buttons — soft pills, no chunky shadow ================ */
50
-
51
- html[data-ck-chrome="ambient"] .ck-btn,
52
- html[data-ck-chrome="ambient"] .ck-actionbar-btn {
53
- border-radius: 10px;
54
- font-weight: 600;
55
- letter-spacing: 0;
56
- text-transform: none;
57
- transition: background var(--ck-dur-fast) var(--ck-ease),
58
- border-color var(--ck-dur-fast) var(--ck-ease),
59
- filter var(--ck-dur-fast) var(--ck-ease);
60
- }
61
- html[data-ck-chrome="ambient"] .ck-btn--primary {
62
- background: var(--ck-accent);
63
- /* Defaults to white to pair with ambient's deep saturated accents;
64
- consumer apps may stamp --ck-accent-fg when overriding
65
- --ck-accent-light-override (e.g. light brand → dark text). */
66
- color: var(--ck-accent-fg, #FFFFFF);
67
- border: none;
68
- box-shadow: var(--ck-shadow-1);
69
- }
70
- html[data-ck-chrome="ambient"] .ck-btn--primary:hover:not(:disabled) {
71
- filter: brightness(1.08);
72
- }
73
- html[data-ck-chrome="ambient"] .ck-btn--secondary {
74
- background: var(--ck-bg-surface);
75
- border-color: var(--ck-border-subtle);
76
- color: var(--ck-text-primary);
77
- backdrop-filter: var(--ck-blur-window);
78
- }
79
- html[data-ck-chrome="ambient"] .ck-btn--ghost {
80
- background: transparent;
81
- border: none;
82
- }
83
- html[data-ck-chrome="ambient"] .ck-btn--ghost:hover:not(:disabled) {
84
- background: var(--ck-bg-surface);
85
- }
86
-
87
- /* ===== Inputs / Textareas =================================== */
88
-
89
- html[data-ck-chrome="ambient"] .ck-input,
90
- html[data-ck-chrome="ambient"] .ck-textarea {
91
- background: var(--ck-bg-muted);
92
- border: 1px solid var(--ck-border-subtle);
93
- border-radius: 10px;
94
- color: var(--ck-text-primary);
95
- backdrop-filter: blur(12px);
96
- -webkit-backdrop-filter: blur(12px);
97
- }
98
- html[data-ck-chrome="ambient"] .ck-input:focus-visible,
99
- html[data-ck-chrome="ambient"] .ck-textarea:focus-visible {
100
- outline: none;
101
- border-color: var(--ck-accent-border) !important;
102
- box-shadow: 0 0 0 3px var(--ck-accent-muted) !important;
103
- }
104
-
105
- /* ===== Typography =========================================== */
106
-
107
- html[data-ck-chrome="ambient"] h1,
108
- html[data-ck-chrome="ambient"] .ck-h1 {
109
- font-weight: 700;
110
- letter-spacing: -0.02em;
111
- line-height: 1.05;
112
- }
113
- html[data-ck-chrome="ambient"] h2,
114
- html[data-ck-chrome="ambient"] .ck-h2 {
115
- font-weight: 700;
116
- letter-spacing: -0.01em;
117
- }
118
- html[data-ck-chrome="ambient"] h3,
119
- html[data-ck-chrome="ambient"] .ck-h3 {
120
- font-weight: 600;
121
- }
122
-
123
- /* ===== NavItem — active gets right-edge Superbar strip ======= */
124
-
125
- html[data-ck-chrome="ambient"] [data-ck-navitem] {
126
- position: relative;
127
- font-weight: 500 !important;
128
- color: var(--ck-text-secondary) !important;
129
- transition: background var(--ck-dur-fast) var(--ck-ease),
130
- color var(--ck-dur-fast) var(--ck-ease);
131
- }
132
- html[data-ck-chrome="ambient"] [data-ck-navitem]:not([data-active="true"]) {
133
- background: transparent !important;
134
- }
135
- html[data-ck-chrome="ambient"] [data-ck-navitem]:not([data-active="true"]):hover {
136
- background: var(--ck-bg-surface) !important;
137
- color: var(--ck-text-primary) !important;
138
- }
139
- html[data-ck-chrome="ambient"] [data-ck-navitem][data-active="true"] {
140
- background: var(--ck-bg-surface) !important;
141
- color: var(--ck-text-primary) !important;
142
- font-weight: 600 !important;
143
- }
144
- /* The Superbar right-edge strip — signature accent. 3 px wide,
145
- inset 6 px top/bottom so it doesn't kiss the border-radius. */
146
- html[data-ck-chrome="ambient"] [data-ck-navitem][data-active="true"]::after {
147
- content: "";
148
- position: absolute;
149
- right: 0;
150
- top: 6px;
151
- bottom: 6px;
152
- width: 3px;
153
- background: var(--ck-superbar);
154
- border-radius: 2px;
155
- pointer-events: none;
156
- }
157
-
158
- /* ===== Search trigger ====================================== */
159
-
160
- html[data-ck-chrome="ambient"] [data-ck-search-trigger] {
161
- background: var(--ck-bg-muted) !important;
162
- border: 1px solid var(--ck-border-subtle) !important;
163
- border-radius: 10px !important;
164
- backdrop-filter: var(--ck-blur-window);
165
- }
166
-
167
- /* ===== Tags / badges — soft tinted pills ===================== */
168
-
169
- html[data-ck-chrome="ambient"] [data-ck-tag] {
170
- border-radius: 8px !important;
171
- padding: 3px 10px !important;
172
- font-weight: 600 !important;
173
- border: 1px solid transparent !important;
174
- box-shadow: none !important;
175
- }
176
- html[data-ck-chrome="ambient"] [data-ck-tag][data-tone="accent"] {
177
- background: color-mix(in oklab, var(--ck-accent) 14%, transparent) !important;
178
- color: var(--ck-accent) !important;
179
- }
180
- html[data-ck-chrome="ambient"] [data-ck-tag][data-tone="success"] {
181
- background: color-mix(in oklab, var(--ck-success) 14%, transparent) !important;
182
- color: var(--ck-success) !important;
183
- }
184
- html[data-ck-chrome="ambient"] [data-ck-tag][data-tone="warning"] {
185
- background: color-mix(in oklab, var(--ck-warning) 14%, transparent) !important;
186
- color: var(--ck-warning) !important;
187
- }
188
- html[data-ck-chrome="ambient"] [data-ck-tag][data-tone="critical"] {
189
- background: color-mix(in oklab, var(--ck-critical) 14%, transparent) !important;
190
- color: var(--ck-critical) !important;
191
- }
192
- html[data-ck-chrome="ambient"] [data-ck-tag][data-tone="neutral"] {
193
- background: var(--ck-bg-muted) !important;
194
- color: var(--ck-text-secondary) !important;
195
- }
196
-
197
- /* ===== Action bar — floating glass pill ===================== */
198
-
199
- html[data-ck-chrome="ambient"] [data-ck-actionbar] {
200
- background: var(--ck-bg-sidebar) !important;
201
- backdrop-filter: var(--ck-blur-overlay);
202
- -webkit-backdrop-filter: var(--ck-blur-overlay);
203
- border: 1px solid var(--ck-border-subtle);
204
- border-radius: 24px;
205
- box-shadow: var(--ck-shadow-2);
206
- }
207
-
208
- /* ===== Modal — heavy backdrop blur ========================== */
209
-
210
- html[data-ck-chrome="ambient"] [role="dialog"] > div:first-child {
211
- background: rgba(0, 0, 0, 0.4) !important;
212
- backdrop-filter: var(--ck-blur-overlay);
213
- -webkit-backdrop-filter: var(--ck-blur-overlay);
214
- }
215
- html[data-ck-chrome="ambient"] [role="dialog"] > div > div {
216
- border-radius: 20px;
217
- }
218
-
219
- /* ===== Reduced motion ====================================== */
220
-
221
- @media (prefers-reduced-motion: reduce) {
222
- html[data-ck-chrome="ambient"] * {
223
- transition: none !important;
224
- }
225
- }
226
-
227
- html[data-ck-chrome="ambient"] .ck-actionbar-panel,
228
- html[data-ck-chrome="ambient"] .ck-actionbar-toast {
229
- background: var(--ck-bg-sidebar);
230
- backdrop-filter: var(--ck-blur-overlay);
231
- -webkit-backdrop-filter: var(--ck-blur-overlay);
232
- border: 1px solid var(--ck-border-subtle);
233
- border-radius: 20px;
234
- box-shadow: var(--ck-shadow-2);
235
- }
@@ -1,192 +0,0 @@
1
- /* Bento chrome — component overrides.
2
- Tokens.css supplies the neutral palette + generous radii + soft
3
- multi-layer shadows. This file polishes existing primitives to
4
- match: Apple-style large radius cards, soft pill buttons, no
5
- chunky borders, hover-lift on cells. The layout primitives
6
- (<BentoGrid> + <BentoCell>) do the heavy lifting elsewhere. */
7
-
8
- html[data-ck-chrome="bento"] body {
9
- font-weight: 400;
10
- font-feature-settings: "ss01", "cv11";
11
- }
12
-
13
- html[data-ck-chrome="bento"] h1,
14
- html[data-ck-chrome="bento"] .ck-h1 {
15
- font-weight: 600;
16
- letter-spacing: -0.025em;
17
- line-height: 1.05;
18
- }
19
- html[data-ck-chrome="bento"] h2,
20
- html[data-ck-chrome="bento"] .ck-h2 {
21
- font-weight: 600;
22
- letter-spacing: -0.015em;
23
- }
24
- html[data-ck-chrome="bento"] h3,
25
- html[data-ck-chrome="bento"] .ck-h3 {
26
- font-weight: 600;
27
- letter-spacing: -0.005em;
28
- }
29
-
30
- /* Buttons */
31
- html[data-ck-chrome="bento"] .ck-btn,
32
- html[data-ck-chrome="bento"] .ck-actionbar-btn {
33
- border-radius: 12px;
34
- font-weight: 500;
35
- letter-spacing: -0.005em;
36
- text-transform: none;
37
- box-shadow: var(--ck-shadow-1);
38
- transition: background 160ms ease, transform 160ms ease;
39
- }
40
- html[data-ck-chrome="bento"] .ck-btn--primary {
41
- background: var(--ck-text-primary);
42
- color: var(--ck-bg-canvas);
43
- border: none;
44
- }
45
- html[data-ck-chrome="bento"] .ck-btn--primary:hover:not(:disabled) {
46
- background: color-mix(in oklab, var(--ck-text-primary), white 12%);
47
- }
48
- html[data-ck-chrome="bento"] .ck-btn--secondary {
49
- background: var(--ck-bg-surface);
50
- color: var(--ck-text-primary);
51
- border: 1px solid var(--ck-border-subtle);
52
- }
53
- html[data-ck-chrome="bento"] .ck-btn--ghost {
54
- background: transparent;
55
- border: none;
56
- box-shadow: none;
57
- }
58
- html[data-ck-chrome="bento"] .ck-btn--ghost:hover:not(:disabled) {
59
- background: var(--ck-bg-muted);
60
- }
61
-
62
- /* Inputs */
63
- html[data-ck-chrome="bento"] .ck-input,
64
- html[data-ck-chrome="bento"] .ck-textarea {
65
- background: var(--ck-bg-surface);
66
- border: 1px solid var(--ck-border-subtle);
67
- border-radius: 12px;
68
- }
69
- html[data-ck-chrome="bento"] .ck-input:focus-visible,
70
- html[data-ck-chrome="bento"] .ck-textarea:focus-visible {
71
- outline: none;
72
- border-color: var(--ck-accent) !important;
73
- box-shadow: 0 0 0 3px var(--ck-accent-muted) !important;
74
- }
75
-
76
- /* Cards — bento baseline */
77
- html[data-ck-chrome="bento"] .ck-card {
78
- background: var(--ck-bg-surface);
79
- border: 1px solid var(--ck-border-subtle);
80
- border-radius: 22px;
81
- box-shadow: var(--ck-shadow-2);
82
- }
83
- html[data-ck-chrome="bento"] .ck-card__head {
84
- border-bottom: 1px solid var(--ck-border-subtle);
85
- padding: 18px 24px;
86
- }
87
- html[data-ck-chrome="bento"] .ck-card__body {
88
- padding: 24px;
89
- }
90
- html[data-ck-chrome="bento"] .ck-card__foot {
91
- border-top: 1px solid var(--ck-border-subtle);
92
- background: transparent;
93
- padding: 16px 24px;
94
- }
95
-
96
- /* Tags — soft tinted pills */
97
- html[data-ck-chrome="bento"] [data-ck-tag] {
98
- background: var(--ck-bg-muted) !important;
99
- border-radius: 999px !important;
100
- padding: 4px 10px !important;
101
- font-weight: 500 !important;
102
- letter-spacing: 0 !important;
103
- text-transform: none !important;
104
- box-shadow: none !important;
105
- border: none !important;
106
- font-size: 12px !important;
107
- }
108
- html[data-ck-chrome="bento"] [data-ck-tag][data-tone="accent"] {
109
- background: var(--ck-accent-muted) !important;
110
- color: var(--ck-accent) !important;
111
- }
112
- html[data-ck-chrome="bento"] [data-ck-tag][data-tone="success"] {
113
- background: color-mix(in oklab, var(--ck-success) 12%, transparent) !important;
114
- color: var(--ck-success) !important;
115
- }
116
- html[data-ck-chrome="bento"] [data-ck-tag][data-tone="warning"] {
117
- background: color-mix(in oklab, var(--ck-warning) 14%, transparent) !important;
118
- color: var(--ck-warning) !important;
119
- }
120
- html[data-ck-chrome="bento"] [data-ck-tag][data-tone="critical"] {
121
- background: color-mix(in oklab, var(--ck-critical) 12%, transparent) !important;
122
- color: var(--ck-critical) !important;
123
- }
124
-
125
- /* Layout chrome */
126
- html[data-ck-chrome="bento"] [data-ck-leftnav] {
127
- background: var(--ck-bg-sidebar) !important;
128
- border-right: 1px solid var(--ck-border-subtle);
129
- }
130
- html[data-ck-chrome="bento"] [data-ck-topbar] {
131
- background: var(--ck-bg-canvas) !important;
132
- border-bottom: 1px solid var(--ck-border-subtle);
133
- }
134
-
135
- /* NavItem — soft pill */
136
- html[data-ck-chrome="bento"] [data-ck-navitem] {
137
- background: transparent !important;
138
- border-radius: 10px !important;
139
- font-weight: 500 !important;
140
- }
141
- html[data-ck-chrome="bento"] [data-ck-navitem]:not([data-active="true"]):hover {
142
- background: var(--ck-bg-muted) !important;
143
- }
144
- html[data-ck-chrome="bento"] [data-ck-navitem][data-active="true"] {
145
- background: var(--ck-bg-muted) !important;
146
- color: var(--ck-text-primary) !important;
147
- font-weight: 600 !important;
148
- }
149
-
150
- /* Search trigger */
151
- html[data-ck-chrome="bento"] [data-ck-search-trigger] {
152
- background: var(--ck-bg-surface) !important;
153
- border: 1px solid var(--ck-border-subtle) !important;
154
- border-radius: 12px !important;
155
- box-shadow: var(--ck-shadow-1);
156
- }
157
-
158
- /* Action bar */
159
- html[data-ck-chrome="bento"] [data-ck-actionbar] {
160
- background: var(--ck-bg-surface) !important;
161
- border: 1px solid var(--ck-border-subtle);
162
- border-radius: 16px;
163
- box-shadow: var(--ck-shadow-2);
164
- }
165
-
166
- /* Modal */
167
- html[data-ck-chrome="bento"] [role="dialog"] > div:first-child {
168
- background: rgba(0, 0, 0, 0.4);
169
- backdrop-filter: blur(8px);
170
- }
171
- html[data-ck-chrome="bento"] [role="dialog"] > div > div {
172
- border-radius: 22px;
173
- box-shadow: var(--ck-shadow-3);
174
- }
175
-
176
- /* BentoCell — hover lift signature */
177
- html[data-ck-chrome="bento"] [data-ck-bento-cell] {
178
- transition: transform 240ms cubic-bezier(0.2, 0, 0, 1),
179
- box-shadow 240ms cubic-bezier(0.2, 0, 0, 1);
180
- }
181
- html[data-ck-chrome="bento"] [data-ck-bento-cell][data-interactive="true"]:hover {
182
- transform: translateY(-3px);
183
- box-shadow: var(--ck-shadow-3);
184
- }
185
-
186
- html[data-ck-chrome="bento"] .ck-actionbar-panel,
187
- html[data-ck-chrome="bento"] .ck-actionbar-toast {
188
- background: var(--ck-bg-surface);
189
- border: 1px solid var(--ck-border-subtle);
190
- border-radius: 16px;
191
- box-shadow: var(--ck-shadow-2);
192
- }
@@ -1,168 +0,0 @@
1
- /* Editorial chrome — component overrides.
2
- Token overrides live in tokens.css; this file restyles the
3
- primitives' shape / feel to match the print-magazine brief.
4
- Loads alongside index.css; takes effect only when
5
- html[data-ck-chrome="editorial"] is set on the root. */
6
-
7
- html[data-ck-chrome="editorial"] body {
8
- /* Optical kerning + ligatures for the editorial body type. */
9
- font-feature-settings: "kern", "liga", "ss01";
10
- -webkit-font-smoothing: antialiased;
11
- }
12
-
13
- /* Buttons — fully rounded pills, no shadow ever. Primary is
14
- coral fill with near-black text (the brief specifies dark text
15
- on coral, not white). */
16
- html[data-ck-chrome="editorial"] .ck-btn,
17
- html[data-ck-chrome="editorial"] .ck-actionbar-btn {
18
- height: 36px;
19
- padding: 0 18px;
20
- border-radius: 9999px;
21
- font-family: var(--ck-font-sans);
22
- font-size: 12px;
23
- font-weight: 500;
24
- letter-spacing: 0.04em;
25
- text-transform: uppercase;
26
- box-shadow: none !important;
27
- }
28
-
29
- html[data-ck-chrome="editorial"] .ck-btn--primary,
30
- html[data-ck-chrome="editorial"] .ck-actionbar-btn--primary {
31
- background: var(--ck-accent);
32
- /* Defaults to near-black to pair with coral; consumer apps may
33
- stamp --ck-accent-fg to a different colour when overriding
34
- --ck-accent-light-override (e.g. dark brand → white text). */
35
- color: var(--ck-accent-fg, #0F0F0F);
36
- }
37
- html[data-ck-chrome="editorial"] .ck-btn--primary:hover,
38
- html[data-ck-chrome="editorial"] .ck-actionbar-btn--primary:hover {
39
- background: var(--ck-accent-hover);
40
- }
41
-
42
- html[data-ck-chrome="editorial"] .ck-btn--secondary {
43
- background: transparent;
44
- border: 1px solid var(--ck-text-primary);
45
- color: var(--ck-text-primary);
46
- }
47
-
48
- /* Cards — 1 px hairline, no shadow, slightly tighter radius.
49
- Index-card feel, not glassmorphism. */
50
- html[data-ck-chrome="editorial"] .ck-card {
51
- background: var(--ck-bg-surface);
52
- border: 1px solid var(--ck-border-subtle);
53
- border-radius: 16px;
54
- box-shadow: none;
55
- }
56
-
57
- /* Eyebrow / tag — editorial uses a longer track + leading
58
- em-dash. Reads as a magazine section label. */
59
- html[data-ck-chrome="editorial"] .ck-eyebrow,
60
- html[data-ck-chrome="editorial"] .ck-tag {
61
- letter-spacing: 0.18em;
62
- font-family: var(--ck-font-sans);
63
- color: var(--ck-text-secondary);
64
- }
65
- html[data-ck-chrome="editorial"] .ck-eyebrow::before {
66
- content: "— ";
67
- color: var(--ck-text-tertiary);
68
- }
69
-
70
- /* Headings switch to serif via --ck-font-display. ck-h1/h2/h3
71
- already read from --ck-font-sans by default; under editorial
72
- we override at this scope so the typography stack rotates
73
- without touching component code. */
74
- html[data-ck-chrome="editorial"] h1,
75
- html[data-ck-chrome="editorial"] h2,
76
- html[data-ck-chrome="editorial"] h3,
77
- html[data-ck-chrome="editorial"] .ck-h1,
78
- html[data-ck-chrome="editorial"] .ck-h2,
79
- html[data-ck-chrome="editorial"] .ck-h3 {
80
- font-family: var(--ck-font-display);
81
- letter-spacing: -0.012em;
82
- line-height: 1.08;
83
- font-weight: 500;
84
- }
85
-
86
- /* Italic-in-the-middle treatment for the docs h1. Wrapping
87
- the italicised word in <em> is enough — the serif's italic
88
- variant carries the editorial signature move. */
89
- html[data-ck-chrome="editorial"] h1 em,
90
- html[data-ck-chrome="editorial"] h2 em,
91
- html[data-ck-chrome="editorial"] .ck-h1 em,
92
- html[data-ck-chrome="editorial"] .ck-h2 em {
93
- font-style: italic;
94
- color: var(--ck-text-primary);
95
- }
96
-
97
- /* Inputs — paper feel, no inner shadow, ink-coloured borders. */
98
- html[data-ck-chrome="editorial"] .ck-input,
99
- html[data-ck-chrome="editorial"] .ck-textarea {
100
- background: var(--ck-bg-surface);
101
- border-color: var(--ck-border-subtle);
102
- font-family: var(--ck-font-sans);
103
- }
104
-
105
- /* Action bar — keep the pill profile but drop the shadow. The
106
- bar is just a hairline-bounded paper strip floating on cream. */
107
- html[data-ck-chrome="editorial"] [data-ck-actionbar] {
108
- background: var(--ck-bg-surface);
109
- border-color: var(--ck-border-subtle);
110
- box-shadow: none;
111
- }
112
-
113
- /* Left rail — same cream paper, hairline divider. */
114
- html[data-ck-chrome="editorial"] [data-ck-leftnav] {
115
- background: var(--ck-bg-canvas);
116
- border-right-color: var(--ck-border-subtle);
117
- }
118
-
119
- /* Nav-item hover — match the actionbar / button hover token so
120
- every interactive surface in the editorial chrome reads as
121
- actionable on pointer enter. The sketch / ambient / riso / etc.
122
- chromes have always carried this rule; editorial was the only
123
- gap (consumers saw rail items as static even though they're
124
- navigable). Active rows keep their accent-muted background from
125
- the base NavItem inline style, so the `:not([data-active="true"])`
126
- guard is the same shape the other chromes use. */
127
- html[data-ck-chrome="editorial"] [data-ck-navitem]:not([data-active="true"]):hover {
128
- background: var(--ck-bg-muted);
129
- }
130
-
131
- /* Topbar — flatten to the paper, lose the bottom border (the
132
- folio rule under it is the visual divider in editorial). */
133
- html[data-ck-chrome="editorial"] [data-ck-topbar] {
134
- background: var(--ck-bg-canvas);
135
- border-bottom: none;
136
- }
137
-
138
- /* Modal backdrop — printerly, not glassy. Cream-tinted
139
- translucent overlay instead of blue-tinted blur. */
140
- html[data-ck-chrome="editorial"] [role="dialog"] > div:first-child {
141
- background: rgba(15, 15, 15, 0.4);
142
- backdrop-filter: none;
143
- }
144
-
145
- /* <EditorialSpotlight>: dark canvas with cream cards floating on
146
- top. The wrapper sets --ck-text-primary to cream so paragraphs
147
- on the dark surround read correctly — but cards inside it stay
148
- cream paper, so their text needs to flip BACK to dark ink. Rebind
149
- the text variables on the .ck-card scope and everything nested
150
- inside (h1/h2, body copy, eyebrows, captions) reads dark again. */
151
- [data-ck-spotlight] .ck-card {
152
- --ck-text-primary: #0F0F0F;
153
- --ck-text-secondary: #6B6557;
154
- --ck-text-tertiary: #A8A294;
155
- color: #0F0F0F;
156
- }
157
- [data-ck-spotlight] .ck-card .ck-eyebrow,
158
- [data-ck-spotlight] .ck-card .ck-tag {
159
- color: var(--ck-text-secondary);
160
- }
161
-
162
- /* ActionBar panel/toast — flat paper, hairline, no drop glow. */
163
- html[data-ck-chrome="editorial"] .ck-actionbar-panel,
164
- html[data-ck-chrome="editorial"] .ck-actionbar-toast {
165
- background: var(--ck-bg-surface);
166
- border-color: var(--ck-border-subtle);
167
- box-shadow: var(--ck-shadow-1, 0 2px 8px rgba(0, 0, 0, 0.06));
168
- }