@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.
- package/CHANGELOG.md +597 -0
- package/NOTICE +11 -0
- package/README.md +52 -0
- package/package.json +57 -7
- package/src/brand.css +13 -0
- package/src/components/Badge.tsx +68 -0
- package/src/components/Button.tsx +178 -0
- package/src/components/Card.tsx +42 -0
- package/src/components/Checkbox.tsx +67 -0
- package/src/components/Dialog.tsx +111 -0
- package/src/components/Field.tsx +66 -0
- package/src/components/Figure.tsx +30 -0
- package/src/components/Icon.tsx +32 -0
- package/src/components/IconButton.tsx +55 -0
- package/src/components/Input.tsx +74 -0
- package/src/components/Logo.tsx +62 -0
- package/src/components/Marker.tsx +26 -0
- package/src/components/MetaLabel.tsx +38 -0
- package/src/components/Radio.tsx +72 -0
- package/src/components/Select.tsx +351 -0
- package/src/components/Spinner.tsx +20 -0
- package/src/components/Switch.tsx +67 -0
- package/src/components/Table.tsx +196 -0
- package/src/components/Tabs.tsx +124 -0
- package/src/components/Tag.tsx +35 -0
- package/src/components/Textarea.tsx +46 -0
- package/src/components/ThemeProvider.tsx +80 -0
- package/src/components/Toast.tsx +159 -0
- package/src/components/Tooltip.tsx +57 -0
- package/src/components/core.test.tsx +242 -0
- package/src/components/forms-control.ts +36 -0
- package/src/components/forms.test.tsx +280 -0
- package/src/components/logo-art.ts +4 -0
- package/src/components/overlays.test.tsx +245 -0
- package/src/components/useButtonAction.ts +57 -0
- package/src/fonts.css +20 -0
- package/src/index.ts +34 -24
- package/src/lib/cn.ts +23 -6
- package/src/modes.css +10 -0
- package/src/styles.css +19 -0
- package/src/theme.css +143 -0
- package/src/tokens/colors.css +112 -0
- package/src/tokens/compat.css +36 -0
- package/src/tokens/elevation.css +14 -0
- package/src/tokens/motion.css +42 -0
- package/src/tokens/spacing.css +55 -0
- package/src/tokens/typography-cjk.css +42 -0
- package/src/tokens/typography.css +81 -0
- package/src/actionbar/ActionBar.tsx +0 -837
- package/src/actionbar/ActionBarButton.tsx +0 -111
- package/src/actionbar/ActionBarMenuGroup.tsx +0 -116
- package/src/actionbar/ActionBarModeHandle.tsx +0 -171
- package/src/actionbar/ActionBarProvider.tsx +0 -91
- package/src/actionbar/actionbar-context.ts +0 -45
- package/src/actionbar/index.ts +0 -28
- package/src/actionbar/types.ts +0 -147
- package/src/actionbar/useActionBarItems.ts +0 -60
- package/src/actionbar/useActionBarMode.ts +0 -144
- package/src/actionbar/useActionBarPanel.ts +0 -56
- package/src/actionbar/useActionBarStatusDot.ts +0 -49
- package/src/actionbar/useActionBarToast.ts +0 -33
- package/src/ambient/AmbientBackdrop.tsx +0 -74
- package/src/ambient/CommandInput.tsx +0 -107
- package/src/ambient/SuperbarStrip.tsx +0 -36
- package/src/ambient/index.ts +0 -6
- package/src/bento/BentoCell.tsx +0 -66
- package/src/bento/BentoGrid.tsx +0 -42
- package/src/bento/index.ts +0 -2
- package/src/command/CommandPalette.tsx +0 -329
- package/src/command/CommandProvider.tsx +0 -57
- package/src/command/command-context.ts +0 -12
- package/src/command/index.ts +0 -6
- package/src/command/rank.ts +0 -50
- package/src/command/types.ts +0 -37
- package/src/command/useCommandSource.ts +0 -37
- package/src/dialogs/DialogsProvider.tsx +0 -216
- package/src/dialogs/Modal.tsx +0 -260
- package/src/dialogs/Toast.tsx +0 -85
- package/src/dialogs/dialogs-context.ts +0 -6
- package/src/dialogs/index.ts +0 -10
- package/src/dialogs/types.ts +0 -37
- package/src/dialogs/useDialogs.ts +0 -8
- package/src/editorial/EditorialSpotlight.tsx +0 -63
- package/src/editorial/Folio.tsx +0 -52
- package/src/editorial/PlateMarker.tsx +0 -33
- package/src/editorial/RomanSection.tsx +0 -65
- package/src/editorial/RunningMarginalia.tsx +0 -65
- package/src/editorial/index.ts +0 -10
- package/src/hooks/index.ts +0 -5
- package/src/hooks/useKeyboardHotkey.ts +0 -93
- package/src/hooks/useReducedMotion.ts +0 -20
- package/src/hooks/useViewport.ts +0 -61
- package/src/layout/Breadcrumb.tsx +0 -74
- package/src/layout/LeftNavRail.tsx +0 -139
- package/src/layout/MobileTabBar.tsx +0 -101
- package/src/layout/NavItem.tsx +0 -128
- package/src/layout/NavSearchTrigger.tsx +0 -88
- package/src/layout/NavSection.tsx +0 -40
- package/src/layout/RightSidebarPanel.tsx +0 -111
- package/src/layout/Shell.tsx +0 -91
- package/src/layout/SidePanel.tsx +0 -316
- package/src/layout/StickyBanner.tsx +0 -83
- package/src/layout/Topbar.tsx +0 -68
- package/src/layout/index.ts +0 -24
- package/src/layout/useNavRailState.ts +0 -69
- package/src/lib/time-utils.ts +0 -44
- package/src/neobrutalism/Marquee.tsx +0 -81
- package/src/neobrutalism/Sticker.tsx +0 -71
- package/src/neobrutalism/index.ts +0 -4
- package/src/primitives/Avatar.tsx +0 -53
- package/src/primitives/Button.tsx +0 -67
- package/src/primitives/Card.tsx +0 -41
- package/src/primitives/Checkbox.tsx +0 -87
- package/src/primitives/Chip.tsx +0 -191
- package/src/primitives/Combobox.tsx +0 -507
- package/src/primitives/CopyField.tsx +0 -139
- package/src/primitives/CountBadge.tsx +0 -50
- package/src/primitives/Input.tsx +0 -204
- package/src/primitives/Kbd.tsx +0 -45
- package/src/primitives/MentionCombobox.tsx +0 -612
- package/src/primitives/MultiCombobox.tsx +0 -327
- package/src/primitives/PageHeader.tsx +0 -77
- package/src/primitives/Radio.tsx +0 -131
- package/src/primitives/SegmentedControl.tsx +0 -135
- package/src/primitives/Select.tsx +0 -779
- package/src/primitives/SignaturePad.tsx +0 -461
- package/src/primitives/Tag.tsx +0 -56
- package/src/primitives/Textarea.tsx +0 -62
- package/src/primitives/ToggleSwitch.tsx +0 -79
- package/src/primitives/Tooltip.tsx +0 -213
- package/src/primitives/index.ts +0 -53
- package/src/pwa/InstallPromptBanner.tsx +0 -132
- package/src/pwa/index.ts +0 -4
- package/src/pwa/manifest.template.json +0 -20
- package/src/pwa/registerSW.ts +0 -55
- package/src/riso/Halftone.tsx +0 -85
- package/src/riso/Misregister.tsx +0 -63
- package/src/riso/RisoStamp.tsx +0 -76
- package/src/riso/index.ts +0 -3
- package/src/sketch/HandUnderline.tsx +0 -53
- package/src/sketch/RoughArrow.tsx +0 -91
- package/src/sketch/RoughBox.tsx +0 -73
- package/src/sketch/StickyNote.tsx +0 -56
- package/src/sketch/index.ts +0 -4
- package/src/styles/base.css +0 -186
- package/src/styles/chrome-ambient.css +0 -235
- package/src/styles/chrome-bento.css +0 -192
- package/src/styles/chrome-editorial.css +0 -168
- package/src/styles/chrome-neobrutalism.css +0 -326
- package/src/styles/chrome-riso.css +0 -339
- package/src/styles/chrome-sketch.css +0 -362
- package/src/styles/chrome-swiss.css +0 -265
- package/src/styles/chrome-terminal.css +0 -272
- package/src/styles/fonts.css +0 -1034
- package/src/styles/index.css +0 -343
- package/src/styles/tokens.css +0 -941
- package/src/terminal/AsciiBox.tsx +0 -65
- package/src/terminal/BrailleSpinner.tsx +0 -46
- package/src/terminal/index.ts +0 -4
- package/src/theme/ThemeProvider.tsx +0 -99
- package/src/theme/index.ts +0 -6
- package/src/theme/inline-script.ts +0 -40
- package/src/theme/theme-context.ts +0 -7
- package/src/theme/types.ts +0 -39
- package/src/theme/useTheme.ts +0 -8
|
@@ -1,362 +0,0 @@
|
|
|
1
|
-
/* Hand-drawn / Sketchy chrome — Excalidraw / tldraw / Whimsical
|
|
2
|
-
pen-on-paper aesthetic. Implementation strategy is "rough.js by
|
|
3
|
-
CSS":
|
|
4
|
-
- Asymmetric border-radius gives corners natural variance
|
|
5
|
-
- Offset second box-shadow gives the "drawn twice" line feel
|
|
6
|
-
- filter: var(--ck-sketch-wobble) applies SVG turbulence to
|
|
7
|
-
drawn surfaces (Chrome / Safari; Firefox falls back gracefully)
|
|
8
|
-
- Hatch-fill backgrounds use repeating-linear-gradient for
|
|
9
|
-
emphasized buttons / tags
|
|
10
|
-
- Each .ck-* primitive gets a tiny pre-set tilt via :nth-child
|
|
11
|
-
selectors so cards don't all stand perfectly upright
|
|
12
|
-
|
|
13
|
-
Body uses handwriting-leaning fonts. Headings push fully to
|
|
14
|
-
handwritten display via the Caveat / Patrick Hand stack. */
|
|
15
|
-
|
|
16
|
-
html[data-ck-chrome="sketch"] body {
|
|
17
|
-
font-family: var(--ck-font-sketch-body, "Comic Neue", "Comic Sans MS", system-ui, sans-serif);
|
|
18
|
-
font-weight: 400;
|
|
19
|
-
line-height: 1.55;
|
|
20
|
-
background-image:
|
|
21
|
-
radial-gradient(circle, rgba(26, 26, 26, 0.06) 1px, transparent 1.4px);
|
|
22
|
-
background-size: 22px 22px;
|
|
23
|
-
background-attachment: fixed;
|
|
24
|
-
}
|
|
25
|
-
html[data-ck-theme="dark"][data-ck-chrome="sketch"] body {
|
|
26
|
-
background-image:
|
|
27
|
-
radial-gradient(circle, rgba(240, 240, 232, 0.08) 1px, transparent 1.4px);
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
/* Headings — handwritten font, slight negative letter-spacing */
|
|
31
|
-
html[data-ck-chrome="sketch"] h1,
|
|
32
|
-
html[data-ck-chrome="sketch"] .ck-h1 {
|
|
33
|
-
font-family: var(--ck-font-sketch-display);
|
|
34
|
-
font-weight: 700;
|
|
35
|
-
line-height: 1.08;
|
|
36
|
-
letter-spacing: -0.01em;
|
|
37
|
-
transform: rotate(-0.6deg);
|
|
38
|
-
transform-origin: left;
|
|
39
|
-
}
|
|
40
|
-
html[data-ck-chrome="sketch"] h2,
|
|
41
|
-
html[data-ck-chrome="sketch"] .ck-h2 {
|
|
42
|
-
font-family: var(--ck-font-sketch-display);
|
|
43
|
-
font-weight: 700;
|
|
44
|
-
line-height: 1.1;
|
|
45
|
-
transform: rotate(-0.3deg);
|
|
46
|
-
transform-origin: left;
|
|
47
|
-
}
|
|
48
|
-
html[data-ck-chrome="sketch"] h3,
|
|
49
|
-
html[data-ck-chrome="sketch"] .ck-h3 {
|
|
50
|
-
font-family: var(--ck-font-sketch-display);
|
|
51
|
-
font-weight: 600;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
/* ---------- Buttons — drawn rectangles ---------- */
|
|
55
|
-
html[data-ck-chrome="sketch"] .ck-btn,
|
|
56
|
-
html[data-ck-chrome="sketch"] .ck-actionbar-btn {
|
|
57
|
-
border-radius: 7px 9px 8px 10px / 9px 7px 10px 8px;
|
|
58
|
-
font-family: var(--ck-font-sketch-display);
|
|
59
|
-
font-size: 17px;
|
|
60
|
-
font-weight: 600;
|
|
61
|
-
letter-spacing: 0;
|
|
62
|
-
text-transform: none;
|
|
63
|
-
height: 40px;
|
|
64
|
-
padding: 0 18px;
|
|
65
|
-
border: 2px solid var(--ck-text-primary);
|
|
66
|
-
background: var(--ck-bg-surface);
|
|
67
|
-
color: var(--ck-text-primary);
|
|
68
|
-
box-shadow: 2px 3px 0 var(--ck-text-primary);
|
|
69
|
-
transition: transform 120ms ease, box-shadow 120ms ease, background 120ms ease;
|
|
70
|
-
}
|
|
71
|
-
html[data-ck-chrome="sketch"] .ck-btn:hover:not(:disabled),
|
|
72
|
-
html[data-ck-chrome="sketch"] .ck-actionbar-btn:hover:not(:disabled) {
|
|
73
|
-
background: var(--ck-bg-muted);
|
|
74
|
-
transform: translate(0px, 1px) rotate(-0.4deg);
|
|
75
|
-
}
|
|
76
|
-
html[data-ck-chrome="sketch"] .ck-btn:active:not(:disabled),
|
|
77
|
-
html[data-ck-chrome="sketch"] .ck-actionbar-btn:active:not(:disabled) {
|
|
78
|
-
transform: translate(1px, 2px) rotate(0.6deg);
|
|
79
|
-
box-shadow: 0 1px 0 var(--ck-text-primary);
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
html[data-ck-chrome="sketch"] .ck-btn--primary,
|
|
83
|
-
html[data-ck-chrome="sketch"] .ck-actionbar-btn--primary {
|
|
84
|
-
background: var(--ck-accent);
|
|
85
|
-
/* Defaults to paper-white to pair with sketch's blue ink accent;
|
|
86
|
-
consumer apps may stamp --ck-accent-fg when overriding
|
|
87
|
-
--ck-accent-light-override. */
|
|
88
|
-
color: var(--ck-accent-fg, #FFFEF9);
|
|
89
|
-
box-shadow: 2px 3px 0 var(--ck-text-primary);
|
|
90
|
-
}
|
|
91
|
-
html[data-ck-chrome="sketch"] .ck-btn--primary:hover:not(:disabled) {
|
|
92
|
-
background: var(--ck-accent-hover);
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
html[data-ck-chrome="sketch"] .ck-btn--ghost {
|
|
96
|
-
background: transparent;
|
|
97
|
-
border-color: transparent;
|
|
98
|
-
box-shadow: none;
|
|
99
|
-
text-decoration: underline;
|
|
100
|
-
text-decoration-style: wavy;
|
|
101
|
-
text-decoration-thickness: 1.5px;
|
|
102
|
-
text-underline-offset: 5px;
|
|
103
|
-
text-decoration-color: var(--ck-text-primary);
|
|
104
|
-
}
|
|
105
|
-
html[data-ck-chrome="sketch"] .ck-btn--ghost:hover:not(:disabled) {
|
|
106
|
-
background: transparent;
|
|
107
|
-
transform: rotate(-0.4deg);
|
|
108
|
-
color: var(--ck-accent);
|
|
109
|
-
text-decoration-color: var(--ck-accent);
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
/* ---------- Inputs — wavy underline ---------- */
|
|
113
|
-
html[data-ck-chrome="sketch"] .ck-input,
|
|
114
|
-
html[data-ck-chrome="sketch"] .ck-textarea {
|
|
115
|
-
background: transparent;
|
|
116
|
-
border: none;
|
|
117
|
-
border-bottom: 2px solid var(--ck-text-primary);
|
|
118
|
-
border-radius: 0;
|
|
119
|
-
padding-left: 2px;
|
|
120
|
-
padding-right: 2px;
|
|
121
|
-
box-shadow: none;
|
|
122
|
-
font-family: var(--ck-font-sketch-display);
|
|
123
|
-
font-size: 17px;
|
|
124
|
-
color: var(--ck-text-primary);
|
|
125
|
-
}
|
|
126
|
-
html[data-ck-chrome="sketch"] .ck-input::placeholder,
|
|
127
|
-
html[data-ck-chrome="sketch"] .ck-textarea::placeholder {
|
|
128
|
-
color: var(--ck-text-tertiary);
|
|
129
|
-
font-style: italic;
|
|
130
|
-
}
|
|
131
|
-
html[data-ck-chrome="sketch"] .ck-input:focus-visible,
|
|
132
|
-
html[data-ck-chrome="sketch"] .ck-textarea:focus-visible {
|
|
133
|
-
outline: none;
|
|
134
|
-
border-bottom-color: var(--ck-accent) !important;
|
|
135
|
-
border-bottom-width: 3px;
|
|
136
|
-
box-shadow: none !important;
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
/* ---------- Cards — drawn rectangles with second-stroke shadow */
|
|
140
|
-
html[data-ck-chrome="sketch"] .ck-card {
|
|
141
|
-
background: var(--ck-bg-surface);
|
|
142
|
-
border: 2px solid var(--ck-text-primary);
|
|
143
|
-
border-radius: 10px 14px 12px 16px / 14px 10px 16px 12px;
|
|
144
|
-
box-shadow: 3px 4px 0 var(--ck-text-primary);
|
|
145
|
-
overflow: visible;
|
|
146
|
-
}
|
|
147
|
-
html[data-ck-chrome="sketch"] .ck-card__head {
|
|
148
|
-
background: transparent;
|
|
149
|
-
border-bottom: none;
|
|
150
|
-
padding: 16px 20px 8px;
|
|
151
|
-
font-family: var(--ck-font-sketch-display);
|
|
152
|
-
font-weight: 600;
|
|
153
|
-
font-size: 18px;
|
|
154
|
-
position: relative;
|
|
155
|
-
}
|
|
156
|
-
/* Hand-drawn underline beneath card head — single wobbly stroke */
|
|
157
|
-
html[data-ck-chrome="sketch"] .ck-card__head::after {
|
|
158
|
-
content: "";
|
|
159
|
-
position: absolute;
|
|
160
|
-
left: 20px;
|
|
161
|
-
right: 20px;
|
|
162
|
-
bottom: 4px;
|
|
163
|
-
height: 2px;
|
|
164
|
-
background: var(--ck-text-primary);
|
|
165
|
-
border-radius: 2px;
|
|
166
|
-
filter: var(--ck-sketch-wobble);
|
|
167
|
-
opacity: 0.65;
|
|
168
|
-
}
|
|
169
|
-
html[data-ck-chrome="sketch"] .ck-card__foot {
|
|
170
|
-
background: transparent;
|
|
171
|
-
border-top: none;
|
|
172
|
-
padding: 8px 20px 16px;
|
|
173
|
-
position: relative;
|
|
174
|
-
}
|
|
175
|
-
html[data-ck-chrome="sketch"] .ck-card__foot::before {
|
|
176
|
-
content: "";
|
|
177
|
-
position: absolute;
|
|
178
|
-
left: 20px;
|
|
179
|
-
right: 20px;
|
|
180
|
-
top: 0;
|
|
181
|
-
height: 2px;
|
|
182
|
-
background: var(--ck-text-primary);
|
|
183
|
-
border-radius: 2px;
|
|
184
|
-
filter: var(--ck-sketch-wobble);
|
|
185
|
-
opacity: 0.5;
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
/* ---------- Tags — drawn ovals with hatch-fill bg ---------- */
|
|
189
|
-
html[data-ck-chrome="sketch"] [data-ck-tag] {
|
|
190
|
-
background: transparent !important;
|
|
191
|
-
border: 2px solid var(--ck-text-primary) !important;
|
|
192
|
-
border-radius: 999px !important;
|
|
193
|
-
padding: 4px 12px !important;
|
|
194
|
-
font-family: var(--ck-font-sketch-display) !important;
|
|
195
|
-
font-weight: 700 !important;
|
|
196
|
-
font-size: 14px !important;
|
|
197
|
-
letter-spacing: 0 !important;
|
|
198
|
-
text-transform: none !important;
|
|
199
|
-
box-shadow: 1px 2px 0 var(--ck-text-primary) !important;
|
|
200
|
-
color: var(--ck-text-primary) !important;
|
|
201
|
-
display: inline-block !important;
|
|
202
|
-
transform: rotate(-1.5deg);
|
|
203
|
-
}
|
|
204
|
-
html[data-ck-chrome="sketch"] [data-ck-tag][data-tone="accent"] {
|
|
205
|
-
background:
|
|
206
|
-
repeating-linear-gradient(45deg,
|
|
207
|
-
var(--ck-sketch-blue) 0 3px,
|
|
208
|
-
transparent 3px 7px) !important;
|
|
209
|
-
background-color: rgba(74, 144, 226, 0.22) !important;
|
|
210
|
-
}
|
|
211
|
-
html[data-ck-chrome="sketch"] [data-ck-tag][data-tone="success"] {
|
|
212
|
-
background:
|
|
213
|
-
repeating-linear-gradient(45deg,
|
|
214
|
-
var(--ck-sketch-green) 0 3px,
|
|
215
|
-
transparent 3px 7px) !important;
|
|
216
|
-
background-color: rgba(111, 207, 151, 0.25) !important;
|
|
217
|
-
}
|
|
218
|
-
html[data-ck-chrome="sketch"] [data-ck-tag][data-tone="warning"] {
|
|
219
|
-
background:
|
|
220
|
-
repeating-linear-gradient(45deg,
|
|
221
|
-
var(--ck-sketch-orange) 0 3px,
|
|
222
|
-
transparent 3px 7px) !important;
|
|
223
|
-
background-color: rgba(242, 153, 74, 0.25) !important;
|
|
224
|
-
}
|
|
225
|
-
html[data-ck-chrome="sketch"] [data-ck-tag][data-tone="critical"] {
|
|
226
|
-
background:
|
|
227
|
-
repeating-linear-gradient(45deg,
|
|
228
|
-
var(--ck-sketch-red) 0 3px,
|
|
229
|
-
transparent 3px 7px) !important;
|
|
230
|
-
background-color: rgba(229, 75, 75, 0.25) !important;
|
|
231
|
-
}
|
|
232
|
-
|
|
233
|
-
/* ---------- Layout chrome ---------- */
|
|
234
|
-
html[data-ck-chrome="sketch"] [data-ck-leftnav] {
|
|
235
|
-
background: var(--ck-bg-sidebar) !important;
|
|
236
|
-
border-right: 2px solid var(--ck-text-primary);
|
|
237
|
-
}
|
|
238
|
-
html[data-ck-chrome="sketch"] [data-ck-topbar] {
|
|
239
|
-
background: var(--ck-bg-canvas) !important;
|
|
240
|
-
border-bottom: 2px solid var(--ck-text-primary);
|
|
241
|
-
}
|
|
242
|
-
|
|
243
|
-
/* NavItem — highlighter underline on active */
|
|
244
|
-
html[data-ck-chrome="sketch"] [data-ck-navitem] {
|
|
245
|
-
background: transparent !important;
|
|
246
|
-
border-radius: 8px 10px 9px 11px !important;
|
|
247
|
-
font-family: var(--ck-font-sketch-display) !important;
|
|
248
|
-
font-weight: 600 !important;
|
|
249
|
-
font-size: 17px !important;
|
|
250
|
-
color: var(--ck-text-primary) !important;
|
|
251
|
-
}
|
|
252
|
-
html[data-ck-chrome="sketch"] [data-ck-navitem]:not([data-active="true"]):hover {
|
|
253
|
-
background: var(--ck-bg-muted) !important;
|
|
254
|
-
}
|
|
255
|
-
/* Active state: translucent yellow highlighter slash through the
|
|
256
|
-
item. Combined with a hand-drawn second-stroke shadow. */
|
|
257
|
-
html[data-ck-chrome="sketch"] [data-ck-navitem][data-active="true"] {
|
|
258
|
-
background:
|
|
259
|
-
linear-gradient(180deg, transparent 0%, transparent 30%,
|
|
260
|
-
var(--ck-sketch-hi-yellow) 30%, var(--ck-sketch-hi-yellow) 78%,
|
|
261
|
-
transparent 78%, transparent 100%) !important;
|
|
262
|
-
color: var(--ck-text-primary) !important;
|
|
263
|
-
font-weight: 700 !important;
|
|
264
|
-
box-shadow: 2px 2px 0 var(--ck-text-primary) !important;
|
|
265
|
-
border: 2px solid var(--ck-text-primary) !important;
|
|
266
|
-
}
|
|
267
|
-
|
|
268
|
-
/* Search trigger */
|
|
269
|
-
html[data-ck-chrome="sketch"] [data-ck-search-trigger] {
|
|
270
|
-
background: var(--ck-bg-surface) !important;
|
|
271
|
-
border: 2px solid var(--ck-text-primary) !important;
|
|
272
|
-
border-radius: 8px 10px 9px 11px !important;
|
|
273
|
-
box-shadow: 2px 3px 0 var(--ck-text-primary) !important;
|
|
274
|
-
color: var(--ck-text-secondary) !important;
|
|
275
|
-
font-family: var(--ck-font-sketch-display) !important;
|
|
276
|
-
font-size: 15px;
|
|
277
|
-
}
|
|
278
|
-
|
|
279
|
-
/* Action bar */
|
|
280
|
-
html[data-ck-chrome="sketch"] [data-ck-actionbar] {
|
|
281
|
-
background: var(--ck-bg-surface) !important;
|
|
282
|
-
border: 2px solid var(--ck-text-primary);
|
|
283
|
-
border-radius: 14px 18px 16px 20px / 18px 14px 20px 16px;
|
|
284
|
-
box-shadow: 4px 5px 0 var(--ck-text-primary);
|
|
285
|
-
}
|
|
286
|
-
|
|
287
|
-
/* Modal — drawn plate, no glass blur */
|
|
288
|
-
html[data-ck-chrome="sketch"] [role="dialog"] > div:first-child {
|
|
289
|
-
background: rgba(26, 26, 26, 0.45);
|
|
290
|
-
backdrop-filter: none;
|
|
291
|
-
}
|
|
292
|
-
html[data-ck-chrome="sketch"] [role="dialog"] > div > div {
|
|
293
|
-
background: var(--ck-bg-surface) !important;
|
|
294
|
-
border: 2px solid var(--ck-text-primary);
|
|
295
|
-
border-radius: 14px 18px 16px 20px;
|
|
296
|
-
box-shadow: 5px 6px 0 var(--ck-text-primary);
|
|
297
|
-
font-family: var(--ck-font-sketch-body);
|
|
298
|
-
}
|
|
299
|
-
|
|
300
|
-
/* Code blocks — drawn plate */
|
|
301
|
-
html[data-ck-chrome="sketch"] pre {
|
|
302
|
-
background: var(--ck-bg-surface) !important;
|
|
303
|
-
border: 2px solid var(--ck-text-primary);
|
|
304
|
-
border-radius: 8px 12px 10px 14px;
|
|
305
|
-
box-shadow: 3px 4px 0 var(--ck-text-primary);
|
|
306
|
-
font-family: "Comic Mono", "Cascadia Code", var(--ck-font-mono);
|
|
307
|
-
}
|
|
308
|
-
html[data-ck-chrome="sketch"] code {
|
|
309
|
-
background: var(--ck-sketch-hi-yellow) !important;
|
|
310
|
-
color: var(--ck-text-primary) !important;
|
|
311
|
-
padding: 1px 6px;
|
|
312
|
-
border-radius: 3px 5px 4px 6px;
|
|
313
|
-
font-family: "Comic Mono", "Cascadia Code", var(--ck-font-mono);
|
|
314
|
-
}
|
|
315
|
-
|
|
316
|
-
/* HR — wobbly hand-drawn divider, not a CSS line */
|
|
317
|
-
html[data-ck-chrome="sketch"] hr {
|
|
318
|
-
border: none;
|
|
319
|
-
height: 3px;
|
|
320
|
-
background: var(--ck-text-primary);
|
|
321
|
-
border-radius: 3px;
|
|
322
|
-
filter: var(--ck-sketch-wobble-strong);
|
|
323
|
-
margin: 28px 0;
|
|
324
|
-
opacity: 0.65;
|
|
325
|
-
}
|
|
326
|
-
|
|
327
|
-
/* Highlighter helper — apply .ck-sketch-hl to mark important text
|
|
328
|
-
with a translucent yellow swipe behind it. */
|
|
329
|
-
.ck-sketch-hl {
|
|
330
|
-
background:
|
|
331
|
-
linear-gradient(180deg, transparent 0%, transparent 30%,
|
|
332
|
-
var(--ck-sketch-hi-yellow, rgba(242, 201, 76, 0.42)) 30%,
|
|
333
|
-
var(--ck-sketch-hi-yellow, rgba(242, 201, 76, 0.42)) 80%,
|
|
334
|
-
transparent 80%, transparent 100%);
|
|
335
|
-
padding: 0 4px;
|
|
336
|
-
}
|
|
337
|
-
|
|
338
|
-
/* Animated stroke-on for SVG paths — opt-in via .ck-sketch-drawon
|
|
339
|
-
on a path. The stroke "draws on" from start to end in ~500ms. */
|
|
340
|
-
@keyframes ck-sketch-drawon {
|
|
341
|
-
from { stroke-dashoffset: var(--ck-sketch-len, 800); }
|
|
342
|
-
to { stroke-dashoffset: 0; }
|
|
343
|
-
}
|
|
344
|
-
.ck-sketch-drawon {
|
|
345
|
-
stroke-dasharray: var(--ck-sketch-len, 800);
|
|
346
|
-
animation: ck-sketch-drawon 600ms ease-out forwards;
|
|
347
|
-
}
|
|
348
|
-
|
|
349
|
-
@media (prefers-reduced-motion: reduce) {
|
|
350
|
-
.ck-sketch-drawon {
|
|
351
|
-
animation: none;
|
|
352
|
-
stroke-dasharray: none;
|
|
353
|
-
}
|
|
354
|
-
}
|
|
355
|
-
|
|
356
|
-
html[data-ck-chrome="sketch"] .ck-actionbar-panel,
|
|
357
|
-
html[data-ck-chrome="sketch"] .ck-actionbar-toast {
|
|
358
|
-
background: var(--ck-bg-surface);
|
|
359
|
-
border: 2px solid var(--ck-text-primary);
|
|
360
|
-
border-radius: 14px 18px 16px 20px / 18px 14px 20px 16px;
|
|
361
|
-
box-shadow: 4px 5px 0 var(--ck-text-primary);
|
|
362
|
-
}
|
|
@@ -1,265 +0,0 @@
|
|
|
1
|
-
/* Swiss chrome — component overrides.
|
|
2
|
-
Tokens.css supplies the achromatic palette + red accent. This
|
|
3
|
-
file strips every primitive of decoration: cards lose fill and
|
|
4
|
-
shadows, becoming rules-only; inputs lose all borders except
|
|
5
|
-
the bottom; tags lose pill backgrounds and become dot + text;
|
|
6
|
-
headings tighten letter-spacing. */
|
|
7
|
-
|
|
8
|
-
html[data-ck-chrome="swiss"] body {
|
|
9
|
-
font-weight: 400;
|
|
10
|
-
font-feature-settings: "ss01", "cv11", "tnum";
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
/* ===== Typography =========================================== */
|
|
14
|
-
|
|
15
|
-
html[data-ck-chrome="swiss"] h1,
|
|
16
|
-
html[data-ck-chrome="swiss"] .ck-h1 {
|
|
17
|
-
font-family: var(--ck-font-sans);
|
|
18
|
-
font-weight: 700;
|
|
19
|
-
letter-spacing: -0.03em;
|
|
20
|
-
line-height: 0.98;
|
|
21
|
-
}
|
|
22
|
-
html[data-ck-chrome="swiss"] h2,
|
|
23
|
-
html[data-ck-chrome="swiss"] .ck-h2 {
|
|
24
|
-
font-family: var(--ck-font-sans);
|
|
25
|
-
font-weight: 600;
|
|
26
|
-
letter-spacing: -0.015em;
|
|
27
|
-
line-height: 1.1;
|
|
28
|
-
}
|
|
29
|
-
html[data-ck-chrome="swiss"] h3,
|
|
30
|
-
html[data-ck-chrome="swiss"] .ck-h3 {
|
|
31
|
-
font-weight: 600;
|
|
32
|
-
letter-spacing: -0.005em;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
html[data-ck-chrome="swiss"] .ck-eyebrow {
|
|
36
|
-
letter-spacing: 0.06em;
|
|
37
|
-
font-weight: 500;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
/* ===== Buttons — small radius, no shadow ==================== */
|
|
41
|
-
|
|
42
|
-
html[data-ck-chrome="swiss"] .ck-btn,
|
|
43
|
-
html[data-ck-chrome="swiss"] .ck-actionbar-btn {
|
|
44
|
-
border-radius: 3px;
|
|
45
|
-
font-weight: 500;
|
|
46
|
-
letter-spacing: 0;
|
|
47
|
-
text-transform: none;
|
|
48
|
-
box-shadow: none !important;
|
|
49
|
-
}
|
|
50
|
-
html[data-ck-chrome="swiss"] .ck-btn--primary {
|
|
51
|
-
background: var(--ck-text-primary);
|
|
52
|
-
color: var(--ck-bg-canvas);
|
|
53
|
-
border: none;
|
|
54
|
-
}
|
|
55
|
-
html[data-ck-chrome="swiss"] .ck-btn--primary:hover:not(:disabled) {
|
|
56
|
-
background: var(--ck-text-secondary);
|
|
57
|
-
}
|
|
58
|
-
html[data-ck-chrome="swiss"] .ck-btn--secondary {
|
|
59
|
-
background: transparent;
|
|
60
|
-
border: 1px solid var(--ck-text-primary);
|
|
61
|
-
color: var(--ck-text-primary);
|
|
62
|
-
}
|
|
63
|
-
html[data-ck-chrome="swiss"] .ck-btn--secondary:hover:not(:disabled) {
|
|
64
|
-
background: var(--ck-text-primary);
|
|
65
|
-
color: var(--ck-bg-canvas);
|
|
66
|
-
}
|
|
67
|
-
html[data-ck-chrome="swiss"] .ck-btn--ghost {
|
|
68
|
-
background: transparent;
|
|
69
|
-
color: var(--ck-text-primary);
|
|
70
|
-
border: none;
|
|
71
|
-
}
|
|
72
|
-
html[data-ck-chrome="swiss"] .ck-btn--ghost:hover:not(:disabled) {
|
|
73
|
-
background: var(--ck-bg-muted);
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
/* ===== Inputs — bottom-border-only (canonical Swiss form) === */
|
|
77
|
-
|
|
78
|
-
/* :not(.ck-input--with-addon) — when the input is inside a
|
|
79
|
-
prefix/suffix wrapper the wrapper carries the border + padding,
|
|
80
|
-
and stripping the input's own padding makes the placeholder
|
|
81
|
-
collide with the addon. The addon variant gets the swiss
|
|
82
|
-
underline only at the OUTER wrap level (rule further down). */
|
|
83
|
-
html[data-ck-chrome="swiss"] .ck-input:not(.ck-input--with-addon),
|
|
84
|
-
html[data-ck-chrome="swiss"] .ck-textarea {
|
|
85
|
-
background: transparent !important;
|
|
86
|
-
border: none !important;
|
|
87
|
-
border-bottom: 1px solid var(--ck-border-subtle) !important;
|
|
88
|
-
border-radius: 0 !important;
|
|
89
|
-
padding-left: 0 !important;
|
|
90
|
-
padding-right: 0 !important;
|
|
91
|
-
color: var(--ck-text-primary);
|
|
92
|
-
transition: border-bottom-color 120ms ease, border-bottom-width 120ms ease;
|
|
93
|
-
}
|
|
94
|
-
html[data-ck-chrome="swiss"] .ck-input:not(.ck-input--with-addon):focus-visible,
|
|
95
|
-
html[data-ck-chrome="swiss"] .ck-textarea:focus-visible {
|
|
96
|
-
outline: none;
|
|
97
|
-
border-bottom-color: var(--ck-text-primary) !important;
|
|
98
|
-
border-bottom-width: 2px !important;
|
|
99
|
-
box-shadow: none !important;
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
/* Addon variant — flatten the wrapper to the swiss underline-only
|
|
103
|
-
form so the whole field (input + addons) reads as one bar. The
|
|
104
|
-
inner .ck-input keeps its default padding; the wrap loses its
|
|
105
|
-
side / top borders and its corner radius. */
|
|
106
|
-
html[data-ck-chrome="swiss"] .ck-input-addon-wrap {
|
|
107
|
-
border: none !important;
|
|
108
|
-
border-bottom: 1px solid var(--ck-border-subtle) !important;
|
|
109
|
-
border-radius: 0 !important;
|
|
110
|
-
background: transparent !important;
|
|
111
|
-
}
|
|
112
|
-
html[data-ck-chrome="swiss"] .ck-input-addon-wrap:focus-within {
|
|
113
|
-
border-bottom-color: var(--ck-text-primary) !important;
|
|
114
|
-
border-bottom-width: 2px !important;
|
|
115
|
-
}
|
|
116
|
-
/* Recess the addon further so the slab still reads against the
|
|
117
|
-
underlined input column. */
|
|
118
|
-
html[data-ck-chrome="swiss"] .ck-input-addon {
|
|
119
|
-
background: var(--ck-bg-muted) !important;
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
/* ===== Cards — rules-only sectioning ======================== */
|
|
123
|
-
|
|
124
|
-
html[data-ck-chrome="swiss"] .ck-card {
|
|
125
|
-
background: transparent !important;
|
|
126
|
-
border: none !important;
|
|
127
|
-
border-top: 1px solid var(--ck-border-subtle) !important;
|
|
128
|
-
border-bottom: 1px solid var(--ck-border-subtle) !important;
|
|
129
|
-
border-radius: 0 !important;
|
|
130
|
-
box-shadow: none !important;
|
|
131
|
-
}
|
|
132
|
-
html[data-ck-chrome="swiss"] .ck-card__head {
|
|
133
|
-
border-bottom: 1px solid var(--ck-border-subtle);
|
|
134
|
-
padding: 16px 0;
|
|
135
|
-
}
|
|
136
|
-
html[data-ck-chrome="swiss"] .ck-card__body {
|
|
137
|
-
padding: 16px 0;
|
|
138
|
-
}
|
|
139
|
-
html[data-ck-chrome="swiss"] .ck-card__foot {
|
|
140
|
-
border-top: 1px solid var(--ck-border-subtle);
|
|
141
|
-
background: transparent;
|
|
142
|
-
padding: 12px 0;
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
/* ===== Tags — dot + text only, no pill ====================== */
|
|
146
|
-
|
|
147
|
-
html[data-ck-chrome="swiss"] [data-ck-tag] {
|
|
148
|
-
background: transparent !important;
|
|
149
|
-
border: none !important;
|
|
150
|
-
padding: 0 !important;
|
|
151
|
-
box-shadow: none !important;
|
|
152
|
-
letter-spacing: 0.02em !important;
|
|
153
|
-
text-transform: none !important;
|
|
154
|
-
font-weight: 500 !important;
|
|
155
|
-
font-size: 12px !important;
|
|
156
|
-
display: inline-flex !important;
|
|
157
|
-
align-items: center !important;
|
|
158
|
-
gap: 6px !important;
|
|
159
|
-
}
|
|
160
|
-
html[data-ck-chrome="swiss"] [data-ck-tag]::before {
|
|
161
|
-
content: "";
|
|
162
|
-
width: 6px;
|
|
163
|
-
height: 6px;
|
|
164
|
-
border-radius: 50%;
|
|
165
|
-
background: currentColor;
|
|
166
|
-
flex-shrink: 0;
|
|
167
|
-
}
|
|
168
|
-
html[data-ck-chrome="swiss"] [data-ck-tag][data-tone="accent"] {
|
|
169
|
-
color: var(--ck-accent) !important;
|
|
170
|
-
}
|
|
171
|
-
html[data-ck-chrome="swiss"] [data-ck-tag][data-tone="success"] {
|
|
172
|
-
color: #15803D !important;
|
|
173
|
-
}
|
|
174
|
-
html[data-ck-chrome="swiss"] [data-ck-tag][data-tone="warning"] {
|
|
175
|
-
color: var(--ck-text-primary) !important;
|
|
176
|
-
}
|
|
177
|
-
html[data-ck-chrome="swiss"] [data-ck-tag][data-tone="critical"] {
|
|
178
|
-
color: var(--ck-accent) !important;
|
|
179
|
-
}
|
|
180
|
-
html[data-ck-chrome="swiss"] [data-ck-tag][data-tone="neutral"] {
|
|
181
|
-
color: var(--ck-text-secondary) !important;
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
/* ===== Layout chrome ======================================== */
|
|
185
|
-
|
|
186
|
-
html[data-ck-chrome="swiss"] [data-ck-leftnav] {
|
|
187
|
-
background: var(--ck-bg-canvas) !important;
|
|
188
|
-
border-right: 1px solid var(--ck-border-subtle);
|
|
189
|
-
}
|
|
190
|
-
html[data-ck-chrome="swiss"] [data-ck-topbar] {
|
|
191
|
-
background: var(--ck-bg-canvas) !important;
|
|
192
|
-
border-bottom: 1px solid var(--ck-border-subtle);
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
/* ===== NavItem — text-only, weight change on active =========
|
|
196
|
-
Swiss nav is just a list of words; emphasis comes from weight,
|
|
197
|
-
not from background pills. Active gets weight 600. Leading
|
|
198
|
-
icons hidden. */
|
|
199
|
-
html[data-ck-chrome="swiss"] [data-ck-navitem] {
|
|
200
|
-
background: transparent !important;
|
|
201
|
-
border: none !important;
|
|
202
|
-
border-radius: 0 !important;
|
|
203
|
-
font-weight: 400 !important;
|
|
204
|
-
color: var(--ck-text-secondary) !important;
|
|
205
|
-
padding: 6px 8px !important;
|
|
206
|
-
}
|
|
207
|
-
html[data-ck-chrome="swiss"] [data-ck-navitem]:hover {
|
|
208
|
-
color: var(--ck-text-primary) !important;
|
|
209
|
-
}
|
|
210
|
-
html[data-ck-chrome="swiss"] [data-ck-navitem][data-active="true"] {
|
|
211
|
-
font-weight: 600 !important;
|
|
212
|
-
color: var(--ck-text-primary) !important;
|
|
213
|
-
background: transparent !important;
|
|
214
|
-
}
|
|
215
|
-
/* Hide leading icons — "no icons before nav items" per the brief. */
|
|
216
|
-
html[data-ck-chrome="swiss"] [data-ck-navitem] svg,
|
|
217
|
-
html[data-ck-chrome="swiss"] [data-ck-navitem] span > span:first-child {
|
|
218
|
-
display: none;
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
/* ===== Search trigger ======================================= */
|
|
222
|
-
|
|
223
|
-
html[data-ck-chrome="swiss"] [data-ck-search-trigger] {
|
|
224
|
-
background: transparent !important;
|
|
225
|
-
border: 1px solid var(--ck-border-subtle) !important;
|
|
226
|
-
border-radius: 3px !important;
|
|
227
|
-
box-shadow: none !important;
|
|
228
|
-
}
|
|
229
|
-
|
|
230
|
-
/* ===== Action bar ========================================== */
|
|
231
|
-
|
|
232
|
-
html[data-ck-chrome="swiss"] [data-ck-actionbar] {
|
|
233
|
-
background: var(--ck-bg-canvas) !important;
|
|
234
|
-
border: 1px solid var(--ck-border-subtle);
|
|
235
|
-
border-radius: 3px;
|
|
236
|
-
box-shadow: none !important;
|
|
237
|
-
}
|
|
238
|
-
|
|
239
|
-
/* ===== Modal =============================================== */
|
|
240
|
-
|
|
241
|
-
html[data-ck-chrome="swiss"] [role="dialog"] > div:first-child {
|
|
242
|
-
background: rgba(0, 0, 0, 0.5);
|
|
243
|
-
backdrop-filter: none;
|
|
244
|
-
}
|
|
245
|
-
html[data-ck-chrome="swiss"] [role="dialog"] > div > div {
|
|
246
|
-
border-radius: 3px;
|
|
247
|
-
border: 1px solid var(--ck-text-primary);
|
|
248
|
-
box-shadow: none;
|
|
249
|
-
}
|
|
250
|
-
|
|
251
|
-
/* ===== Links — accent underline ============================ */
|
|
252
|
-
|
|
253
|
-
html[data-ck-chrome="swiss"] a {
|
|
254
|
-
color: var(--ck-accent);
|
|
255
|
-
text-underline-offset: 3px;
|
|
256
|
-
text-decoration-thickness: 1px;
|
|
257
|
-
}
|
|
258
|
-
|
|
259
|
-
html[data-ck-chrome="swiss"] .ck-actionbar-panel,
|
|
260
|
-
html[data-ck-chrome="swiss"] .ck-actionbar-toast {
|
|
261
|
-
background: var(--ck-bg-canvas);
|
|
262
|
-
border: 1px solid var(--ck-border-subtle);
|
|
263
|
-
border-radius: 0;
|
|
264
|
-
box-shadow: var(--ck-shadow-1, 0 2px 8px rgba(0, 0, 0, 0.08));
|
|
265
|
-
}
|