@marwes-ui/presets 1.3.0 → 1.4.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.
- package/README.md +19 -9
- package/dist/chunk-PWG4S55U.js +131 -0
- package/dist/chunk-PWG4S55U.js.map +1 -0
- package/dist/firstEdition/index.d.ts +18 -1
- package/dist/firstEdition/index.js +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/package.json +3 -3
- package/src/firstEdition/accordion.css +25 -12
- package/src/firstEdition/avatar.css +20 -6
- package/src/firstEdition/badge.css +18 -15
- package/src/firstEdition/banner.css +190 -0
- package/src/firstEdition/breadcrumb.css +125 -0
- package/src/firstEdition/button.css +77 -18
- package/src/firstEdition/card.css +28 -24
- package/src/firstEdition/checkbox.css +9 -9
- package/src/firstEdition/context-menu.css +114 -0
- package/src/firstEdition/date-picker.css +6 -9
- package/src/firstEdition/dialog.css +17 -10
- package/src/firstEdition/drawer.css +258 -0
- package/src/firstEdition/index.ts +10 -0
- package/src/firstEdition/input-otp.css +16 -8
- package/src/firstEdition/input.css +7 -4
- package/src/firstEdition/molecules/accordion-field.css +9 -5
- package/src/firstEdition/molecules/checkbox-field.css +12 -12
- package/src/firstEdition/molecules/checkbox-group-field.css +29 -17
- package/src/firstEdition/molecules/date-picker-field.css +28 -0
- package/src/firstEdition/molecules/dialog-modal.css +16 -1
- package/src/firstEdition/molecules/input-field.css +31 -13
- package/src/firstEdition/molecules/input-otp-field.css +26 -0
- package/src/firstEdition/molecules/pagination-field.css +23 -0
- package/src/firstEdition/molecules/radio-group-field.css +30 -9
- package/src/firstEdition/molecules/segmented-control-field.css +23 -0
- package/src/firstEdition/molecules/slider-field.css +9 -4
- package/src/firstEdition/molecules/switch-field.css +8 -4
- package/src/firstEdition/molecules/tab-group.css +15 -2
- package/src/firstEdition/pagination.css +180 -0
- package/src/firstEdition/personality.css +66 -0
- package/src/firstEdition/presets.ts +97 -0
- package/src/firstEdition/progress-bar.css +108 -0
- package/src/firstEdition/radio.css +10 -5
- package/src/firstEdition/rich-text.css +5 -2
- package/src/firstEdition/segmented-control.css +133 -0
- package/src/firstEdition/select.css +26 -31
- package/src/firstEdition/skip-link.css +45 -0
- package/src/firstEdition/slider.css +10 -4
- package/src/firstEdition/spinner.css +1 -1
- package/src/firstEdition/styles.css +20 -0
- package/src/firstEdition/switch.css +4 -4
- package/src/firstEdition/tab.css +4 -4
- package/src/firstEdition/textarea.css +9 -6
- package/src/firstEdition/toast.css +25 -25
- package/src/firstEdition/tokens.css +6 -5
- package/src/firstEdition/tooltip.css +5 -5
- package/src/firstEdition/typography.css +21 -0
- package/dist/chunk-62D3F6GN.js +0 -49
- package/dist/chunk-62D3F6GN.js.map +0 -1
package/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
Static preset CSS and theme exports for Marwes React, Vue, and custom adapter projects.
|
|
1
|
+
Static preset CSS and theme exports for Marwes React, Vue, Svelte, and custom adapter projects.
|
|
2
2
|
|
|
3
3
|
<div align="center">
|
|
4
4
|
|
|
@@ -9,11 +9,12 @@ Static preset CSS and theme exports for Marwes React, Vue, and custom adapter pr
|
|
|
9
9
|
|
|
10
10
|
# Marwes Design System - Presets
|
|
11
11
|
|
|
12
|
-
**Static default CSS and preset theme exports for Marwes React and
|
|
12
|
+
**Static default CSS and preset theme exports for Marwes React, Vue, and Svelte apps.**
|
|
13
13
|
|
|
14
14
|
Static `.mw-*` CSS • CSS variables • Default Marwes visuals • No runtime CSS-in-JS
|
|
15
15
|
|
|
16
|
-
[
|
|
16
|
+
[**marwes.io**](https://marwes.io) — official site, theme builder, and install guides
|
|
17
|
+
[React Storybook](https://storybook-react.marwes.io/latest/) • [Vue Storybook](https://storybook-vue.marwes.io/latest/) • [Svelte Storybook](https://storybook-svelte.marwes.io/latest/) • [Docs](https://github.com/niklas-westman/marwes/tree/main/docs) • [GitHub](https://github.com/niklas-westman/marwes)
|
|
17
18
|
|
|
18
19
|
</div>
|
|
19
20
|
|
|
@@ -21,7 +22,7 @@ Static `.mw-*` CSS • CSS variables • Default Marwes visuals • No runtime C
|
|
|
21
22
|
|
|
22
23
|
## Why Use It
|
|
23
24
|
|
|
24
|
-
Most apps install `@marwes-ui/react
|
|
25
|
+
Most apps install `@marwes-ui/react`, `@marwes-ui/vue`, or `@marwes-ui/svelte`, and those adapters load the default preset automatically. Install presets directly when you need the standalone CSS path, the explicit `firstEditionTheme` object, or preset CSS in a custom adapter.
|
|
25
26
|
|
|
26
27
|
Presets gives Marwes its default visual layer:
|
|
27
28
|
|
|
@@ -39,6 +40,7 @@ Presets are the static visual layer, not the normal app entry point.
|
|
|
39
40
|
| --- | --- |
|
|
40
41
|
| `@marwes-ui/react` | You are building a React app. |
|
|
41
42
|
| `@marwes-ui/vue` | You are building a Vue app. |
|
|
43
|
+
| `@marwes-ui/svelte` | You are building a Svelte app. |
|
|
42
44
|
| `@marwes-ui/core` | You need framework-agnostic recipes, theme utilities, accessibility contracts, or adapter/tooling APIs. |
|
|
43
45
|
| `@marwes-ui/presets` | You need standalone preset CSS or preset theme exports. |
|
|
44
46
|
|
|
@@ -52,7 +54,7 @@ pnpm add @marwes-ui/presets
|
|
|
52
54
|
|
|
53
55
|
## Normal App Setup
|
|
54
56
|
|
|
55
|
-
React and
|
|
57
|
+
React, Vue, and Svelte apps normally import only the adapter:
|
|
56
58
|
|
|
57
59
|
```tsx
|
|
58
60
|
import { Button, ButtonVariant, MarwesProvider } from "@marwes-ui/react"
|
|
@@ -81,18 +83,26 @@ The default preset styles these Marwes families today:
|
|
|
81
83
|
- Accordion and accordion fields
|
|
82
84
|
- Avatar and avatar groups
|
|
83
85
|
- Badge and contextual badge variants
|
|
84
|
-
-
|
|
86
|
+
- Banner and info/success/warning/error banner variants
|
|
87
|
+
- Breadcrumb
|
|
88
|
+
- Button (including `danger` variant), icon button, and purpose button variants
|
|
85
89
|
- Card variants
|
|
86
90
|
- Checkbox, checkbox fields, and checkbox groups
|
|
87
|
-
-
|
|
91
|
+
- Context menu
|
|
92
|
+
- Dialog, dialog modal, and drawer
|
|
88
93
|
- Divider
|
|
89
94
|
- Icon
|
|
90
95
|
- Input, textarea, select, rich text, OTP, and field variants
|
|
91
|
-
-
|
|
96
|
+
- Pagination field
|
|
97
|
+
- Paragraph, heading, and text typography
|
|
98
|
+
- Progress bar
|
|
92
99
|
- Radio and radio groups
|
|
100
|
+
- Segmented control field
|
|
101
|
+
- Skeleton
|
|
93
102
|
- Slider and slider fields
|
|
94
|
-
- Spacing and spacer primitives
|
|
103
|
+
- Spacing and spacer primitives (including the `sp-12` spacing token)
|
|
95
104
|
- Spinner variants
|
|
105
|
+
- Stat tile
|
|
96
106
|
- Switch and switch fields
|
|
97
107
|
- Tab groups and panels
|
|
98
108
|
- Toast and toast container
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import '@fontsource/instrument-sans/400.css';
|
|
2
|
+
import '@fontsource/instrument-sans/500.css';
|
|
3
|
+
import '@fontsource/instrument-sans/600.css';
|
|
4
|
+
import '@fontsource/instrument-sans/700.css';
|
|
5
|
+
|
|
6
|
+
// src/firstEdition/index.ts
|
|
7
|
+
|
|
8
|
+
// src/firstEdition/presets.ts
|
|
9
|
+
var marwesPreset = {
|
|
10
|
+
mode: "light",
|
|
11
|
+
personality: "flat",
|
|
12
|
+
color: {
|
|
13
|
+
primary: "#2F31FC"
|
|
14
|
+
},
|
|
15
|
+
ui: { radius: 4, density: "comfortable" }
|
|
16
|
+
};
|
|
17
|
+
var cyberPreset = {
|
|
18
|
+
mode: "dark",
|
|
19
|
+
tone: "digital",
|
|
20
|
+
personality: "glow",
|
|
21
|
+
color: {
|
|
22
|
+
primary: "#FFE500",
|
|
23
|
+
background: "#0A0A0F",
|
|
24
|
+
surface: "#12121A",
|
|
25
|
+
surfaceElevated: "#1B1B26",
|
|
26
|
+
text: "#F4F4F5",
|
|
27
|
+
textMuted: "#A1A1AA",
|
|
28
|
+
border: "#27272A",
|
|
29
|
+
borderStrong: "#3F3F46"
|
|
30
|
+
},
|
|
31
|
+
font: { primary: "'Fira Code', ui-monospace, monospace" },
|
|
32
|
+
ui: { radius: 0, density: "compact" }
|
|
33
|
+
};
|
|
34
|
+
var editorialPreset = {
|
|
35
|
+
mode: "light",
|
|
36
|
+
personality: "outlined",
|
|
37
|
+
color: {
|
|
38
|
+
primary: "#8B1E3F",
|
|
39
|
+
background: "#FBF7F0",
|
|
40
|
+
surface: "#FFFFFF",
|
|
41
|
+
text: "#1B1B1F",
|
|
42
|
+
textMuted: "#5C5C63",
|
|
43
|
+
border: "#E5DFD2",
|
|
44
|
+
borderStrong: "#C6BFB0"
|
|
45
|
+
},
|
|
46
|
+
font: { primary: "'Playfair Display', Georgia, serif" },
|
|
47
|
+
ui: { radius: 12, density: "spacious" }
|
|
48
|
+
};
|
|
49
|
+
var sunsetPreset = {
|
|
50
|
+
mode: "light",
|
|
51
|
+
personality: "soft",
|
|
52
|
+
color: {
|
|
53
|
+
primary: "#F97316",
|
|
54
|
+
background: "#FFF8F2",
|
|
55
|
+
surface: "#FFFFFF",
|
|
56
|
+
text: "#2B1E17",
|
|
57
|
+
textMuted: "#8B6E5A",
|
|
58
|
+
border: "#F5DFC7",
|
|
59
|
+
borderStrong: "#E9C29A"
|
|
60
|
+
},
|
|
61
|
+
font: { primary: "'Nunito', system-ui, sans-serif" },
|
|
62
|
+
ui: { radius: 16, density: "comfortable" }
|
|
63
|
+
};
|
|
64
|
+
var nordicPreset = {
|
|
65
|
+
mode: "light",
|
|
66
|
+
personality: "outlined",
|
|
67
|
+
color: {
|
|
68
|
+
primary: "#475569",
|
|
69
|
+
background: "#F1F5F9",
|
|
70
|
+
surface: "#F8FAFC",
|
|
71
|
+
text: "#0F172A",
|
|
72
|
+
textMuted: "#64748B",
|
|
73
|
+
border: "#CBD5E1",
|
|
74
|
+
borderStrong: "#94A3B8"
|
|
75
|
+
},
|
|
76
|
+
font: { primary: "'Fira Code', ui-monospace, monospace" },
|
|
77
|
+
ui: { radius: 2, density: "compact" }
|
|
78
|
+
};
|
|
79
|
+
var themePresets = [
|
|
80
|
+
marwesPreset,
|
|
81
|
+
cyberPreset,
|
|
82
|
+
editorialPreset,
|
|
83
|
+
sunsetPreset,
|
|
84
|
+
nordicPreset
|
|
85
|
+
];
|
|
86
|
+
|
|
87
|
+
// src/firstEdition/index.ts
|
|
88
|
+
var firstEditionTheme = {
|
|
89
|
+
color: {
|
|
90
|
+
primary: {
|
|
91
|
+
base: "#2F31FC",
|
|
92
|
+
hover: "#2527CA",
|
|
93
|
+
pressed: "#1B1D97",
|
|
94
|
+
disabled: "#8182FC",
|
|
95
|
+
label: "#FFFFFF",
|
|
96
|
+
labelDisabled: "rgba(255,255,255,0.5)"
|
|
97
|
+
},
|
|
98
|
+
danger: {
|
|
99
|
+
base: "#D90429",
|
|
100
|
+
hover: "#A8031F",
|
|
101
|
+
pressed: "#780215",
|
|
102
|
+
disabled: "#FF8A95",
|
|
103
|
+
label: "#FFFFFF",
|
|
104
|
+
labelDisabled: "rgba(255,255,255,0.5)"
|
|
105
|
+
},
|
|
106
|
+
success: "#006633",
|
|
107
|
+
warning: "#B45309",
|
|
108
|
+
background: "#FFFFFF",
|
|
109
|
+
surface: "#F8F8F8",
|
|
110
|
+
surfaceSubtle: "#F5F5F5",
|
|
111
|
+
surfaceElevated: "#FFFFFF",
|
|
112
|
+
surfaceDisabled: "#F5F5F5",
|
|
113
|
+
surfaceInverted: "#141414",
|
|
114
|
+
text: "#141414",
|
|
115
|
+
textMuted: "#595959",
|
|
116
|
+
textSubtle: "#737373",
|
|
117
|
+
textDisabled: "#737373",
|
|
118
|
+
textInverted: "#FFFFFF",
|
|
119
|
+
border: "#D8D8D8",
|
|
120
|
+
borderSubtle: "#D8D8D8",
|
|
121
|
+
borderStrong: "#A3A3A3",
|
|
122
|
+
borderDisabled: "#D8D8D8",
|
|
123
|
+
focus: "#2F31FC"
|
|
124
|
+
},
|
|
125
|
+
font: { primary: "'Instrument Sans', Inter, system-ui, sans-serif" },
|
|
126
|
+
ui: { radius: 4, density: "comfortable" }
|
|
127
|
+
};
|
|
128
|
+
|
|
129
|
+
export { cyberPreset, editorialPreset, firstEditionTheme, marwesPreset, nordicPreset, sunsetPreset, themePresets };
|
|
130
|
+
//# sourceMappingURL=chunk-PWG4S55U.js.map
|
|
131
|
+
//# sourceMappingURL=chunk-PWG4S55U.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/firstEdition/presets.ts","../src/firstEdition/index.ts"],"names":[],"mappings":"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","file":"chunk-PWG4S55U.js","sourcesContent":["import type { ThemeInput } from \"@marwes-ui/core\"\n\n/**\n * Curated preset themes shipped with the firstEdition CSS. Each preset is a\n * `ThemeInput` — pass it directly to `<MarwesProvider theme={cyberPreset}>`\n * or spread it into a larger theme. The `personality` field maps to the\n * matching CSS signature block in `personality.css`.\n *\n * Presets do not include font imports. The consumer app must load fonts\n * separately (e.g. via Fontsource) when a preset references a non-default\n * font family.\n */\n\nconst marwesPreset: ThemeInput = {\n mode: \"light\",\n personality: \"flat\",\n color: {\n primary: \"#2F31FC\",\n },\n ui: { radius: 4, density: \"comfortable\" },\n}\n\nconst cyberPreset: ThemeInput = {\n mode: \"dark\",\n tone: \"digital\",\n personality: \"glow\",\n color: {\n primary: \"#FFE500\",\n background: \"#0A0A0F\",\n surface: \"#12121A\",\n surfaceElevated: \"#1B1B26\",\n text: \"#F4F4F5\",\n textMuted: \"#A1A1AA\",\n border: \"#27272A\",\n borderStrong: \"#3F3F46\",\n },\n font: { primary: \"'Fira Code', ui-monospace, monospace\" },\n ui: { radius: 0, density: \"compact\" },\n}\n\nconst editorialPreset: ThemeInput = {\n mode: \"light\",\n personality: \"outlined\",\n color: {\n primary: \"#8B1E3F\",\n background: \"#FBF7F0\",\n surface: \"#FFFFFF\",\n text: \"#1B1B1F\",\n textMuted: \"#5C5C63\",\n border: \"#E5DFD2\",\n borderStrong: \"#C6BFB0\",\n },\n font: { primary: \"'Playfair Display', Georgia, serif\" },\n ui: { radius: 12, density: \"spacious\" },\n}\n\nconst sunsetPreset: ThemeInput = {\n mode: \"light\",\n personality: \"soft\",\n color: {\n primary: \"#F97316\",\n background: \"#FFF8F2\",\n surface: \"#FFFFFF\",\n text: \"#2B1E17\",\n textMuted: \"#8B6E5A\",\n border: \"#F5DFC7\",\n borderStrong: \"#E9C29A\",\n },\n font: { primary: \"'Nunito', system-ui, sans-serif\" },\n ui: { radius: 16, density: \"comfortable\" },\n}\n\nconst nordicPreset: ThemeInput = {\n mode: \"light\",\n personality: \"outlined\",\n color: {\n primary: \"#475569\",\n background: \"#F1F5F9\",\n surface: \"#F8FAFC\",\n text: \"#0F172A\",\n textMuted: \"#64748B\",\n border: \"#CBD5E1\",\n borderStrong: \"#94A3B8\",\n },\n font: { primary: \"'Fira Code', ui-monospace, monospace\" },\n ui: { radius: 2, density: \"compact\" },\n}\n\nconst themePresets: readonly ThemeInput[] = [\n marwesPreset,\n cyberPreset,\n editorialPreset,\n sunsetPreset,\n nordicPreset,\n]\n\nexport { cyberPreset, editorialPreset, marwesPreset, nordicPreset, sunsetPreset, themePresets }\n","import type { ThemeInput } from \"@marwes-ui/core\"\nimport \"@fontsource/instrument-sans/400.css\"\nimport \"@fontsource/instrument-sans/500.css\"\nimport \"@fontsource/instrument-sans/600.css\"\nimport \"@fontsource/instrument-sans/700.css\"\n\nexport {\n cyberPreset,\n editorialPreset,\n marwesPreset,\n nordicPreset,\n sunsetPreset,\n themePresets,\n} from \"./presets\"\n\n// Explicit ThemeInput for consumers that still want to import the preset object.\n// MarwesProvider uses the same first edition baseline when no theme is provided.\nexport const firstEditionTheme: ThemeInput = {\n color: {\n primary: {\n base: \"#2F31FC\",\n hover: \"#2527CA\",\n pressed: \"#1B1D97\",\n disabled: \"#8182FC\",\n label: \"#FFFFFF\",\n labelDisabled: \"rgba(255,255,255,0.5)\",\n },\n danger: {\n base: \"#D90429\",\n hover: \"#A8031F\",\n pressed: \"#780215\",\n disabled: \"#FF8A95\",\n label: \"#FFFFFF\",\n labelDisabled: \"rgba(255,255,255,0.5)\",\n },\n success: \"#006633\",\n warning: \"#B45309\",\n background: \"#FFFFFF\",\n surface: \"#F8F8F8\",\n surfaceSubtle: \"#F5F5F5\",\n surfaceElevated: \"#FFFFFF\",\n surfaceDisabled: \"#F5F5F5\",\n surfaceInverted: \"#141414\",\n text: \"#141414\",\n textMuted: \"#595959\",\n textSubtle: \"#737373\",\n textDisabled: \"#737373\",\n textInverted: \"#FFFFFF\",\n border: \"#D8D8D8\",\n borderSubtle: \"#D8D8D8\",\n borderStrong: \"#A3A3A3\",\n borderDisabled: \"#D8D8D8\",\n focus: \"#2F31FC\",\n },\n font: { primary: \"'Instrument Sans', Inter, system-ui, sans-serif\" },\n ui: { radius: 4, density: \"comfortable\" },\n}\n"]}
|
|
@@ -1,5 +1,22 @@
|
|
|
1
1
|
import { ThemeInput } from '@marwes-ui/core';
|
|
2
2
|
|
|
3
|
+
/**
|
|
4
|
+
* Curated preset themes shipped with the firstEdition CSS. Each preset is a
|
|
5
|
+
* `ThemeInput` — pass it directly to `<MarwesProvider theme={cyberPreset}>`
|
|
6
|
+
* or spread it into a larger theme. The `personality` field maps to the
|
|
7
|
+
* matching CSS signature block in `personality.css`.
|
|
8
|
+
*
|
|
9
|
+
* Presets do not include font imports. The consumer app must load fonts
|
|
10
|
+
* separately (e.g. via Fontsource) when a preset references a non-default
|
|
11
|
+
* font family.
|
|
12
|
+
*/
|
|
13
|
+
declare const marwesPreset: ThemeInput;
|
|
14
|
+
declare const cyberPreset: ThemeInput;
|
|
15
|
+
declare const editorialPreset: ThemeInput;
|
|
16
|
+
declare const sunsetPreset: ThemeInput;
|
|
17
|
+
declare const nordicPreset: ThemeInput;
|
|
18
|
+
declare const themePresets: readonly ThemeInput[];
|
|
19
|
+
|
|
3
20
|
declare const firstEditionTheme: ThemeInput;
|
|
4
21
|
|
|
5
|
-
export { firstEditionTheme };
|
|
22
|
+
export { cyberPreset, editorialPreset, firstEditionTheme, marwesPreset, nordicPreset, sunsetPreset, themePresets };
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { firstEditionTheme } from '../chunk-
|
|
1
|
+
export { cyberPreset, editorialPreset, firstEditionTheme, marwesPreset, nordicPreset, sunsetPreset, themePresets } from '../chunk-PWG4S55U.js';
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
3
3
|
//# sourceMappingURL=index.js.map
|
package/dist/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { firstEditionTheme } from './firstEdition/index.js';
|
|
1
|
+
export { cyberPreset, editorialPreset, firstEditionTheme, marwesPreset, nordicPreset, sunsetPreset, themePresets } from './firstEdition/index.js';
|
|
2
2
|
export { ThemeInput } from '@marwes-ui/core';
|
package/dist/index.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@marwes-ui/presets",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.4.0",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -30,13 +30,13 @@
|
|
|
30
30
|
],
|
|
31
31
|
"dependencies": {
|
|
32
32
|
"@fontsource/instrument-sans": "5.2.8",
|
|
33
|
-
"@marwes-ui/core": "1.
|
|
33
|
+
"@marwes-ui/core": "1.4.0"
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|
|
36
36
|
"rimraf": "6.1.2",
|
|
37
37
|
"tsup": "8.5.1",
|
|
38
38
|
"typescript": "5.9.3",
|
|
39
|
-
"vitest": "4.
|
|
39
|
+
"vitest": "4.1.8"
|
|
40
40
|
},
|
|
41
41
|
"scripts": {
|
|
42
42
|
"dev": "tsup --watch",
|
|
@@ -12,7 +12,8 @@
|
|
|
12
12
|
* border #d8d8d8
|
|
13
13
|
* focus border #2f31fc
|
|
14
14
|
* title #141414
|
|
15
|
-
* icon
|
|
15
|
+
* icon #141414
|
|
16
|
+
* content #00000099
|
|
16
17
|
* disabled text #737373
|
|
17
18
|
*
|
|
18
19
|
* Dark state colors:
|
|
@@ -22,32 +23,36 @@
|
|
|
22
23
|
* border #474747
|
|
23
24
|
* focus border #5859fc
|
|
24
25
|
* title #f9fafb
|
|
25
|
-
* icon
|
|
26
|
+
* icon #f9fafb
|
|
27
|
+
* content #ffffff99
|
|
26
28
|
* disabled text #595959
|
|
27
29
|
*/
|
|
28
30
|
|
|
29
31
|
.mw-accordion {
|
|
30
32
|
--mw-accordion-title: var(--mw-color-text);
|
|
31
|
-
--mw-accordion-icon: var(--mw-
|
|
32
|
-
--mw-accordion-content: var(--mw-color-text
|
|
33
|
-
--mw-accordion-surface: var(--mw-color-surface-
|
|
33
|
+
--mw-accordion-icon: var(--mw-accordion-title);
|
|
34
|
+
--mw-accordion-content: color-mix(in srgb, var(--mw-color-text) 60%, transparent);
|
|
35
|
+
--mw-accordion-surface: var(--mw-color-surface-primary);
|
|
34
36
|
--mw-accordion-surface-hover: var(--mw-color-surface-subtle);
|
|
35
37
|
--mw-accordion-surface-pressed: var(--mw-color-border-subtle);
|
|
36
|
-
--mw-accordion-border: var(--mw-color-border-
|
|
38
|
+
--mw-accordion-border: var(--mw-color-border-low);
|
|
37
39
|
--mw-accordion-focus-border: var(--mw-color-focus, #2f31fc);
|
|
38
40
|
--mw-accordion-title-disabled: var(--mw-color-text-disabled);
|
|
39
41
|
--mw-accordion-icon-disabled: var(--mw-color-text-disabled);
|
|
40
42
|
--mw-accordion-content-disabled: var(--mw-color-text-disabled);
|
|
41
43
|
|
|
44
|
+
box-sizing: border-box;
|
|
42
45
|
width: 100%;
|
|
43
46
|
background: var(--mw-accordion-surface);
|
|
44
47
|
border: 1px solid var(--mw-accordion-border);
|
|
45
48
|
border-radius: var(--mw-ui-radius, 6px);
|
|
49
|
+
-webkit-font-smoothing: antialiased;
|
|
46
50
|
overflow: hidden;
|
|
47
51
|
transition: background-color 150ms ease, border-color 150ms ease;
|
|
48
52
|
}
|
|
49
53
|
|
|
50
54
|
.mw-accordion__trigger {
|
|
55
|
+
box-sizing: border-box;
|
|
51
56
|
display: flex;
|
|
52
57
|
align-items: center;
|
|
53
58
|
justify-content: space-between;
|
|
@@ -66,6 +71,7 @@
|
|
|
66
71
|
font-size: var(--mw-density-font-size, 14px);
|
|
67
72
|
font-weight: 500;
|
|
68
73
|
line-height: 16px;
|
|
74
|
+
letter-spacing: var(--mw-typography-text-label-letter-spacing, -0.42px);
|
|
69
75
|
color: var(--mw-accordion-title);
|
|
70
76
|
}
|
|
71
77
|
|
|
@@ -87,7 +93,7 @@
|
|
|
87
93
|
}
|
|
88
94
|
|
|
89
95
|
.mw-accordion--open .mw-accordion__icon {
|
|
90
|
-
transform:
|
|
96
|
+
transform: none;
|
|
91
97
|
}
|
|
92
98
|
|
|
93
99
|
.mw-accordion:not(.mw-accordion--disabled):hover {
|
|
@@ -108,10 +114,13 @@
|
|
|
108
114
|
}
|
|
109
115
|
|
|
110
116
|
.mw-accordion__content {
|
|
117
|
+
box-sizing: border-box;
|
|
111
118
|
padding: 0 16px 16px;
|
|
112
119
|
font-family: var(--mw-font-primary, inherit);
|
|
113
120
|
font-size: var(--mw-density-font-size, 14px);
|
|
114
|
-
|
|
121
|
+
font-weight: 400;
|
|
122
|
+
line-height: 24px;
|
|
123
|
+
letter-spacing: var(--mw-typography-text-label-letter-spacing, -0.42px);
|
|
115
124
|
color: var(--mw-accordion-content);
|
|
116
125
|
}
|
|
117
126
|
|
|
@@ -125,14 +134,18 @@
|
|
|
125
134
|
cursor: not-allowed;
|
|
126
135
|
}
|
|
127
136
|
|
|
137
|
+
.mw-accordion--error .mw-accordion__title {
|
|
138
|
+
color: var(--mw-color-status-error-text);
|
|
139
|
+
}
|
|
140
|
+
|
|
128
141
|
.mw-theme--dark .mw-accordion {
|
|
129
142
|
--mw-accordion-title: var(--mw-color-text);
|
|
130
|
-
--mw-accordion-icon: var(--mw-
|
|
131
|
-
--mw-accordion-content: var(--mw-color-text
|
|
132
|
-
--mw-accordion-surface: var(--mw-color-
|
|
143
|
+
--mw-accordion-icon: var(--mw-accordion-title);
|
|
144
|
+
--mw-accordion-content: color-mix(in srgb, var(--mw-color-text) 60%, transparent);
|
|
145
|
+
--mw-accordion-surface: var(--mw-color-surface-primary, #0f0f0f);
|
|
133
146
|
--mw-accordion-surface-hover: var(--mw-color-surface-subtle);
|
|
134
147
|
--mw-accordion-surface-pressed: var(--mw-color-border);
|
|
135
|
-
--mw-accordion-border: var(--mw-color-border-
|
|
148
|
+
--mw-accordion-border: var(--mw-color-border-low);
|
|
136
149
|
--mw-accordion-focus-border: var(--mw-color-focus, #5859fc);
|
|
137
150
|
--mw-accordion-title-disabled: var(--mw-color-text-disabled);
|
|
138
151
|
--mw-accordion-icon-disabled: var(--mw-color-text-disabled);
|
|
@@ -70,9 +70,13 @@
|
|
|
70
70
|
}
|
|
71
71
|
|
|
72
72
|
.mw-avatar--icon {
|
|
73
|
-
--mw-avatar-surface: var(--mw-color-surface, #
|
|
74
|
-
--mw-avatar-border-width:
|
|
75
|
-
--mw-avatar-border-color:
|
|
73
|
+
--mw-avatar-surface: var(--mw-color-surface-primary, #ffffff);
|
|
74
|
+
--mw-avatar-border-width: 1px;
|
|
75
|
+
--mw-avatar-border-color: color-mix(
|
|
76
|
+
in srgb,
|
|
77
|
+
var(--mw-color-border-full, #000000) 20%,
|
|
78
|
+
transparent
|
|
79
|
+
);
|
|
76
80
|
--mw-avatar-label: var(--mw-color-text-muted);
|
|
77
81
|
}
|
|
78
82
|
|
|
@@ -107,15 +111,19 @@
|
|
|
107
111
|
}
|
|
108
112
|
|
|
109
113
|
.mw-theme--dark .mw-avatar--icon {
|
|
110
|
-
--mw-avatar-surface: var(--mw-color-surface, #
|
|
111
|
-
--mw-avatar-border-color:
|
|
114
|
+
--mw-avatar-surface: var(--mw-color-surface-elevated, #2b2b2b);
|
|
115
|
+
--mw-avatar-border-color: color-mix(
|
|
116
|
+
in srgb,
|
|
117
|
+
var(--mw-color-border-full, #ffffff) 30%,
|
|
118
|
+
transparent
|
|
119
|
+
);
|
|
112
120
|
--mw-avatar-label: var(--mw-color-text-muted);
|
|
113
121
|
}
|
|
114
122
|
|
|
115
123
|
.mw-theme--dark .mw-avatar--image {
|
|
116
124
|
--mw-avatar-surface: var(--mw-color-surface-elevated);
|
|
117
125
|
--mw-avatar-border-color: var(--mw-color-border-subtle);
|
|
118
|
-
--mw-avatar-image-fallback: var(--mw-color-primary-
|
|
126
|
+
--mw-avatar-image-fallback: var(--mw-color-primary-base, #5859fc);
|
|
119
127
|
}
|
|
120
128
|
|
|
121
129
|
.mw-avatar-badge {
|
|
@@ -182,6 +190,12 @@
|
|
|
182
190
|
box-shadow: 0 0 0 var(--mw-avatar-group-stroke-width) var(--mw-avatar-group-stroke);
|
|
183
191
|
}
|
|
184
192
|
|
|
193
|
+
.mw-avatar-group__item > .mw-avatar--icon {
|
|
194
|
+
--mw-avatar-surface: var(--mw-color-surface, #f8f8f8);
|
|
195
|
+
--mw-avatar-border-width: 0px;
|
|
196
|
+
--mw-avatar-border-color: transparent;
|
|
197
|
+
}
|
|
198
|
+
|
|
185
199
|
.mw-avatar-group__counter {
|
|
186
200
|
display: inline-flex;
|
|
187
201
|
align-items: center;
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
/*
|
|
2
2
|
* Badge Component Styles
|
|
3
3
|
* Validated against:
|
|
4
|
-
* - .figma/marwes/components/
|
|
4
|
+
* - .figma/marwes/components/badge.json
|
|
5
5
|
* - .figma/marwes/pages/-badge/-badge_1364-11603.json
|
|
6
6
|
* - .figma/marwes/pages/-badge/-badge-dark_2276-56582.json
|
|
7
7
|
* - .figma/marwes/pages/-badge/component-container_1369-6125.json
|
|
8
8
|
*
|
|
9
|
-
* The live sync
|
|
10
|
-
* derivations, especially for the remaining semantic tones and dark-mode surfaces.
|
|
9
|
+
* The live sync follows status-display/* bindings in Figma.
|
|
11
10
|
*/
|
|
12
11
|
|
|
13
12
|
.mw-badge {
|
|
@@ -38,32 +37,32 @@
|
|
|
38
37
|
============================================ */
|
|
39
38
|
|
|
40
39
|
.mw-badge--neutral {
|
|
41
|
-
--mw-badge-surface: var(--mw-color-surface-
|
|
42
|
-
--mw-badge-border: var(--mw-color-border-
|
|
40
|
+
--mw-badge-surface: var(--mw-color-surface-primary, #ffffff);
|
|
41
|
+
--mw-badge-border: var(--mw-color-border-low, #00000026);
|
|
43
42
|
--mw-badge-label: var(--mw-color-text-muted, #595959);
|
|
44
43
|
}
|
|
45
44
|
|
|
46
45
|
.mw-badge--info {
|
|
47
46
|
--mw-badge-surface: var(--mw-color-status-info-background, #eeeeff);
|
|
48
|
-
--mw-badge-border: var(--mw-color-status-info-border
|
|
47
|
+
--mw-badge-border: var(--mw-color-status-info-border, #ababfd);
|
|
49
48
|
--mw-badge-label: var(--mw-color-status-info-text, #1b1d97);
|
|
50
49
|
}
|
|
51
50
|
|
|
52
51
|
.mw-badge--success {
|
|
53
52
|
--mw-badge-surface: var(--mw-color-status-success-background, #e6f4ed);
|
|
54
|
-
--mw-badge-border: var(--mw-color-status-success-border
|
|
53
|
+
--mw-badge-border: var(--mw-color-status-success-border, #90caad);
|
|
55
54
|
--mw-badge-label: var(--mw-color-status-success-text, #006633);
|
|
56
55
|
}
|
|
57
56
|
|
|
58
57
|
.mw-badge--warning {
|
|
59
58
|
--mw-badge-surface: var(--mw-color-status-warning-background, #fff8e6);
|
|
60
|
-
--mw-badge-border: var(--mw-color-status-warning-border
|
|
59
|
+
--mw-badge-border: var(--mw-color-status-warning-border, #b45309);
|
|
61
60
|
--mw-badge-label: var(--mw-color-status-warning-text, #b45309);
|
|
62
61
|
}
|
|
63
62
|
|
|
64
63
|
.mw-badge--error {
|
|
65
64
|
--mw-badge-surface: var(--mw-color-status-error-background, #ffe8eb);
|
|
66
|
-
--mw-badge-border: var(--mw-color-status-error-border
|
|
65
|
+
--mw-badge-border: var(--mw-color-status-error-border, #ff8a95);
|
|
67
66
|
--mw-badge-label: var(--mw-color-status-error-text, #a8031f);
|
|
68
67
|
}
|
|
69
68
|
|
|
@@ -72,32 +71,32 @@
|
|
|
72
71
|
============================================ */
|
|
73
72
|
|
|
74
73
|
.mw-theme--dark .mw-badge--neutral {
|
|
75
|
-
--mw-badge-surface: var(--mw-color-surface-
|
|
76
|
-
--mw-badge-border: var(--mw-color-border-
|
|
74
|
+
--mw-badge-surface: var(--mw-color-surface-primary);
|
|
75
|
+
--mw-badge-border: var(--mw-color-border-low, #ffffff26);
|
|
77
76
|
--mw-badge-label: var(--mw-color-text-muted);
|
|
78
77
|
}
|
|
79
78
|
|
|
80
79
|
.mw-theme--dark .mw-badge--info {
|
|
81
80
|
--mw-badge-surface: var(--mw-color-status-info-background, #040519);
|
|
82
|
-
--mw-badge-border: var(--mw-color-status-info-border
|
|
81
|
+
--mw-badge-border: var(--mw-color-status-info-border, #8182fc);
|
|
83
82
|
--mw-badge-label: var(--mw-color-status-info-text, #ababfd);
|
|
84
83
|
}
|
|
85
84
|
|
|
86
85
|
.mw-theme--dark .mw-badge--success {
|
|
87
86
|
--mw-badge-surface: var(--mw-color-status-success-background, #001a0c);
|
|
88
|
-
--mw-badge-border: var(--mw-color-status-success-border
|
|
87
|
+
--mw-badge-border: var(--mw-color-status-success-border, #5db189);
|
|
89
88
|
--mw-badge-label: var(--mw-color-status-success-text, #90caad);
|
|
90
89
|
}
|
|
91
90
|
|
|
92
91
|
.mw-theme--dark .mw-badge--warning {
|
|
93
92
|
--mw-badge-surface: var(--mw-color-status-warning-background, #221004);
|
|
94
|
-
--mw-badge-border: var(--mw-color-status-warning-border
|
|
93
|
+
--mw-badge-border: var(--mw-color-status-warning-border, #b45309);
|
|
95
94
|
--mw-badge-label: var(--mw-color-status-warning-text, #fcc94a);
|
|
96
95
|
}
|
|
97
96
|
|
|
98
97
|
.mw-theme--dark .mw-badge--error {
|
|
99
98
|
--mw-badge-surface: var(--mw-color-status-error-background, #240006);
|
|
100
|
-
--mw-badge-border: var(--mw-color-status-error-border
|
|
99
|
+
--mw-badge-border: var(--mw-color-status-error-border, #ff2847);
|
|
101
100
|
--mw-badge-label: var(--mw-color-status-error-text, #ff5566);
|
|
102
101
|
}
|
|
103
102
|
|
|
@@ -105,3 +104,7 @@
|
|
|
105
104
|
display: inline-flex;
|
|
106
105
|
gap: var(--mw-spacing-sp-4);
|
|
107
106
|
}
|
|
107
|
+
|
|
108
|
+
.mw-badge-group__label .mw-text {
|
|
109
|
+
color: inherit;
|
|
110
|
+
}
|