@crisp-ui-kit/crisp 0.57.1 → 0.57.2
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/dist/authshell.css +9 -4
- package/dist/authshell.layered.css +9 -4
- package/dist/badge.css +3 -3
- package/dist/badge.layered.css +3 -3
- package/dist/board.css +28 -8
- package/dist/board.layered.css +28 -8
- package/dist/bottomsheet.css +26 -0
- package/dist/bottomsheet.d.ts +7 -0
- package/dist/bottomsheet.layered.css +28 -0
- package/dist/button.css +7 -6
- package/dist/button.layered.css +7 -6
- package/dist/checkbox.css +7 -3
- package/dist/checkbox.layered.css +7 -3
- package/dist/chip.css +15 -0
- package/dist/chip.d.ts +3 -1
- package/dist/chip.layered.css +15 -0
- package/dist/chipgroup.css +5 -0
- package/dist/chipgroup.d.ts +7 -0
- package/dist/chipgroup.layered.css +7 -0
- package/dist/cjs/components/badge/badge.recipe.js +22 -8
- package/dist/cjs/components/bottomsheet/bottomsheet.js +90 -0
- package/dist/cjs/components/bottomsheet/bottomsheet.recipe.js +77 -0
- package/dist/cjs/components/bottomsheet/index.js +9 -0
- package/dist/cjs/components/button/button.recipe.js +39 -15
- package/dist/cjs/components/checkbox/checkbox.recipe.js +61 -9
- package/dist/cjs/components/chip/chip.js +14 -2
- package/dist/cjs/components/chip/chip.recipe.js +69 -1
- package/dist/cjs/components/chipgroup/chipgroup.js +51 -0
- package/dist/cjs/components/chipgroup/chipgroup.recipe.js +36 -0
- package/dist/cjs/components/chipgroup/index.js +7 -0
- package/dist/cjs/components/datatable/datatable.js +5 -1
- package/dist/cjs/components/datatable/datatable.recipe.js +11 -2
- package/dist/cjs/components/dialog/dialog.recipe.js +21 -10
- package/dist/cjs/components/emptystate/emptystate.recipe.js +7 -2
- package/dist/cjs/components/fileupload/fileupload.js +21 -4
- package/dist/cjs/components/input/index.js +2 -1
- package/dist/cjs/components/input/input.js +31 -1
- package/dist/cjs/components/input/input.recipe.js +16 -9
- package/dist/cjs/components/menu/menu.recipe.js +21 -7
- package/dist/cjs/components/menusheet/index.js +9 -0
- package/dist/cjs/components/menusheet/menusheet.js +133 -0
- package/dist/cjs/components/menusheet/menusheet.recipe.js +103 -0
- package/dist/cjs/components/multiselect/multiselect.js +1 -1
- package/dist/cjs/components/multiselect/multiselect.recipe.js +33 -9
- package/dist/cjs/components/select/select.js +1 -1
- package/dist/cjs/components/select/select.recipe.js +38 -12
- package/dist/cjs/components/snackbar/index.js +8 -0
- package/dist/cjs/components/snackbar/snackbar.js +121 -0
- package/dist/cjs/components/snackbar/snackbar.recipe.js +71 -0
- package/dist/cjs/components/tabletoolbar/tabletoolbar.chrome.js +7 -2
- package/dist/cjs/components/tabletoolbar/tabletoolbar.js +37 -12
- package/dist/cjs/components/tabs/tabs.js +10 -4
- package/dist/cjs/components/tabs/tabs.recipe.js +23 -6
- package/dist/cjs/components/textarea/textarea.recipe.js +11 -8
- package/dist/cjs/index.js +7 -0
- package/dist/cjs/product/authshell/authshell.recipe.js +5 -1
- package/dist/cjs/product/command/command.recipe.js +4 -1
- package/dist/cjs/product/comments/comments.js +7 -2
- package/dist/cjs/product/comments/comments.recipe.js +25 -7
- package/dist/cjs/product/memberssettings/index.js +6 -0
- package/dist/cjs/product/memberssettings/memberssettings.js +99 -0
- package/dist/cjs/product/memberssettings/memberssettings.recipe.js +83 -0
- package/dist/cjs/product/notificationssettings/index.js +5 -0
- package/dist/cjs/product/notificationssettings/notificationssettings.js +19 -0
- package/dist/cjs/product/notificationssettings/notificationssettings.recipe.js +44 -0
- package/dist/cjs/product/recordpage/recordpage.js +57 -6
- package/dist/cjs/product/recordpage/recordpage.recipe.js +43 -6
- package/dist/cjs/product/workspacegeneralsettings/index.js +5 -0
- package/dist/cjs/product/workspacegeneralsettings/workspacegeneralsettings.js +21 -0
- package/dist/cjs/product/workspacegeneralsettings/workspacegeneralsettings.recipe.js +51 -0
- package/dist/cjs/tokens/contract.js +1 -0
- package/dist/cjs/tokens/elevation.js +8 -5
- package/dist/cjs/tokens/palette.js +28 -8
- package/dist/cjs/tokens/scale.js +44 -2
- package/dist/cjs/tokens/semantic.js +2 -0
- package/dist/columncalc.css +15 -7
- package/dist/columncalc.layered.css +15 -7
- package/dist/command.css +23 -19
- package/dist/command.layered.css +23 -19
- package/dist/comments.css +28 -19
- package/dist/comments.d.ts +2 -2
- package/dist/comments.layered.css +28 -19
- package/dist/datatable.css +161 -67
- package/dist/datatable.layered.css +161 -67
- package/dist/datepicker.css +13 -41
- package/dist/datepicker.layered.css +13 -41
- package/dist/datepickerfield.css +4 -1
- package/dist/datepickerfield.layered.css +4 -1
- package/dist/dialog.css +12 -7
- package/dist/dialog.layered.css +12 -7
- package/dist/emptystate.css +5 -3
- package/dist/emptystate.layered.css +5 -3
- package/dist/esm/components/badge/badge.recipe.js +22 -8
- package/dist/esm/components/bottomsheet/bottomsheet.js +52 -0
- package/dist/esm/components/bottomsheet/bottomsheet.recipe.js +74 -0
- package/dist/esm/components/bottomsheet/index.js +2 -0
- package/dist/esm/components/button/button.recipe.js +40 -16
- package/dist/esm/components/checkbox/checkbox.recipe.js +61 -9
- package/dist/esm/components/chip/chip.js +14 -2
- package/dist/esm/components/chip/chip.recipe.js +69 -1
- package/dist/esm/components/chipgroup/chipgroup.js +15 -0
- package/dist/esm/components/chipgroup/chipgroup.recipe.js +33 -0
- package/dist/esm/components/chipgroup/index.js +2 -0
- package/dist/esm/components/datatable/datatable.js +5 -1
- package/dist/esm/components/datatable/datatable.recipe.js +11 -2
- package/dist/esm/components/dialog/dialog.recipe.js +22 -11
- package/dist/esm/components/emptystate/emptystate.recipe.js +7 -2
- package/dist/esm/components/fileupload/fileupload.js +20 -5
- package/dist/esm/components/input/index.js +1 -1
- package/dist/esm/components/input/input.js +30 -0
- package/dist/esm/components/input/input.recipe.js +17 -10
- package/dist/esm/components/menu/menu.recipe.js +21 -7
- package/dist/esm/components/menusheet/index.js +2 -0
- package/dist/esm/components/menusheet/menusheet.js +95 -0
- package/dist/esm/components/menusheet/menusheet.recipe.js +100 -0
- package/dist/esm/components/multiselect/multiselect.js +1 -1
- package/dist/esm/components/multiselect/multiselect.recipe.js +33 -9
- package/dist/esm/components/select/select.js +1 -1
- package/dist/esm/components/select/select.recipe.js +38 -12
- package/dist/esm/components/snackbar/index.js +2 -0
- package/dist/esm/components/snackbar/snackbar.js +84 -0
- package/dist/esm/components/snackbar/snackbar.recipe.js +68 -0
- package/dist/esm/components/tabletoolbar/tabletoolbar.chrome.js +7 -2
- package/dist/esm/components/tabletoolbar/tabletoolbar.js +37 -12
- package/dist/esm/components/tabs/tabs.js +10 -4
- package/dist/esm/components/tabs/tabs.recipe.js +23 -6
- package/dist/esm/components/textarea/textarea.recipe.js +12 -9
- package/dist/esm/index.js +7 -0
- package/dist/esm/product/authshell/authshell.recipe.js +5 -1
- package/dist/esm/product/command/command.recipe.js +4 -1
- package/dist/esm/product/comments/comments.js +7 -2
- package/dist/esm/product/comments/comments.recipe.js +25 -7
- package/dist/esm/product/memberssettings/index.js +1 -0
- package/dist/esm/product/memberssettings/memberssettings.js +62 -0
- package/dist/esm/product/memberssettings/memberssettings.recipe.js +80 -0
- package/dist/esm/product/notificationssettings/index.js +1 -0
- package/dist/esm/product/notificationssettings/notificationssettings.js +16 -0
- package/dist/esm/product/notificationssettings/notificationssettings.recipe.js +41 -0
- package/dist/esm/product/recordpage/recordpage.js +58 -7
- package/dist/esm/product/recordpage/recordpage.recipe.js +43 -6
- package/dist/esm/product/workspacegeneralsettings/index.js +1 -0
- package/dist/esm/product/workspacegeneralsettings/workspacegeneralsettings.js +18 -0
- package/dist/esm/product/workspacegeneralsettings/workspacegeneralsettings.recipe.js +48 -0
- package/dist/esm/tokens/contract.js +2 -1
- package/dist/esm/tokens/elevation.js +8 -5
- package/dist/esm/tokens/palette.js +28 -8
- package/dist/esm/tokens/scale.js +43 -1
- package/dist/esm/tokens/semantic.js +2 -0
- package/dist/fileupload.css +3 -1
- package/dist/fileupload.layered.css +3 -1
- package/dist/input.css +6 -4
- package/dist/input.layered.css +6 -4
- package/dist/listpage.css +3 -1
- package/dist/listpage.layered.css +3 -1
- package/dist/memberssettings.css +67 -0
- package/dist/memberssettings.d.ts +7 -0
- package/dist/memberssettings.layered.css +69 -0
- package/dist/menu.css +2 -2
- package/dist/menu.layered.css +2 -2
- package/dist/menusheet.css +36 -0
- package/dist/menusheet.d.ts +7 -0
- package/dist/menusheet.layered.css +38 -0
- package/dist/multiselect.css +13 -6
- package/dist/multiselect.layered.css +13 -6
- package/dist/native/tokens.d.ts +2 -1
- package/dist/native/tokens.js +20 -3
- package/dist/notificationssettings.css +22 -0
- package/dist/notificationssettings.d.ts +7 -0
- package/dist/notificationssettings.layered.css +24 -0
- package/dist/objectsettings.css +4 -4
- package/dist/objectsettings.layered.css +4 -4
- package/dist/recordpage.css +67 -23
- package/dist/recordpage.layered.css +67 -23
- package/dist/recordpanel.css +35 -16
- package/dist/recordpanel.layered.css +35 -16
- package/dist/resizablepanel.css +8 -5
- package/dist/resizablepanel.layered.css +8 -5
- package/dist/richtext.css +24 -8
- package/dist/richtext.layered.css +24 -8
- package/dist/savedviews.css +9 -2
- package/dist/savedviews.layered.css +9 -2
- package/dist/select.css +25 -5
- package/dist/select.layered.css +25 -5
- package/dist/settingsshell.css +2 -3
- package/dist/settingsshell.layered.css +2 -3
- package/dist/slider.css +6 -27
- package/dist/slider.layered.css +6 -27
- package/dist/snackbar.css +24 -0
- package/dist/snackbar.d.ts +7 -0
- package/dist/snackbar.layered.css +26 -0
- package/dist/statcard.css +3 -1
- package/dist/statcard.layered.css +3 -1
- package/dist/styles.css +859 -345
- package/dist/styles.layered.css +859 -345
- package/dist/table.css +28 -10
- package/dist/table.layered.css +28 -10
- package/dist/tabletoolbar.css +35 -24
- package/dist/tabletoolbar.layered.css +35 -24
- package/dist/tabs.css +18 -4
- package/dist/tabs.layered.css +18 -4
- package/dist/textarea.css +2 -6
- package/dist/textarea.layered.css +2 -6
- package/dist/themepicker.css +2 -1
- package/dist/themepicker.layered.css +2 -1
- package/dist/tokens.css +13 -2
- package/dist/tokens.json +20 -3
- package/dist/types/components/bottomsheet/bottomsheet.d.ts +35 -0
- package/dist/types/components/bottomsheet/bottomsheet.recipe.d.ts +3 -0
- package/dist/types/components/bottomsheet/index.d.ts +2 -0
- package/dist/types/components/button/button.recipe.d.ts +11 -6
- package/dist/types/components/checkbox/checkbox.recipe.d.ts +28 -5
- package/dist/types/components/chip/chip.d.ts +22 -0
- package/dist/types/components/chip/chip.recipe.d.ts +48 -0
- package/dist/types/components/chipgroup/chipgroup.d.ts +14 -0
- package/dist/types/components/chipgroup/chipgroup.recipe.d.ts +5 -0
- package/dist/types/components/chipgroup/index.d.ts +2 -0
- package/dist/types/components/datatable/datatable.d.ts +19 -0
- package/dist/types/components/fileupload/fileupload.d.ts +26 -0
- package/dist/types/components/input/index.d.ts +1 -1
- package/dist/types/components/input/input.d.ts +72 -0
- package/dist/types/components/menusheet/index.d.ts +2 -0
- package/dist/types/components/menusheet/menusheet.d.ts +42 -0
- package/dist/types/components/menusheet/menusheet.recipe.d.ts +3 -0
- package/dist/types/components/snackbar/index.d.ts +2 -0
- package/dist/types/components/snackbar/snackbar.d.ts +36 -0
- package/dist/types/components/snackbar/snackbar.recipe.d.ts +5 -0
- package/dist/types/components/tabletoolbar/tabletoolbar.d.ts +28 -1
- package/dist/types/components/tabs/tabs.d.ts +11 -1
- package/dist/types/index.d.ts +7 -0
- package/dist/types/product/comments/comments.d.ts +9 -3
- package/dist/types/product/comments/comments.recipe.d.ts +12 -2
- package/dist/types/product/memberssettings/index.d.ts +1 -0
- package/dist/types/product/memberssettings/memberssettings.d.ts +85 -0
- package/dist/types/product/memberssettings/memberssettings.recipe.d.ts +3 -0
- package/dist/types/product/notificationssettings/index.d.ts +1 -0
- package/dist/types/product/notificationssettings/notificationssettings.d.ts +37 -0
- package/dist/types/product/notificationssettings/notificationssettings.recipe.d.ts +3 -0
- package/dist/types/product/recordpage/recordpage.d.ts +53 -2
- package/dist/types/product/workspacegeneralsettings/index.d.ts +1 -0
- package/dist/types/product/workspacegeneralsettings/workspacegeneralsettings.d.ts +48 -0
- package/dist/types/product/workspacegeneralsettings/workspacegeneralsettings.recipe.d.ts +3 -0
- package/dist/types/tokens/contract.d.ts +4 -1
- package/dist/types/tokens/elevation.d.ts +8 -5
- package/dist/types/tokens/palette.d.ts +9 -1
- package/dist/types/tokens/scale.d.ts +11 -1
- package/dist/types/tokens/semantic.d.ts +2 -0
- package/dist/wheelpicker.css +4 -2
- package/dist/wheelpicker.layered.css +4 -2
- package/dist/workspacegeneralsettings.css +30 -0
- package/dist/workspacegeneralsettings.d.ts +7 -0
- package/dist/workspacegeneralsettings.layered.css +32 -0
- package/package.json +36 -1
package/dist/command.css
CHANGED
|
@@ -7,28 +7,32 @@
|
|
|
7
7
|
& .crisp-command-card { display: flex; flex-direction: column; flex: 1; min-height: 0; box-sizing: border-box; border-radius: var(--crisp-radius-xl); background: var(--crisp-bg-surface); box-shadow: 0 0 0 1px color-mix(in srgb, var(--crisp-fg-primary) 8%, transparent); overflow: hidden; }
|
|
8
8
|
& .crisp-command-control { display: flex; align-items: center; gap: var(--crisp-space-2-5); height: 52px; flex-shrink: 0; padding: 0 var(--crisp-space-4); border-bottom: 1px solid var(--crisp-border-subtle); color: var(--crisp-fg-muted); }
|
|
9
9
|
& .crisp-command-control svg { flex-shrink: 0; }
|
|
10
|
-
/* The palette's label element. It exists for the assistive tree only: zag's
|
|
10
|
+
/* The palette's label element. It exists for the assistive tree only: zag's
|
|
11
|
+
combobox names the input through it and points the listbox's
|
|
11
12
|
aria-labelledby at it, and without it both were unnamed and the reference
|
|
12
13
|
resolved to nothing (#225). Clipped rather than display:none, which would
|
|
13
14
|
take it out of the tree it exists for. */
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
15
|
+
& .crisp-command-srlabel { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
|
|
16
|
+
& .crisp-command-input { flex: 1; min-width: 0; border: none; outline: none; background: transparent; font-family: var(--crisp-font-sans); font-size: var(--crisp-text-xl); color: var(--crisp-fg-primary); }
|
|
17
|
+
& .crisp-command-input::placeholder { color: var(--crisp-fg-muted); }
|
|
18
|
+
& .crisp-command-list { flex: 1; min-height: 0; overflow-y: auto; padding: var(--crisp-space-1) var(--crisp-space-2-5); display: flex; flex-direction: column; gap: var(--crisp-space-px); }
|
|
19
|
+
& .crisp-command-empty { padding: var(--crisp-space-8) var(--crisp-space-3); text-align: center; font-size: var(--crisp-text-md); color: var(--crisp-fg-muted); }
|
|
20
|
+
& .crisp-command-item { box-sizing: border-box; display: flex; align-items: center; gap: var(--crisp-space-2); height: 36px; padding-inline: var(--crisp-space-2-5); border-radius: var(--crisp-radius-xl); font-size: var(--crisp-text-lg); color: var(--crisp-fg-primary); cursor: pointer; }
|
|
21
|
+
& .crisp-command-item svg { flex-shrink: 0; color: var(--crisp-fg-muted); }
|
|
22
|
+
& .crisp-command-item[data-highlighted] { background: color-mix(in srgb, var(--crisp-fg-primary) 4%, transparent); }
|
|
23
|
+
& .crisp-command-item-label { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
24
|
+
& .crisp-command-item-shortcut { margin-inline-start: auto; flex-shrink: 0; display: flex; align-items: center; gap: var(--crisp-space-0-5); }
|
|
25
|
+
& .crisp-command-group-label { padding: var(--crisp-space-2) var(--crisp-space-2-5) var(--crisp-space-1); font-size: var(--crisp-text-sm); font-weight: var(--crisp-weight-medium); color: color-mix(in srgb, var(--crisp-fg-primary) 63%, transparent); }
|
|
26
|
+
& .crisp-command-list > .crisp-command-group-label:first-child { padding-top: var(--crisp-space-1); }
|
|
27
|
+
& .crisp-command-footer { display: flex; align-items: center; justify-content: space-between; flex-shrink: 0; height: 44px; padding: 0 var(--crisp-space-2-5); border-top: 1px solid var(--crisp-border-subtle); }
|
|
28
|
+
& .crisp-command-footer-nav { display: flex; align-items: center; gap: var(--crisp-space-1-5); font-size: var(--crisp-text-sm); color: var(--crisp-fg-muted); }
|
|
29
|
+
/* your-moon/crisp#953: bgBrandContrast, not bgBrandSolid --
|
|
30
|
+
the accent (#0298d9) only clears 3.23:1 with white; the darker sibling
|
|
31
|
+
clears 4.5:1+, same fix already applied to Button/Badge/Avatar (#897). */
|
|
32
|
+
& .crisp-command-footer-action { display: flex; align-items: center; gap: var(--crisp-space-2); height: 28px; max-width: 60%; padding: 0 var(--crisp-space-1) 0 var(--crisp-space-2-5); border: none; border-radius: var(--crisp-radius-md); background: var(--crisp-bg-brand-contrast); color: var(--crisp-fg-on-brand); font-family: inherit; font-size: var(--crisp-text-md); font-weight: var(--crisp-weight-medium); cursor: pointer; }
|
|
33
|
+
& .crisp-command-footer-action:disabled { opacity: 0.5; cursor: default; }
|
|
34
|
+
& .crisp-command-footer-action-label { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
35
|
+
& .crisp-command-footer-key { display: inline-flex; align-items: center; justify-content: center; min-width: 18px; height: 18px; padding: 0 var(--crisp-space-1); border-radius: var(--crisp-radius-sm); background: rgba(255,255,255,0.22); font-size: var(--crisp-text-xs); }
|
|
32
36
|
}
|
|
33
37
|
|
|
34
38
|
@media (prefers-reduced-motion: reduce) {
|
package/dist/command.layered.css
CHANGED
|
@@ -8,28 +8,32 @@
|
|
|
8
8
|
& .crisp-command-card { display: flex; flex-direction: column; flex: 1; min-height: 0; box-sizing: border-box; border-radius: var(--crisp-radius-xl); background: var(--crisp-bg-surface); box-shadow: 0 0 0 1px color-mix(in srgb, var(--crisp-fg-primary) 8%, transparent); overflow: hidden; }
|
|
9
9
|
& .crisp-command-control { display: flex; align-items: center; gap: var(--crisp-space-2-5); height: 52px; flex-shrink: 0; padding: 0 var(--crisp-space-4); border-bottom: 1px solid var(--crisp-border-subtle); color: var(--crisp-fg-muted); }
|
|
10
10
|
& .crisp-command-control svg { flex-shrink: 0; }
|
|
11
|
-
/* The palette's label element. It exists for the assistive tree only: zag's
|
|
11
|
+
/* The palette's label element. It exists for the assistive tree only: zag's
|
|
12
|
+
combobox names the input through it and points the listbox's
|
|
12
13
|
aria-labelledby at it, and without it both were unnamed and the reference
|
|
13
14
|
resolved to nothing (#225). Clipped rather than display:none, which would
|
|
14
15
|
take it out of the tree it exists for. */
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
16
|
+
& .crisp-command-srlabel { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
|
|
17
|
+
& .crisp-command-input { flex: 1; min-width: 0; border: none; outline: none; background: transparent; font-family: var(--crisp-font-sans); font-size: var(--crisp-text-xl); color: var(--crisp-fg-primary); }
|
|
18
|
+
& .crisp-command-input::placeholder { color: var(--crisp-fg-muted); }
|
|
19
|
+
& .crisp-command-list { flex: 1; min-height: 0; overflow-y: auto; padding: var(--crisp-space-1) var(--crisp-space-2-5); display: flex; flex-direction: column; gap: var(--crisp-space-px); }
|
|
20
|
+
& .crisp-command-empty { padding: var(--crisp-space-8) var(--crisp-space-3); text-align: center; font-size: var(--crisp-text-md); color: var(--crisp-fg-muted); }
|
|
21
|
+
& .crisp-command-item { box-sizing: border-box; display: flex; align-items: center; gap: var(--crisp-space-2); height: 36px; padding-inline: var(--crisp-space-2-5); border-radius: var(--crisp-radius-xl); font-size: var(--crisp-text-lg); color: var(--crisp-fg-primary); cursor: pointer; }
|
|
22
|
+
& .crisp-command-item svg { flex-shrink: 0; color: var(--crisp-fg-muted); }
|
|
23
|
+
& .crisp-command-item[data-highlighted] { background: color-mix(in srgb, var(--crisp-fg-primary) 4%, transparent); }
|
|
24
|
+
& .crisp-command-item-label { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
25
|
+
& .crisp-command-item-shortcut { margin-inline-start: auto; flex-shrink: 0; display: flex; align-items: center; gap: var(--crisp-space-0-5); }
|
|
26
|
+
& .crisp-command-group-label { padding: var(--crisp-space-2) var(--crisp-space-2-5) var(--crisp-space-1); font-size: var(--crisp-text-sm); font-weight: var(--crisp-weight-medium); color: color-mix(in srgb, var(--crisp-fg-primary) 63%, transparent); }
|
|
27
|
+
& .crisp-command-list > .crisp-command-group-label:first-child { padding-top: var(--crisp-space-1); }
|
|
28
|
+
& .crisp-command-footer { display: flex; align-items: center; justify-content: space-between; flex-shrink: 0; height: 44px; padding: 0 var(--crisp-space-2-5); border-top: 1px solid var(--crisp-border-subtle); }
|
|
29
|
+
& .crisp-command-footer-nav { display: flex; align-items: center; gap: var(--crisp-space-1-5); font-size: var(--crisp-text-sm); color: var(--crisp-fg-muted); }
|
|
30
|
+
/* your-moon/crisp#953: bgBrandContrast, not bgBrandSolid --
|
|
31
|
+
the accent (#0298d9) only clears 3.23:1 with white; the darker sibling
|
|
32
|
+
clears 4.5:1+, same fix already applied to Button/Badge/Avatar (#897). */
|
|
33
|
+
& .crisp-command-footer-action { display: flex; align-items: center; gap: var(--crisp-space-2); height: 28px; max-width: 60%; padding: 0 var(--crisp-space-1) 0 var(--crisp-space-2-5); border: none; border-radius: var(--crisp-radius-md); background: var(--crisp-bg-brand-contrast); color: var(--crisp-fg-on-brand); font-family: inherit; font-size: var(--crisp-text-md); font-weight: var(--crisp-weight-medium); cursor: pointer; }
|
|
34
|
+
& .crisp-command-footer-action:disabled { opacity: 0.5; cursor: default; }
|
|
35
|
+
& .crisp-command-footer-action-label { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
36
|
+
& .crisp-command-footer-key { display: inline-flex; align-items: center; justify-content: center; min-width: 18px; height: 18px; padding: 0 var(--crisp-space-1); border-radius: var(--crisp-radius-sm); background: rgba(255,255,255,0.22); font-size: var(--crisp-text-xs); }
|
|
33
37
|
}
|
|
34
38
|
|
|
35
39
|
@media (prefers-reduced-motion: reduce) {
|
package/dist/comments.css
CHANGED
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
[dir="rtl"] .crisp-comments-badge [data-rtl-flip] { transform: scaleX(-1); }
|
|
31
31
|
|
|
32
32
|
.crisp-comments {
|
|
33
|
-
display: flex; flex-direction: column; box-sizing: border-box;
|
|
33
|
+
display: flex; flex-direction: column; box-sizing: border-box; height: 100%; background: var(--crisp-bg-surface); font-family: var(--crisp-font-sans); -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;
|
|
34
34
|
& * { box-sizing: border-box; }
|
|
35
35
|
& .crisp-comments-head { display: flex; align-items: center; gap: var(--crisp-space-1); flex-shrink: 0; height: 49px; padding: 0 var(--crisp-space-2) 0 var(--crisp-space-4); }
|
|
36
36
|
& .crisp-comments-headbtn { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; width: 28px; height: 28px; margin: 0; padding: 0; border: none; border-radius: var(--crisp-radius-md); background: none; color: color-mix(in srgb, var(--crisp-fg-primary) 55%, transparent); font-family: inherit; cursor: pointer; transition: background-color .12s, color .12s; }
|
|
@@ -40,13 +40,21 @@
|
|
|
40
40
|
& .crisp-comments-breadcrumb { display: flex; align-items: center; gap: var(--crisp-space-1); font-size: 12px; font-weight: var(--crisp-weight-medium); color: color-mix(in srgb, var(--crisp-fg-primary) 63%, transparent); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
41
41
|
& .crisp-comments-body { flex: 1; min-height: 0; overflow-y: auto; padding: 0 var(--crisp-space-4); display: flex; flex-direction: column; gap: var(--crisp-space-4); }
|
|
42
42
|
& .crisp-comments-body--pad-top { padding-top: var(--crisp-space-3); }
|
|
43
|
-
/* One comment row -- avatar 16px (Avatar size="sm"), 6px gap to the
|
|
44
|
-
|
|
43
|
+
/* One comment row -- avatar 16px (Avatar size="sm"), 6px gap to the
|
|
44
|
+
name/time line, 14px/600 name + 12px/500 63%-muted time, 14px/400 body
|
|
45
|
+
two lines below. Hover actions fade in flush with the name line.
|
|
46
|
+
.crisp-comments-row-head's own height: 20px (above) is a single
|
|
47
|
+
text-line's worth, on the same assumption .crisp-comments-title/
|
|
48
|
+
.crisp-comments-breadcrumb already act on higher up in this same
|
|
49
|
+
recipe -- a name that doesn't fit wraps to two lines with nothing
|
|
45
50
|
reserving room for the second one, overflowing straight into the
|
|
46
|
-
body text underneath (found live: this app's own dev-bypass author
|
|
51
|
+
body text underneath (found live: this app's own dev-bypass author
|
|
52
|
+
name, an email long enough to wrap, sat on top of the comment's own
|
|
47
53
|
body text). .crisp-comments-author gets the identical nowrap-
|
|
48
54
|
ellipsis treatment those two already have, plus min-width: 0 so a
|
|
49
|
-
flex item is actually allowed to shrink below its own text's natural
|
|
55
|
+
flex item is actually allowed to shrink below its own text's natural
|
|
56
|
+
width in the first place; .crisp-comments-time gets flex-shrink: 0
|
|
57
|
+
so it's the name that gives, never the timestamp -- the same "one
|
|
50
58
|
side shrinks, the other one doesn't" split PersonChip's own name/
|
|
51
59
|
avatar pair already uses (crisp#668/#671). */
|
|
52
60
|
& .crisp-comments-row { position: relative; display: flex; gap: var(--crisp-space-1-5); }
|
|
@@ -56,16 +64,13 @@
|
|
|
56
64
|
& .crisp-comments-time { flex-shrink: 0; font-size: 12px; font-weight: var(--crisp-weight-medium); color: color-mix(in srgb, var(--crisp-fg-primary) 63%, transparent); white-space: nowrap; }
|
|
57
65
|
& .crisp-comments-resolved-label { display: flex; align-items: center; gap: var(--crisp-space-1); margin-bottom: var(--crisp-space-1); font-size: 12px; font-weight: var(--crisp-weight-medium); color: color-mix(in srgb, var(--crisp-fg-primary) 63%, transparent); }
|
|
58
66
|
& .crisp-comments-body-text { font-size: var(--crisp-text-lg); line-height: 20px; font-weight: var(--crisp-weight-regular); color: var(--crisp-fg-primary); white-space: pre-wrap; word-break: break-word; }
|
|
59
|
-
|
|
60
67
|
/* Hover actions -- measured: 4 buttons, 28x28, radius 8, flush
|
|
61
68
|
side-by-side (0 gap), transparent by default, 16px icon at 55% ink. */
|
|
62
69
|
& .crisp-comments-row-actions { position: absolute; top: 0; inset-inline-end: 0; display: flex; opacity: 0; pointer-events: none; background: var(--crisp-bg-surface); }
|
|
63
|
-
& .crisp-comments-row:hover .crisp-comments-row-actions,
|
|
64
|
-
& .crisp-comments-row-actions:focus-within { opacity: 1; pointer-events: auto; }
|
|
70
|
+
& .crisp-comments-row:hover .crisp-comments-row-actions, & .crisp-comments-row-actions:focus-within { opacity: 1; pointer-events: auto; }
|
|
65
71
|
& .crisp-comments-action { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; margin: 0; padding: 0; border: none; border-radius: var(--crisp-radius-md); background: transparent; color: color-mix(in srgb, var(--crisp-fg-primary) 55%, transparent); font-family: inherit; cursor: pointer; transition: background-color .12s, color .12s; }
|
|
66
72
|
& .crisp-comments-action:hover { background: var(--crisp-bg-raised); color: var(--crisp-fg-primary); }
|
|
67
73
|
& .crisp-comments-action[data-active] { color: var(--crisp-bg-brand-solid); }
|
|
68
|
-
|
|
69
74
|
/* Reactions -- measured: 28px pill, radius 8, subtle 4% ink fill,
|
|
70
75
|
padding 4px 8px 4px 6px, gap 4px between the emoji glyph and count. */
|
|
71
76
|
& .crisp-comments-reactions { display: flex; flex-wrap: wrap; gap: var(--crisp-space-1); margin-top: var(--crisp-space-1-5); }
|
|
@@ -74,12 +79,9 @@
|
|
|
74
79
|
& .crisp-comments-reaction-add { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border: none; border-radius: var(--crisp-radius-md); background: transparent; font-family: inherit; color: color-mix(in srgb, var(--crisp-fg-primary) 55%, transparent); cursor: pointer; opacity: 0; transition: opacity .12s, background-color .12s; }
|
|
75
80
|
& .crisp-comments-row:hover .crisp-comments-reaction-add { opacity: 1; }
|
|
76
81
|
& .crisp-comments-reaction-add:hover { background: var(--crisp-bg-raised); color: var(--crisp-fg-primary); }
|
|
77
|
-
|
|
78
82
|
/* Reply-in-thread view -- an indented block of replies below the root. */
|
|
79
83
|
& .crisp-comments-replies { display: flex; flex-direction: column; gap: var(--crisp-space-4); margin-top: var(--crisp-space-3); padding-inline-start: var(--crisp-space-4); border-inline-start: 1px solid var(--crisp-border-subtle); }
|
|
80
|
-
|
|
81
84
|
& .crisp-comments-empty { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: var(--crisp-space-1); padding: var(--crisp-space-6) var(--crisp-space-4); text-align: center; color: color-mix(in srgb, var(--crisp-fg-primary) 55%, transparent); font-size: var(--crisp-text-lg); }
|
|
82
|
-
|
|
83
85
|
/* Composer -- measured: 14px/20px body text, 16px gap above the
|
|
84
86
|
reply/mention icon row, Comment button 84x32 padding 6px 10px radius
|
|
85
87
|
9 (= radius.lg) brand-solid fill, 14px/500 white label, opacity .4
|
|
@@ -97,21 +99,28 @@
|
|
|
97
99
|
box-shadow, so this reuses that literal rather than re-deriving it.
|
|
98
100
|
32px/radius.lg/6px-10px padding has no matching Button `size` yet
|
|
99
101
|
(24/28/40 are the three that exist), so this stays hand-rolled instead
|
|
100
|
-
of stretching one of those.
|
|
101
|
-
|
|
102
|
-
|
|
102
|
+
of stretching one of those. your-moon/crisp#953:
|
|
103
|
+
bgBrandContrast, not bgBrandSolid -- the accent (#0298d9) only clears
|
|
104
|
+
3.23:1 with white; same fix already applied to Button/Badge/Avatar
|
|
105
|
+
(#897). Hover is a brightness filter on the new fill, matching that
|
|
106
|
+
PR's own Button primary treatment, not bgBrandSolidPressed. */
|
|
107
|
+
& .crisp-comments-post { display: inline-flex; align-items: center; justify-content: center; height: 32px; padding: 6px var(--crisp-space-2-5); border: none; border-radius: var(--crisp-radius-lg); background: var(--crisp-bg-brand-contrast); box-shadow: inset 0 0 0 1px rgba(0,0,0,0.06), 0 2px 4px -2px rgba(38,109,240,0.12), 0 3px 6px -2px rgba(38,109,240,0.08); font-family: inherit; font-size: var(--crisp-text-lg); font-weight: var(--crisp-weight-semibold); color: var(--crisp-fg-on-brand); cursor: pointer; opacity: 1; transition: opacity .12s, filter .12s; }
|
|
108
|
+
& .crisp-comments-post:hover:not(:disabled) { filter: brightness(0.96); }
|
|
103
109
|
& .crisp-comments-post:disabled { opacity: .4; cursor: default; }
|
|
104
|
-
|
|
105
110
|
/* Filter menu -- measured: 220px, radius 12 (radius.xl), 4px padding,
|
|
106
111
|
elevation.floating -- a plain reuse of crisp's own Menu, so no rules
|
|
107
|
-
live here; kept as a comment for the record. */
|
|
108
|
-
|
|
109
|
-
/* An inserted "@mention" chip in the composer -- same shape as
|
|
112
|
+
live here; kept as a comment for the record. */ /* An inserted "@mention" chip in the composer -- same shape as
|
|
110
113
|
RichTextEditor's own `.crisp-rte-mention` (crisp#428), reused here
|
|
111
114
|
rather than re-derived since it's the same atomic-chip affordance. */
|
|
112
115
|
& .crisp-comments-mention { display: inline; padding: 0 2px; border-radius: 4px; background: color-mix(in srgb, var(--crisp-bg-brand-solid) 12%, transparent); color: var(--crisp-bg-brand-solid); font-weight: var(--crisp-weight-medium); user-select: none; }
|
|
113
116
|
[dir="rtl"] & [data-rtl-flip] { transform: scaleX(-1); }
|
|
114
117
|
}
|
|
118
|
+
.crisp-comments--variant_drawer {
|
|
119
|
+
width: 320px; border-inline-start: 1px solid var(--crisp-border-subtle);
|
|
120
|
+
}
|
|
121
|
+
.crisp-comments--variant_pane {
|
|
122
|
+
width: 100%;
|
|
123
|
+
}
|
|
115
124
|
|
|
116
125
|
@media (prefers-reduced-motion: reduce) {
|
|
117
126
|
.crisp-comments, .crisp-comments * {
|
package/dist/comments.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { RecipeFn } from "../core/types";
|
|
2
2
|
|
|
3
3
|
export interface CommentsVariants {
|
|
4
|
-
|
|
4
|
+
variant?: "drawer" | "pane";
|
|
5
5
|
}
|
|
6
6
|
|
|
7
|
-
export declare const commentsRecipe: RecipeFn<{
|
|
7
|
+
export declare const commentsRecipe: RecipeFn<{ variant: { drawer: string; pane: string } }>;
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
[dir="rtl"] .crisp-comments-badge [data-rtl-flip] { transform: scaleX(-1); }
|
|
32
32
|
|
|
33
33
|
.crisp-comments {
|
|
34
|
-
display: flex; flex-direction: column; box-sizing: border-box;
|
|
34
|
+
display: flex; flex-direction: column; box-sizing: border-box; height: 100%; background: var(--crisp-bg-surface); font-family: var(--crisp-font-sans); -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;
|
|
35
35
|
& * { box-sizing: border-box; }
|
|
36
36
|
& .crisp-comments-head { display: flex; align-items: center; gap: var(--crisp-space-1); flex-shrink: 0; height: 49px; padding: 0 var(--crisp-space-2) 0 var(--crisp-space-4); }
|
|
37
37
|
& .crisp-comments-headbtn { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; width: 28px; height: 28px; margin: 0; padding: 0; border: none; border-radius: var(--crisp-radius-md); background: none; color: color-mix(in srgb, var(--crisp-fg-primary) 55%, transparent); font-family: inherit; cursor: pointer; transition: background-color .12s, color .12s; }
|
|
@@ -41,13 +41,21 @@
|
|
|
41
41
|
& .crisp-comments-breadcrumb { display: flex; align-items: center; gap: var(--crisp-space-1); font-size: 12px; font-weight: var(--crisp-weight-medium); color: color-mix(in srgb, var(--crisp-fg-primary) 63%, transparent); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
42
42
|
& .crisp-comments-body { flex: 1; min-height: 0; overflow-y: auto; padding: 0 var(--crisp-space-4); display: flex; flex-direction: column; gap: var(--crisp-space-4); }
|
|
43
43
|
& .crisp-comments-body--pad-top { padding-top: var(--crisp-space-3); }
|
|
44
|
-
/* One comment row -- avatar 16px (Avatar size="sm"), 6px gap to the
|
|
45
|
-
|
|
44
|
+
/* One comment row -- avatar 16px (Avatar size="sm"), 6px gap to the
|
|
45
|
+
name/time line, 14px/600 name + 12px/500 63%-muted time, 14px/400 body
|
|
46
|
+
two lines below. Hover actions fade in flush with the name line.
|
|
47
|
+
.crisp-comments-row-head's own height: 20px (above) is a single
|
|
48
|
+
text-line's worth, on the same assumption .crisp-comments-title/
|
|
49
|
+
.crisp-comments-breadcrumb already act on higher up in this same
|
|
50
|
+
recipe -- a name that doesn't fit wraps to two lines with nothing
|
|
46
51
|
reserving room for the second one, overflowing straight into the
|
|
47
|
-
body text underneath (found live: this app's own dev-bypass author
|
|
52
|
+
body text underneath (found live: this app's own dev-bypass author
|
|
53
|
+
name, an email long enough to wrap, sat on top of the comment's own
|
|
48
54
|
body text). .crisp-comments-author gets the identical nowrap-
|
|
49
55
|
ellipsis treatment those two already have, plus min-width: 0 so a
|
|
50
|
-
flex item is actually allowed to shrink below its own text's natural
|
|
56
|
+
flex item is actually allowed to shrink below its own text's natural
|
|
57
|
+
width in the first place; .crisp-comments-time gets flex-shrink: 0
|
|
58
|
+
so it's the name that gives, never the timestamp -- the same "one
|
|
51
59
|
side shrinks, the other one doesn't" split PersonChip's own name/
|
|
52
60
|
avatar pair already uses (crisp#668/#671). */
|
|
53
61
|
& .crisp-comments-row { position: relative; display: flex; gap: var(--crisp-space-1-5); }
|
|
@@ -57,16 +65,13 @@
|
|
|
57
65
|
& .crisp-comments-time { flex-shrink: 0; font-size: 12px; font-weight: var(--crisp-weight-medium); color: color-mix(in srgb, var(--crisp-fg-primary) 63%, transparent); white-space: nowrap; }
|
|
58
66
|
& .crisp-comments-resolved-label { display: flex; align-items: center; gap: var(--crisp-space-1); margin-bottom: var(--crisp-space-1); font-size: 12px; font-weight: var(--crisp-weight-medium); color: color-mix(in srgb, var(--crisp-fg-primary) 63%, transparent); }
|
|
59
67
|
& .crisp-comments-body-text { font-size: var(--crisp-text-lg); line-height: 20px; font-weight: var(--crisp-weight-regular); color: var(--crisp-fg-primary); white-space: pre-wrap; word-break: break-word; }
|
|
60
|
-
|
|
61
68
|
/* Hover actions -- measured: 4 buttons, 28x28, radius 8, flush
|
|
62
69
|
side-by-side (0 gap), transparent by default, 16px icon at 55% ink. */
|
|
63
70
|
& .crisp-comments-row-actions { position: absolute; top: 0; inset-inline-end: 0; display: flex; opacity: 0; pointer-events: none; background: var(--crisp-bg-surface); }
|
|
64
|
-
& .crisp-comments-row:hover .crisp-comments-row-actions,
|
|
65
|
-
& .crisp-comments-row-actions:focus-within { opacity: 1; pointer-events: auto; }
|
|
71
|
+
& .crisp-comments-row:hover .crisp-comments-row-actions, & .crisp-comments-row-actions:focus-within { opacity: 1; pointer-events: auto; }
|
|
66
72
|
& .crisp-comments-action { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; margin: 0; padding: 0; border: none; border-radius: var(--crisp-radius-md); background: transparent; color: color-mix(in srgb, var(--crisp-fg-primary) 55%, transparent); font-family: inherit; cursor: pointer; transition: background-color .12s, color .12s; }
|
|
67
73
|
& .crisp-comments-action:hover { background: var(--crisp-bg-raised); color: var(--crisp-fg-primary); }
|
|
68
74
|
& .crisp-comments-action[data-active] { color: var(--crisp-bg-brand-solid); }
|
|
69
|
-
|
|
70
75
|
/* Reactions -- measured: 28px pill, radius 8, subtle 4% ink fill,
|
|
71
76
|
padding 4px 8px 4px 6px, gap 4px between the emoji glyph and count. */
|
|
72
77
|
& .crisp-comments-reactions { display: flex; flex-wrap: wrap; gap: var(--crisp-space-1); margin-top: var(--crisp-space-1-5); }
|
|
@@ -75,12 +80,9 @@
|
|
|
75
80
|
& .crisp-comments-reaction-add { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border: none; border-radius: var(--crisp-radius-md); background: transparent; font-family: inherit; color: color-mix(in srgb, var(--crisp-fg-primary) 55%, transparent); cursor: pointer; opacity: 0; transition: opacity .12s, background-color .12s; }
|
|
76
81
|
& .crisp-comments-row:hover .crisp-comments-reaction-add { opacity: 1; }
|
|
77
82
|
& .crisp-comments-reaction-add:hover { background: var(--crisp-bg-raised); color: var(--crisp-fg-primary); }
|
|
78
|
-
|
|
79
83
|
/* Reply-in-thread view -- an indented block of replies below the root. */
|
|
80
84
|
& .crisp-comments-replies { display: flex; flex-direction: column; gap: var(--crisp-space-4); margin-top: var(--crisp-space-3); padding-inline-start: var(--crisp-space-4); border-inline-start: 1px solid var(--crisp-border-subtle); }
|
|
81
|
-
|
|
82
85
|
& .crisp-comments-empty { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: var(--crisp-space-1); padding: var(--crisp-space-6) var(--crisp-space-4); text-align: center; color: color-mix(in srgb, var(--crisp-fg-primary) 55%, transparent); font-size: var(--crisp-text-lg); }
|
|
83
|
-
|
|
84
86
|
/* Composer -- measured: 14px/20px body text, 16px gap above the
|
|
85
87
|
reply/mention icon row, Comment button 84x32 padding 6px 10px radius
|
|
86
88
|
9 (= radius.lg) brand-solid fill, 14px/500 white label, opacity .4
|
|
@@ -98,21 +100,28 @@
|
|
|
98
100
|
box-shadow, so this reuses that literal rather than re-deriving it.
|
|
99
101
|
32px/radius.lg/6px-10px padding has no matching Button `size` yet
|
|
100
102
|
(24/28/40 are the three that exist), so this stays hand-rolled instead
|
|
101
|
-
of stretching one of those.
|
|
102
|
-
|
|
103
|
-
|
|
103
|
+
of stretching one of those. your-moon/crisp#953:
|
|
104
|
+
bgBrandContrast, not bgBrandSolid -- the accent (#0298d9) only clears
|
|
105
|
+
3.23:1 with white; same fix already applied to Button/Badge/Avatar
|
|
106
|
+
(#897). Hover is a brightness filter on the new fill, matching that
|
|
107
|
+
PR's own Button primary treatment, not bgBrandSolidPressed. */
|
|
108
|
+
& .crisp-comments-post { display: inline-flex; align-items: center; justify-content: center; height: 32px; padding: 6px var(--crisp-space-2-5); border: none; border-radius: var(--crisp-radius-lg); background: var(--crisp-bg-brand-contrast); box-shadow: inset 0 0 0 1px rgba(0,0,0,0.06), 0 2px 4px -2px rgba(38,109,240,0.12), 0 3px 6px -2px rgba(38,109,240,0.08); font-family: inherit; font-size: var(--crisp-text-lg); font-weight: var(--crisp-weight-semibold); color: var(--crisp-fg-on-brand); cursor: pointer; opacity: 1; transition: opacity .12s, filter .12s; }
|
|
109
|
+
& .crisp-comments-post:hover:not(:disabled) { filter: brightness(0.96); }
|
|
104
110
|
& .crisp-comments-post:disabled { opacity: .4; cursor: default; }
|
|
105
|
-
|
|
106
111
|
/* Filter menu -- measured: 220px, radius 12 (radius.xl), 4px padding,
|
|
107
112
|
elevation.floating -- a plain reuse of crisp's own Menu, so no rules
|
|
108
|
-
live here; kept as a comment for the record. */
|
|
109
|
-
|
|
110
|
-
/* An inserted "@mention" chip in the composer -- same shape as
|
|
113
|
+
live here; kept as a comment for the record. */ /* An inserted "@mention" chip in the composer -- same shape as
|
|
111
114
|
RichTextEditor's own `.crisp-rte-mention` (crisp#428), reused here
|
|
112
115
|
rather than re-derived since it's the same atomic-chip affordance. */
|
|
113
116
|
& .crisp-comments-mention { display: inline; padding: 0 2px; border-radius: 4px; background: color-mix(in srgb, var(--crisp-bg-brand-solid) 12%, transparent); color: var(--crisp-bg-brand-solid); font-weight: var(--crisp-weight-medium); user-select: none; }
|
|
114
117
|
[dir="rtl"] & [data-rtl-flip] { transform: scaleX(-1); }
|
|
115
118
|
}
|
|
119
|
+
.crisp-comments--variant_drawer {
|
|
120
|
+
width: 320px; border-inline-start: 1px solid var(--crisp-border-subtle);
|
|
121
|
+
}
|
|
122
|
+
.crisp-comments--variant_pane {
|
|
123
|
+
width: 100%;
|
|
124
|
+
}
|
|
116
125
|
|
|
117
126
|
@media (prefers-reduced-motion: reduce) {
|
|
118
127
|
.crisp-comments, .crisp-comments * {
|