1/* CHIRPER CUSTOM LARAVEL THEME */
2:root:has(input.theme-controller[value=laravelChirper]:checked),
3[data-theme="laravelChirper"] {
4 color-scheme: light;
5
6 /* Canvas + text (neutral / cooler beige balance) */
7 --color-base-50: #fafafa; /* almost pure white, very faint gray */
8 --color-base-100: #f7f7f8; /* neutral canvas */
9 --color-base-200: #ededee; /* light neutral gray (still contrasty w/ border) */
10 --color-base-300: #e0e1e3; /* mid gray, cooler but not blue */
11 --color-base-content: #1a1a1c; /* neutral dark, softer than #111113 */
12
13 /* Text tones */
14 --text-12: var(--color-base-content);
15 --text-10: color-mix(in oklab, var(--color-base-content) 64%, transparent);
16
17 /* Brand / actions */
18 --color-primary: #5580d2; /* cooler button blue */
19 --color-primary-content: #ffffff;
20 --color-secondary: #2f3136; /* neutral charcoal */
21 --color-secondary-content: #ffffff;
22 --link: #5580d2;
23 --link-hover: color-mix(in oklab, #5580d2 80%, black);
24
25 /* Borders / elevation */
26 --border: 1px;
27 --border-color-soft: rgba(0, 0, 0, 0.08); /* slightly stronger for visibility */
28
29 /* Radii + misc */
30 --radius-xs: 3px;
31 --radius-sm: 5px;
32 --radius-field: 8px;
33 --radius-box: 10px;
34
35 --radius-selector: var(--radius-sm);
36 --radius-field: var(--radius-field);
37 --radius-box: var(--radius-box);
38
39 --depth: 1;
40 --noise: 0;
41}
42
43/* Page background & base text */
44html[data-theme="laravelChirper"],
45:root:has(input.theme-controller[value=laravelChirper]:checked) body {
46 color: var(--text-12);
47}
48
49/* Navbar = sand + hairline bottom */
50.navbar {
51 background: var(--color-base-100);
52 border-bottom: var(--border) solid var(--border-color-soft);
53 backdrop-filter: saturate(140%) blur(6px);
54}
55
56/* Cards — no shadow, soft border, tidy radius */
57:where(.card) {
58 background: var(--color-base-100);
59 color: var(--text-12);
60 border-radius: var(--radius-box);
61 border: var(--border) solid var(--border-color-soft);
62 box-shadow: none !important;
63 /* kill all shadows */
64 transition: none;
65 /* no hover lift */
66}
67
68:where(.card:hover),
69:where(.card.shadow),
70:where(.card.shadow:hover) {
71 box-shadow: none !important;
72}
73
74:where(.card .card-body) {
75 padding: .875rem .875rem 1.125rem;
76}
77
78/* a hair more breathing room */
79
80/* INPUTS / TEXTAREAS */
81:where(.input, .textarea) {
82 border-radius: var(--radius-field);
83 border: var(--border) solid var(--border-color-soft);
84 background: #fff;
85}
86
87/* reduce default textarea padding a touch */
88:where(.textarea) {
89 padding: .625rem .75rem;
90}
91
92/* inside cards, a hair tighter */
93.card :where(.textarea) {
94 padding: .5625rem .75rem;
95}
96
97:where(.input:focus, .textarea:focus) {
98 outline: 2px solid color-mix(in oklab, var(--color-primary) 25%, transparent);
99 outline-offset: 2px;
100}
101
102/* LINKS (site-wide) */
103a {
104 color: var(--link);
105}
106
107a:hover {
108 color: var(--link-hover);
109}
110
111/* Fix: anchor-buttons should NOT be blue like links */
112:where(a.btn) {
113 color: inherit;
114 text-decoration: none;
115}
116
117/* BUTTONS */
118:where(.btn) {
119 border-radius: 5px;
120 box-shadow: none;
121 font-weight: 500;
122 /* medium */
123 font-size: 0.875rem;
124 /* Tailwind text-base */
125 line-height: 1.25rem;
126 /* align with text-base */
127 padding-inline: 1rem;
128 /* a bit more horizontal breathing room */
129}
130
131:where(.btn-primary),
132:where(a.btn-primary) {
133 background: var(--color-primary);
134 color: var(--color-primary-content);
135 border: none;
136}
137
138:where(.btn-primary:hover),
139:where(a.btn-primary:hover) {
140 background: color-mix(in oklab, var(--color-primary) 85%, black);
141}
142
143:where(.btn-ghost),
144:where(a.btn-ghost) {
145 color: var(--text-12);
146 border: var(--border) solid var(--border-color-soft);
147 background: transparent;
148}
149
150:where(.btn-ghost:hover),
151:where(a.btn-ghost:hover) {
152 background: rgba(0, 0, 0, 0.03);
153}
154
155:where(.btn-sm) {
156 height: 2rem;
157 min-height: 2rem;
158 padding-inline: .75rem;
159}
160
161:where(.btn-xs) {
162 height: 1.5rem;
163 min-height: 1.5rem;
164 padding-inline: .5rem;
165 font-size: .75rem;
166}
167
168/* Toast-only success color */
169:where(.toast) {
170 --color-success: #598b6e;
171 --color-success-content: #ffffff;
172}
173
174/* Hairline border + ensure text/icons pick up the content color */
175:where(.toast .alert-success) {
176 background: var(--color-success);
177 color: var(--color-success-content);
178 border: var(--border) solid rgba(0, 0, 0, 0.08);
179}
180
181:where(.link-primary) {
182 color: var(--color-primary) !important;
183}
184
185:where(.link-primary:hover) {
186 color: color-mix(in oklab, var(--color-primary) 85%, black) !important;
187}
188
189/* Timestamps / separators (like your `·` and “ago”) */
190.text-base-content\\/60 {
191 color: var(--text-10) !important;
192}
193
194/* Footer strip */
195footer.footer {
196 background: var(--color-base-200);
197 color: var(--text-10);
198}
199
200/* 1) Links shouldn't style buttons (fixes blue anchor-buttons) */
201a:not(.btn) {
202 color: var(--link);
203}
204
205a:not(.btn):hover {
206 color: var(--link-hover);
207}
208
209/* Anchor buttons keep button colors in all states */
210a.btn,
211a.btn:visited {
212 color: inherit !important;
213 text-decoration: none;
214}
215
216a.btn-ghost,
217a.btn-ghost:visited {
218 color: var(--text-12) !important;
219}
220
221a.btn-primary,
222a.btn-primary:visited {
223 color: var(--color-primary-content) !important;
224}
225
226/* keep ghost text from turning blue on hover */
227a.btn-ghost:hover {
228 color: var(--text-12) !important;
229}
230
231/* 2) Auth inputs full width inside cards/labels */
232.card .input,
233.card .textarea,
234.floating-label>input,
235.floating-label>.input,
236.floating-label>.textarea {
237 width: 100%;
238}
239
240/* 3) Slightly rounder cards & fields*/
241:root:has(input.theme-controller[value=laravelChirper]:checked),
242[data-theme="laravelChirper"] {
243 --radius-box: 10px;
244 /* was 8px */
245 --radius-field: 8px;
246 /* was 6px */
247 --noise: 0;
248 /* was 1; Community look is clean */
249}
250
251/* ensure cards pick up the token over defaults */
252.card {
253 border-radius: var(--radius-box) !important;
254}
255
256h1,
257h2,
258h3,
259h4,
260h5,
261h6 {
262 font-weight: 400 !important;
263}
/* CHIRPER CUSTOM LARAVEL THEME */
:root:has(input.theme-controller[value=laravelChirper]:checked),
[data-theme="laravelChirper"] {
color-scheme: light;
/* Canvas + text (neutral / cooler beige balance) */
--color-base-50: #fafafa; /* almost pure white, very faint gray */
--color-base-100: #f7f7f8; /* neutral canvas */
--color-base-200: #ededee; /* light neutral gray (still contrasty w/ border) */
--color-base-300: #e0e1e3; /* mid gray, cooler but not blue */
--color-base-content: #1a1a1c; /* neutral dark, softer than #111113 */
/* Text tones */
--text-12: var(--color-base-content);
--text-10: color-mix(in oklab, var(--color-base-content) 64%, transparent);
/* Brand / actions */
--color-primary: #5580d2; /* cooler button blue */
--color-primary-content: #ffffff;
--color-secondary: #2f3136; /* neutral charcoal */
--color-secondary-content: #ffffff;
--link: #5580d2;
--link-hover: color-mix(in oklab, #5580d2 80%, black);
/* Borders / elevation */
--border: 1px;
--border-color-soft: rgba(0, 0, 0, 0.08); /* slightly stronger for visibility */
/* Radii + misc */
--radius-xs: 3px;
--radius-sm: 5px;
--radius-field: 8px;
--radius-box: 10px;
--radius-selector: var(--radius-sm);
--radius-field: var(--radius-field);
--radius-box: var(--radius-box);
--depth: 1;
--noise: 0;
}
/* Page background & base text */
html[data-theme="laravelChirper"],
:root:has(input.theme-controller[value=laravelChirper]:checked) body {
color: var(--text-12);
}
/* Navbar = sand + hairline bottom */
.navbar {
background: var(--color-base-100);
border-bottom: var(--border) solid var(--border-color-soft);
backdrop-filter: saturate(140%) blur(6px);
}
/* Cards — no shadow, soft border, tidy radius */
:where(.card) {
background: var(--color-base-100);
color: var(--text-12);
border-radius: var(--radius-box);
border: var(--border) solid var(--border-color-soft);
box-shadow: none !important;
/* kill all shadows */
transition: none;
/* no hover lift */
}
:where(.card:hover),
:where(.card.shadow),
:where(.card.shadow:hover) {
box-shadow: none !important;
}
:where(.card .card-body) {
padding: .875rem .875rem 1.125rem;
}
/* a hair more breathing room */
/* INPUTS / TEXTAREAS */
:where(.input, .textarea) {
border-radius: var(--radius-field);
border: var(--border) solid var(--border-color-soft);
background: #fff;
}
/* reduce default textarea padding a touch */
:where(.textarea) {
padding: .625rem .75rem;
}
/* inside cards, a hair tighter */
.card :where(.textarea) {
padding: .5625rem .75rem;
}
:where(.input:focus, .textarea:focus) {
outline: 2px solid color-mix(in oklab, var(--color-primary) 25%, transparent);
outline-offset: 2px;
}
/* LINKS (site-wide) */
a {
color: var(--link);
}
a:hover {
color: var(--link-hover);
}
/* Fix: anchor-buttons should NOT be blue like links */
:where(a.btn) {
color: inherit;
text-decoration: none;
}
/* BUTTONS */
:where(.btn) {
border-radius: 5px;
box-shadow: none;
font-weight: 500;
/* medium */
font-size: 0.875rem;
/* Tailwind text-base */
line-height: 1.25rem;
/* align with text-base */
padding-inline: 1rem;
/* a bit more horizontal breathing room */
}
:where(.btn-primary),
:where(a.btn-primary) {
background: var(--color-primary);
color: var(--color-primary-content);
border: none;
}
:where(.btn-primary:hover),
:where(a.btn-primary:hover) {
background: color-mix(in oklab, var(--color-primary) 85%, black);
}
:where(.btn-ghost),
:where(a.btn-ghost) {
color: var(--text-12);
border: var(--border) solid var(--border-color-soft);
background: transparent;
}
:where(.btn-ghost:hover),
:where(a.btn-ghost:hover) {
background: rgba(0, 0, 0, 0.03);
}
:where(.btn-sm) {
height: 2rem;
min-height: 2rem;
padding-inline: .75rem;
}
:where(.btn-xs) {
height: 1.5rem;
min-height: 1.5rem;
padding-inline: .5rem;
font-size: .75rem;
}
/* Toast-only success color */
:where(.toast) {
--color-success: #598b6e;
--color-success-content: #ffffff;
}
/* Hairline border + ensure text/icons pick up the content color */
:where(.toast .alert-success) {
background: var(--color-success);
color: var(--color-success-content);
border: var(--border) solid rgba(0, 0, 0, 0.08);
}
:where(.link-primary) {
color: var(--color-primary) !important;
}
:where(.link-primary:hover) {
color: color-mix(in oklab, var(--color-primary) 85%, black) !important;
}
/* Timestamps / separators (like your `·` and “ago”) */
.text-base-content\\/60 {
color: var(--text-10) !important;
}
/* Footer strip */
footer.footer {
background: var(--color-base-200);
color: var(--text-10);
}
/* 1) Links shouldn't style buttons (fixes blue anchor-buttons) */
a:not(.btn) {
color: var(--link);
}
a:not(.btn):hover {
color: var(--link-hover);
}
/* Anchor buttons keep button colors in all states */
a.btn,
a.btn:visited {
color: inherit !important;
text-decoration: none;
}
a.btn-ghost,
a.btn-ghost:visited {
color: var(--text-12) !important;
}
a.btn-primary,
a.btn-primary:visited {
color: var(--color-primary-content) !important;
}
/* keep ghost text from turning blue on hover */
a.btn-ghost:hover {
color: var(--text-12) !important;
}
/* 2) Auth inputs full width inside cards/labels */
.card .input,
.card .textarea,
.floating-label>input,
.floating-label>.input,
.floating-label>.textarea {
width: 100%;
}
/* 3) Slightly rounder cards & fields*/
:root:has(input.theme-controller[value=laravelChirper]:checked),
[data-theme="laravelChirper"] {
--radius-box: 10px;
/* was 8px */
--radius-field: 8px;
/* was 6px */
--noise: 0;
/* was 1; Community look is clean */
}
/* ensure cards pick up the token over defaults */
.card {
border-radius: var(--radius-box) !important;
}
h1,
h2,
h3,
h4,
h5,
h6 {
font-weight: 400 !important;
}