@ugurdemirel/landcraft 0.1.0 → 0.1.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/README.md +103 -19
- package/dist/index.cjs +7 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +102 -4
- package/dist/index.js +1336 -1053
- package/dist/index.js.map +1 -1
- package/dist/styles.css +3721 -5900
- package/package.json +9 -7
- package/src/components/Blog.tsx +18 -10
- package/src/components/Button.tsx +27 -8
- package/src/components/Footer.tsx +53 -13
- package/src/components/LanguageSwitcher.tsx +223 -0
- package/src/components/MegaMenu.tsx +15 -11
- package/src/components/Modal.tsx +124 -0
- package/src/components/Navbar.tsx +20 -8
- package/src/components/Slot.tsx +78 -0
- package/src/index.ts +9 -0
- package/src/styles/index.css +2 -71
- package/src/styles/theme.css +242 -0
- package/src/utils/iso2Flag.ts +26 -0
- package/tailwind.preset.cjs +0 -121
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @ugurdemirel/landcraft — Tailwind v4 theme (the "preset").
|
|
3
|
+
*
|
|
4
|
+
* Import this file into your own project's CSS to reuse the whole design
|
|
5
|
+
* language with Tailwind v4:
|
|
6
|
+
*
|
|
7
|
+
* @import "tailwindcss";
|
|
8
|
+
* @import "@ugurdemirel/landcraft/theme.css";
|
|
9
|
+
*
|
|
10
|
+
* Every design decision (color, type, radius, shadow) is driven by plain CSS
|
|
11
|
+
* custom properties, so consumers can re-skin the entire library from outside
|
|
12
|
+
* by overriding a handful of tokens — no JavaScript, no build config.
|
|
13
|
+
*
|
|
14
|
+
* Colors store space-separated RGB channels ("79 70 229") so the library's
|
|
15
|
+
* `rgb(var(--color-x))` inline styles and Tailwind opacity modifiers
|
|
16
|
+
* (`text-primary/60`) keep working after a runtime override.
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
@plugin "@tailwindcss/typography";
|
|
20
|
+
|
|
21
|
+
@layer base {
|
|
22
|
+
:root {
|
|
23
|
+
/* ── Brand ─────────────────────────────────────────────── */
|
|
24
|
+
--color-primary: 79 70 229; /* indigo-600 */
|
|
25
|
+
--color-primary-hover: 67 56 202; /* indigo-700 */
|
|
26
|
+
--color-primary-soft: 238 242 255; /* indigo-50 */
|
|
27
|
+
--color-on-primary: 255 255 255;
|
|
28
|
+
|
|
29
|
+
--color-secondary: 15 15 15; /* ink */
|
|
30
|
+
--color-secondary-hover: 38 38 38;
|
|
31
|
+
--color-on-secondary: 250 250 250;
|
|
32
|
+
|
|
33
|
+
--color-accent: 5 150 105; /* emerald-600 */
|
|
34
|
+
--color-accent-hover: 4 120 87;
|
|
35
|
+
--color-on-accent: 255 255 255;
|
|
36
|
+
|
|
37
|
+
/* ── Surfaces & text (warm paper, not pure white) ──────── */
|
|
38
|
+
--color-background: 250 250 250;
|
|
39
|
+
--color-foreground: 17 17 17;
|
|
40
|
+
--color-muted-foreground: 97 97 97;
|
|
41
|
+
--color-surface: 255 255 255;
|
|
42
|
+
--color-surface-strong: 244 244 242;
|
|
43
|
+
--color-border: 229 229 228;
|
|
44
|
+
--color-ring: 79 70 229;
|
|
45
|
+
--color-danger: 217 45 32;
|
|
46
|
+
--color-danger-soft: 255 241 242;
|
|
47
|
+
|
|
48
|
+
/* ── Type & shape ──────────────────────────────────────── */
|
|
49
|
+
--font-display: "Space Grotesk", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
|
|
50
|
+
--font-sans: "DM Sans", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
|
|
51
|
+
|
|
52
|
+
--radius-sm: 0.375rem;
|
|
53
|
+
--radius-md: 0.625rem;
|
|
54
|
+
--radius-lg: 0.875rem;
|
|
55
|
+
--radius-xl: 1.125rem;
|
|
56
|
+
--radius-2xl: 1.5rem;
|
|
57
|
+
--radius-3xl: 2rem;
|
|
58
|
+
|
|
59
|
+
/* ── Elevation ─────────────────────────────────────────── */
|
|
60
|
+
--shadow-soft: 0 1px 2px rgb(17 17 17 / 0.04), 0 2px 8px rgb(17 17 17 / 0.04);
|
|
61
|
+
--shadow-raised: 0 2px 4px rgb(17 17 17 / 0.05), 0 12px 32px rgb(17 17 17 / 0.08);
|
|
62
|
+
--shadow-overlay: 0 24px 64px -12px rgb(17 17 17 / 0.18);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/*
|
|
67
|
+
* Bind the raw tokens above onto Tailwind's theme namespaces. `@theme inline`
|
|
68
|
+
* inlines each value into the generated utilities instead of emitting another
|
|
69
|
+
* `:root` variable, so the tokens stay the single source of truth and can be
|
|
70
|
+
* overridden at runtime (bg-primary -> rgb(var(--color-primary)), opacity
|
|
71
|
+
* modifiers become color-mix() against the live value).
|
|
72
|
+
*/
|
|
73
|
+
@theme inline {
|
|
74
|
+
--color-primary: rgb(var(--color-primary));
|
|
75
|
+
--color-primary-hover: rgb(var(--color-primary-hover));
|
|
76
|
+
--color-primary-soft: rgb(var(--color-primary-soft));
|
|
77
|
+
--color-on-primary: rgb(var(--color-on-primary));
|
|
78
|
+
--color-secondary: rgb(var(--color-secondary));
|
|
79
|
+
--color-secondary-hover: rgb(var(--color-secondary-hover));
|
|
80
|
+
--color-on-secondary: rgb(var(--color-on-secondary));
|
|
81
|
+
--color-accent: rgb(var(--color-accent));
|
|
82
|
+
--color-accent-hover: rgb(var(--color-accent-hover));
|
|
83
|
+
--color-on-accent: rgb(var(--color-on-accent));
|
|
84
|
+
--color-background: rgb(var(--color-background));
|
|
85
|
+
--color-foreground: rgb(var(--color-foreground));
|
|
86
|
+
--color-muted-foreground: rgb(var(--color-muted-foreground));
|
|
87
|
+
--color-surface: rgb(var(--color-surface));
|
|
88
|
+
--color-surface-strong: rgb(var(--color-surface-strong));
|
|
89
|
+
--color-border: rgb(var(--color-border));
|
|
90
|
+
--color-ring: rgb(var(--color-ring));
|
|
91
|
+
--color-danger: rgb(var(--color-danger));
|
|
92
|
+
--color-danger-soft: rgb(var(--color-danger-soft));
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
@theme {
|
|
96
|
+
--font-sans: "DM Sans", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
|
|
97
|
+
--font-display: "Space Grotesk", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
|
|
98
|
+
|
|
99
|
+
--radius-sm: 0.375rem;
|
|
100
|
+
--radius-md: 0.625rem;
|
|
101
|
+
--radius-lg: 0.875rem;
|
|
102
|
+
--radius-xl: 1.125rem;
|
|
103
|
+
--radius-2xl: 1.5rem;
|
|
104
|
+
--radius-3xl: 2rem;
|
|
105
|
+
|
|
106
|
+
--shadow-soft: 0 1px 2px rgb(17 17 17 / 0.04), 0 2px 8px rgb(17 17 17 / 0.04);
|
|
107
|
+
--shadow-raised: 0 2px 4px rgb(17 17 17 / 0.05), 0 12px 32px rgb(17 17 17 / 0.08);
|
|
108
|
+
--shadow-overlay: 0 24px 64px -12px rgb(17 17 17 / 0.18);
|
|
109
|
+
|
|
110
|
+
--animate-marquee: marquee 38s linear infinite;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
/*
|
|
114
|
+
* Re-skin @tailwindcss/typography through the same tokens. In Tailwind v4 the
|
|
115
|
+
* plugin's styles are emitted into `@layer utilities`, so the overrides live
|
|
116
|
+
* there too (same layer, later + higher specificity -> they win). The rules
|
|
117
|
+
* use the plugin's `--tw-prose-*` variables and zero-specificity `:where()`
|
|
118
|
+
* selectors, so overriding the variables + a few rules is enough.
|
|
119
|
+
*/
|
|
120
|
+
@layer utilities {
|
|
121
|
+
.prose {
|
|
122
|
+
--tw-prose-body: rgb(var(--color-foreground));
|
|
123
|
+
--tw-prose-headings: rgb(var(--color-foreground));
|
|
124
|
+
--tw-prose-lead: rgb(var(--color-muted-foreground));
|
|
125
|
+
--tw-prose-links: rgb(var(--color-primary));
|
|
126
|
+
--tw-prose-bold: rgb(var(--color-foreground));
|
|
127
|
+
--tw-prose-counters: rgb(var(--color-muted-foreground));
|
|
128
|
+
--tw-prose-bullets: rgb(var(--color-muted-foreground));
|
|
129
|
+
--tw-prose-hr: rgb(var(--color-border));
|
|
130
|
+
--tw-prose-quotes: rgb(var(--color-foreground));
|
|
131
|
+
--tw-prose-quote-borders: rgb(var(--color-primary));
|
|
132
|
+
--tw-prose-captions: rgb(var(--color-muted-foreground));
|
|
133
|
+
--tw-prose-code: rgb(var(--color-foreground));
|
|
134
|
+
--tw-prose-pre-code: rgb(var(--color-on-secondary));
|
|
135
|
+
--tw-prose-pre-bg: rgb(var(--color-secondary));
|
|
136
|
+
--tw-prose-th-borders: rgb(var(--color-border));
|
|
137
|
+
--tw-prose-td-borders: rgb(var(--color-border));
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
.prose :is(h1, h2, h3, h4, h5, h6) {
|
|
141
|
+
font-family: var(--font-display);
|
|
142
|
+
font-weight: 600;
|
|
143
|
+
letter-spacing: -0.02em;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
.prose a {
|
|
147
|
+
text-decoration-thickness: 1px;
|
|
148
|
+
text-underline-offset: 3px;
|
|
149
|
+
font-weight: 500;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
.prose blockquote,
|
|
153
|
+
.prose figure figcaption {
|
|
154
|
+
font-style: normal;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
.prose pre {
|
|
158
|
+
border: 1px solid rgb(var(--color-border));
|
|
159
|
+
border-radius: var(--radius-xl);
|
|
160
|
+
background-color: rgb(var(--color-secondary));
|
|
161
|
+
color: rgb(var(--color-on-secondary));
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
.prose code {
|
|
165
|
+
background-color: rgb(var(--color-surface-strong));
|
|
166
|
+
border-radius: var(--radius-md);
|
|
167
|
+
padding: 0.125rem 0.3125rem;
|
|
168
|
+
font-weight: 500;
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
.prose code::before,
|
|
172
|
+
.prose code::after {
|
|
173
|
+
content: none;
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
.prose pre code {
|
|
177
|
+
background-color: transparent;
|
|
178
|
+
padding: 0;
|
|
179
|
+
border-radius: 0;
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
/* ── Custom utilities ─────────────────────────────────────── */
|
|
184
|
+
|
|
185
|
+
@utility grain {
|
|
186
|
+
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.45'/%3E%3C/svg%3E");
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
@utility mask-fade-x {
|
|
190
|
+
mask-image: linear-gradient(to right, transparent, black 12%, black 88%, transparent);
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
@keyframes marquee {
|
|
194
|
+
from {
|
|
195
|
+
transform: translateX(0);
|
|
196
|
+
}
|
|
197
|
+
to {
|
|
198
|
+
transform: translateX(-50%);
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
/* ── Popover-based Modal (dialog) ────────────────────────── */
|
|
203
|
+
|
|
204
|
+
.modal-anim {
|
|
205
|
+
transition:
|
|
206
|
+
opacity 150ms ease,
|
|
207
|
+
transform 150ms ease,
|
|
208
|
+
overlay 150ms ease allow-discrete,
|
|
209
|
+
display 150ms ease allow-discrete;
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
.modal-anim[popover] {
|
|
213
|
+
opacity: 0;
|
|
214
|
+
transform: scale(0.96);
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
.modal-anim[popover]:popover-open {
|
|
218
|
+
opacity: 1;
|
|
219
|
+
transform: scale(1);
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
@starting-style {
|
|
223
|
+
.modal-anim[popover]:popover-open {
|
|
224
|
+
opacity: 0;
|
|
225
|
+
transform: scale(0.96);
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
.modal-backdrop::backdrop {
|
|
230
|
+
background-color: rgb(0 0 0 / 0.5);
|
|
231
|
+
backdrop-filter: blur(4px);
|
|
232
|
+
transition:
|
|
233
|
+
opacity 150ms ease,
|
|
234
|
+
overlay 150ms ease allow-discrete,
|
|
235
|
+
display 150ms ease allow-discrete;
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
@starting-style {
|
|
239
|
+
.modal-backdrop::backdrop {
|
|
240
|
+
opacity: 0;
|
|
241
|
+
}
|
|
242
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Convert an ISO 3166-1 alpha-2 country code (e.g. "TR", "us") to its flag emoji
|
|
3
|
+
* via regional indicator symbols. Returns `""` when the code is not a real
|
|
4
|
+
* country code (e.g. a language code like "en"), so callers can fall back.
|
|
5
|
+
*
|
|
6
|
+
* iso2ToFlagEmoji("tr") // 🇹🇷
|
|
7
|
+
* iso2ToFlagEmoji("en") // "" (not a country)
|
|
8
|
+
* iso2ToFlagEmoji("") // ""
|
|
9
|
+
*/
|
|
10
|
+
const ISO3166 = new Set(
|
|
11
|
+
`AD AE AF AG AI AL AM AO AQ AR AS AT AU AW AX AZ BA BB BD BE BF BG BH BI BJ BL BM BN BO BQ BR BS BT BV BW BY BZ
|
|
12
|
+
CA CC CD CF CG CH CI CK CL CM CN CO CR CU CV CW CX CY CZ DE DJ DK DM DO DZ EC EE EG EH ER ES ET FI FJ FK FM FO FR
|
|
13
|
+
GA GB GD GE GF GG GH GI GL GM GN GP GQ GR GS GT GU GW GY HK HM HN HR HT HU ID IE IL IM IN IO IQ IR IS IT JE JM JO
|
|
14
|
+
JP KE KG KH KI KM KN KP KR KW KY KZ LA LB LC LI LK LR LS LT LU LV LY MA MC MD ME MF MG MH MK ML MM MN MO MP MQ MR
|
|
15
|
+
MS MT MU MV MW MX MY MZ NA NC NE NF NG NI NL NO NP NR NU NZ OM PA PE PF PG PH PK PL PM PN PR PS PT PW PY QA RE RO
|
|
16
|
+
RS RU RW SA SB SC SD SE SG SH SI SJ SK SL SM SN SO SR SS ST SV SX SY SZ TC TD TF TG TH TJ TK TL TM TN TO TR TT TV
|
|
17
|
+
TW TZ UA UG UM US UY UZ VA VC VE VG VI VN VU WF WS YE YT ZA ZM ZW`.split(/\s+/),
|
|
18
|
+
);
|
|
19
|
+
|
|
20
|
+
export function iso2ToFlagEmoji(code: string): string {
|
|
21
|
+
const upper = code.toUpperCase();
|
|
22
|
+
if (ISO3166.has(upper)) {
|
|
23
|
+
return String.fromCodePoint(0x1f1e6 + upper.charCodeAt(0) - 65, 0x1f1e6 + upper.charCodeAt(1) - 65);
|
|
24
|
+
}
|
|
25
|
+
return "";
|
|
26
|
+
}
|
package/tailwind.preset.cjs
DELETED
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Tailwind preset for @ugurdemirel/landcraft.
|
|
3
|
-
*
|
|
4
|
-
* Every design decision (color, type, radius, shadow) is driven by CSS custom
|
|
5
|
-
* properties so consumers can re-skin the whole library from outside without
|
|
6
|
-
* touching a single component.
|
|
7
|
-
*
|
|
8
|
-
* Colors store space-separated RGB channels so Tailwind's `<alpha-value>`
|
|
9
|
-
* opacity syntax keeps working (e.g. `text-primary/60`).
|
|
10
|
-
*/
|
|
11
|
-
/** @type {import('tailwindcss').Config} */
|
|
12
|
-
module.exports = {
|
|
13
|
-
theme: {
|
|
14
|
-
extend: {
|
|
15
|
-
colors: {
|
|
16
|
-
primary: "rgb(var(--color-primary) / <alpha-value>)",
|
|
17
|
-
"primary-hover": "rgb(var(--color-primary-hover) / <alpha-value>)",
|
|
18
|
-
"primary-soft": "rgb(var(--color-primary-soft) / <alpha-value>)",
|
|
19
|
-
"on-primary": "rgb(var(--color-on-primary) / <alpha-value>)",
|
|
20
|
-
secondary: "rgb(var(--color-secondary) / <alpha-value>)",
|
|
21
|
-
"secondary-hover": "rgb(var(--color-secondary-hover) / <alpha-value>)",
|
|
22
|
-
"on-secondary": "rgb(var(--color-on-secondary) / <alpha-value>)",
|
|
23
|
-
accent: "rgb(var(--color-accent) / <alpha-value>)",
|
|
24
|
-
"accent-hover": "rgb(var(--color-accent-hover) / <alpha-value>)",
|
|
25
|
-
"on-accent": "rgb(var(--color-on-accent) / <alpha-value>)",
|
|
26
|
-
background: "rgb(var(--color-background) / <alpha-value>)",
|
|
27
|
-
foreground: "rgb(var(--color-foreground) / <alpha-value>)",
|
|
28
|
-
"muted-foreground": "rgb(var(--color-muted-foreground) / <alpha-value>)",
|
|
29
|
-
surface: "rgb(var(--color-surface) / <alpha-value>)",
|
|
30
|
-
"surface-strong": "rgb(var(--color-surface-strong) / <alpha-value>)",
|
|
31
|
-
border: "rgb(var(--color-border) / <alpha-value>)",
|
|
32
|
-
ring: "rgb(var(--color-ring) / <alpha-value>)",
|
|
33
|
-
danger: "rgb(var(--color-danger) / <alpha-value>)",
|
|
34
|
-
"danger-soft": "rgb(var(--color-danger-soft) / <alpha-value>)",
|
|
35
|
-
},
|
|
36
|
-
fontFamily: {
|
|
37
|
-
sans: ["var(--font-sans)"],
|
|
38
|
-
display: ["var(--font-display)"],
|
|
39
|
-
},
|
|
40
|
-
borderRadius: {
|
|
41
|
-
sm: "var(--radius-sm)",
|
|
42
|
-
md: "var(--radius-md)",
|
|
43
|
-
lg: "var(--radius-lg)",
|
|
44
|
-
xl: "var(--radius-xl)",
|
|
45
|
-
"2xl": "var(--radius-2xl)",
|
|
46
|
-
"3xl": "var(--radius-3xl)",
|
|
47
|
-
full: "9999px",
|
|
48
|
-
},
|
|
49
|
-
boxShadow: {
|
|
50
|
-
soft: "var(--shadow-soft)",
|
|
51
|
-
raised: "var(--shadow-raised)",
|
|
52
|
-
overlay: "var(--shadow-overlay)",
|
|
53
|
-
},
|
|
54
|
-
borderColor: {
|
|
55
|
-
DEFAULT: "rgb(var(--color-border) / <alpha-value>)",
|
|
56
|
-
},
|
|
57
|
-
ringColor: {
|
|
58
|
-
DEFAULT: "rgb(var(--color-ring) / <alpha-value>)",
|
|
59
|
-
},
|
|
60
|
-
typography: {
|
|
61
|
-
DEFAULT: {
|
|
62
|
-
css: {
|
|
63
|
-
"--tw-prose-body": "rgb(var(--color-foreground))",
|
|
64
|
-
"--tw-prose-headings": "rgb(var(--color-foreground))",
|
|
65
|
-
"--tw-prose-lead": "rgb(var(--color-muted-foreground))",
|
|
66
|
-
"--tw-prose-links": "rgb(var(--color-primary))",
|
|
67
|
-
"--tw-prose-bold": "rgb(var(--color-foreground))",
|
|
68
|
-
"--tw-prose-counters": "rgb(var(--color-muted-foreground))",
|
|
69
|
-
"--tw-prose-bullets": "rgb(var(--color-muted-foreground))",
|
|
70
|
-
"--tw-prose-hr": "rgb(var(--color-border))",
|
|
71
|
-
"--tw-prose-quotes": "rgb(var(--color-foreground))",
|
|
72
|
-
"--tw-prose-quote-borders": "rgb(var(--color-primary))",
|
|
73
|
-
"--tw-prose-captions": "rgb(var(--color-muted-foreground))",
|
|
74
|
-
"--tw-prose-code": "rgb(var(--color-foreground))",
|
|
75
|
-
"--tw-prose-pre-code": "rgb(var(--color-on-secondary))",
|
|
76
|
-
"--tw-prose-pre-bg": "rgb(var(--color-secondary))",
|
|
77
|
-
"--tw-prose-th-borders": "rgb(var(--color-border))",
|
|
78
|
-
"--tw-prose-td-borders": "rgb(var(--color-border))",
|
|
79
|
-
"h1, h2, h3, h4, h5, h6": {
|
|
80
|
-
fontFamily: "var(--font-display)",
|
|
81
|
-
fontWeight: "600",
|
|
82
|
-
letterSpacing: "-0.02em",
|
|
83
|
-
},
|
|
84
|
-
a: {
|
|
85
|
-
textDecorationThickness: "1px",
|
|
86
|
-
textUnderlineOffset: "3px",
|
|
87
|
-
fontWeight: "500",
|
|
88
|
-
},
|
|
89
|
-
blockquote: {
|
|
90
|
-
fontStyle: "normal",
|
|
91
|
-
},
|
|
92
|
-
"figure figcaption": {
|
|
93
|
-
fontStyle: "normal",
|
|
94
|
-
},
|
|
95
|
-
"pre": {
|
|
96
|
-
border: "1px solid rgb(var(--color-border))",
|
|
97
|
-
borderRadius: "var(--radius-xl)",
|
|
98
|
-
backgroundColor: "rgb(var(--color-secondary))",
|
|
99
|
-
color: "rgb(var(--color-on-secondary))",
|
|
100
|
-
},
|
|
101
|
-
code: {
|
|
102
|
-
backgroundColor: "rgb(var(--color-surface-strong))",
|
|
103
|
-
borderRadius: "var(--radius-md)",
|
|
104
|
-
padding: "0.125rem 0.3125rem",
|
|
105
|
-
fontWeight: "500",
|
|
106
|
-
"&::before, &::after": {
|
|
107
|
-
content: "none",
|
|
108
|
-
},
|
|
109
|
-
},
|
|
110
|
-
"pre code": {
|
|
111
|
-
backgroundColor: "transparent",
|
|
112
|
-
padding: "0",
|
|
113
|
-
borderRadius: "0",
|
|
114
|
-
},
|
|
115
|
-
},
|
|
116
|
-
},
|
|
117
|
-
},
|
|
118
|
-
},
|
|
119
|
-
},
|
|
120
|
-
plugins: [require("@tailwindcss/typography")],
|
|
121
|
-
};
|