@cosxai/ui 0.24.0 → 1.0.0-alpha.0

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 (133) hide show
  1. package/CHANGELOG.md +577 -0
  2. package/NOTICE +11 -0
  3. package/README.md +52 -0
  4. package/package.json +33 -7
  5. package/src/fonts.css +20 -0
  6. package/src/index.ts +8 -25
  7. package/src/lib/cn.ts +23 -6
  8. package/src/styles.css +17 -0
  9. package/src/theme.css +132 -0
  10. package/src/tokens/colors.css +112 -0
  11. package/src/tokens/compat.css +36 -0
  12. package/src/tokens/elevation.css +14 -0
  13. package/src/tokens/motion.css +42 -0
  14. package/src/tokens/spacing.css +55 -0
  15. package/src/tokens/typography-cjk.css +42 -0
  16. package/src/tokens/typography.css +81 -0
  17. package/src/actionbar/ActionBar.tsx +0 -837
  18. package/src/actionbar/ActionBarButton.tsx +0 -111
  19. package/src/actionbar/ActionBarMenuGroup.tsx +0 -116
  20. package/src/actionbar/ActionBarModeHandle.tsx +0 -171
  21. package/src/actionbar/ActionBarProvider.tsx +0 -91
  22. package/src/actionbar/actionbar-context.ts +0 -45
  23. package/src/actionbar/index.ts +0 -28
  24. package/src/actionbar/types.ts +0 -147
  25. package/src/actionbar/useActionBarItems.ts +0 -60
  26. package/src/actionbar/useActionBarMode.ts +0 -144
  27. package/src/actionbar/useActionBarPanel.ts +0 -56
  28. package/src/actionbar/useActionBarStatusDot.ts +0 -49
  29. package/src/actionbar/useActionBarToast.ts +0 -33
  30. package/src/ambient/AmbientBackdrop.tsx +0 -74
  31. package/src/ambient/CommandInput.tsx +0 -107
  32. package/src/ambient/SuperbarStrip.tsx +0 -36
  33. package/src/ambient/index.ts +0 -6
  34. package/src/bento/BentoCell.tsx +0 -66
  35. package/src/bento/BentoGrid.tsx +0 -42
  36. package/src/bento/index.ts +0 -2
  37. package/src/command/CommandPalette.tsx +0 -329
  38. package/src/command/CommandProvider.tsx +0 -57
  39. package/src/command/command-context.ts +0 -12
  40. package/src/command/index.ts +0 -6
  41. package/src/command/rank.ts +0 -50
  42. package/src/command/types.ts +0 -37
  43. package/src/command/useCommandSource.ts +0 -37
  44. package/src/dialogs/DialogsProvider.tsx +0 -216
  45. package/src/dialogs/Modal.tsx +0 -260
  46. package/src/dialogs/Toast.tsx +0 -85
  47. package/src/dialogs/dialogs-context.ts +0 -6
  48. package/src/dialogs/index.ts +0 -10
  49. package/src/dialogs/types.ts +0 -37
  50. package/src/dialogs/useDialogs.ts +0 -8
  51. package/src/editorial/EditorialSpotlight.tsx +0 -63
  52. package/src/editorial/Folio.tsx +0 -52
  53. package/src/editorial/PlateMarker.tsx +0 -33
  54. package/src/editorial/RomanSection.tsx +0 -65
  55. package/src/editorial/RunningMarginalia.tsx +0 -65
  56. package/src/editorial/index.ts +0 -10
  57. package/src/hooks/index.ts +0 -5
  58. package/src/hooks/useKeyboardHotkey.ts +0 -93
  59. package/src/hooks/useReducedMotion.ts +0 -20
  60. package/src/hooks/useViewport.ts +0 -61
  61. package/src/layout/Breadcrumb.tsx +0 -74
  62. package/src/layout/LeftNavRail.tsx +0 -139
  63. package/src/layout/MobileTabBar.tsx +0 -101
  64. package/src/layout/NavItem.tsx +0 -128
  65. package/src/layout/NavSearchTrigger.tsx +0 -88
  66. package/src/layout/NavSection.tsx +0 -40
  67. package/src/layout/RightSidebarPanel.tsx +0 -111
  68. package/src/layout/Shell.tsx +0 -91
  69. package/src/layout/SidePanel.tsx +0 -316
  70. package/src/layout/StickyBanner.tsx +0 -83
  71. package/src/layout/Topbar.tsx +0 -68
  72. package/src/layout/index.ts +0 -24
  73. package/src/layout/useNavRailState.ts +0 -69
  74. package/src/lib/time-utils.ts +0 -44
  75. package/src/neobrutalism/Marquee.tsx +0 -81
  76. package/src/neobrutalism/Sticker.tsx +0 -71
  77. package/src/neobrutalism/index.ts +0 -4
  78. package/src/primitives/Avatar.tsx +0 -53
  79. package/src/primitives/Button.tsx +0 -67
  80. package/src/primitives/Card.tsx +0 -41
  81. package/src/primitives/Checkbox.tsx +0 -87
  82. package/src/primitives/Chip.tsx +0 -177
  83. package/src/primitives/Combobox.tsx +0 -475
  84. package/src/primitives/CopyField.tsx +0 -139
  85. package/src/primitives/CountBadge.tsx +0 -50
  86. package/src/primitives/Input.tsx +0 -161
  87. package/src/primitives/Kbd.tsx +0 -45
  88. package/src/primitives/MentionCombobox.tsx +0 -612
  89. package/src/primitives/MultiCombobox.tsx +0 -179
  90. package/src/primitives/PageHeader.tsx +0 -77
  91. package/src/primitives/Radio.tsx +0 -131
  92. package/src/primitives/SegmentedControl.tsx +0 -135
  93. package/src/primitives/Select.tsx +0 -779
  94. package/src/primitives/SignaturePad.tsx +0 -461
  95. package/src/primitives/Tag.tsx +0 -56
  96. package/src/primitives/Textarea.tsx +0 -62
  97. package/src/primitives/ToggleSwitch.tsx +0 -79
  98. package/src/primitives/Tooltip.tsx +0 -213
  99. package/src/primitives/index.ts +0 -48
  100. package/src/pwa/InstallPromptBanner.tsx +0 -132
  101. package/src/pwa/index.ts +0 -4
  102. package/src/pwa/manifest.template.json +0 -20
  103. package/src/pwa/registerSW.ts +0 -55
  104. package/src/riso/Halftone.tsx +0 -85
  105. package/src/riso/Misregister.tsx +0 -63
  106. package/src/riso/RisoStamp.tsx +0 -76
  107. package/src/riso/index.ts +0 -3
  108. package/src/sketch/HandUnderline.tsx +0 -53
  109. package/src/sketch/RoughArrow.tsx +0 -91
  110. package/src/sketch/RoughBox.tsx +0 -73
  111. package/src/sketch/StickyNote.tsx +0 -56
  112. package/src/sketch/index.ts +0 -4
  113. package/src/styles/base.css +0 -186
  114. package/src/styles/chrome-ambient.css +0 -235
  115. package/src/styles/chrome-bento.css +0 -192
  116. package/src/styles/chrome-editorial.css +0 -168
  117. package/src/styles/chrome-neobrutalism.css +0 -326
  118. package/src/styles/chrome-riso.css +0 -339
  119. package/src/styles/chrome-sketch.css +0 -362
  120. package/src/styles/chrome-swiss.css +0 -265
  121. package/src/styles/chrome-terminal.css +0 -272
  122. package/src/styles/fonts.css +0 -1034
  123. package/src/styles/index.css +0 -306
  124. package/src/styles/tokens.css +0 -941
  125. package/src/terminal/AsciiBox.tsx +0 -65
  126. package/src/terminal/BrailleSpinner.tsx +0 -46
  127. package/src/terminal/index.ts +0 -4
  128. package/src/theme/ThemeProvider.tsx +0 -99
  129. package/src/theme/index.ts +0 -6
  130. package/src/theme/inline-script.ts +0 -40
  131. package/src/theme/theme-context.ts +0 -7
  132. package/src/theme/types.ts +0 -39
  133. 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
- }