# Conflicts: # resources/views/components/home/final-cta.blade.php # resources/views/components/home/hero.blade.php # resources/views/layouts/public.blade.php
278 lines
9.3 KiB
CSS
278 lines
9.3 KiB
CSS
@import 'tailwindcss';
|
|
@import './tokens.css';
|
|
|
|
@plugin "daisyui" {
|
|
themes: false;
|
|
}
|
|
|
|
@plugin "daisyui/theme" {
|
|
name: "amare";
|
|
default: true;
|
|
color-scheme: light;
|
|
|
|
--color-base-100: var(--amare-color-bg);
|
|
--color-base-200: var(--amare-color-bg-deep);
|
|
--color-base-300: var(--amare-color-bg-archive);
|
|
--color-base-content: var(--amare-color-text);
|
|
--color-primary: var(--amare-color-accent);
|
|
--color-primary-content: var(--amare-color-accent-text);
|
|
--color-secondary: var(--amare-color-sage);
|
|
--color-secondary-content: var(--amare-color-text);
|
|
--color-accent: var(--amare-color-accent-deep);
|
|
--color-accent-content: var(--amare-color-accent-text);
|
|
--color-neutral: var(--amare-color-muted);
|
|
--color-neutral-content: var(--amare-color-accent-text);
|
|
--color-info: #2563eb;
|
|
--color-info-content: #ffffff;
|
|
--color-success: var(--amare-color-success);
|
|
--color-success-content: var(--amare-color-accent-text);
|
|
--color-warning: var(--amare-color-warning);
|
|
--color-warning-content: var(--amare-color-accent-text);
|
|
--color-error: var(--amare-color-error);
|
|
--color-error-content: var(--amare-color-accent-text);
|
|
|
|
--radius-selector: 0;
|
|
--radius-field: 0;
|
|
--radius-box: 0;
|
|
--size-selector: 0.25rem;
|
|
--size-field: 0.25rem;
|
|
--border: 1px;
|
|
--depth: 0;
|
|
--noise: 0;
|
|
}
|
|
|
|
@source '../../vendor/laravel/framework/src/Illuminate/Pagination/resources/views/*.blade.php';
|
|
@source '../../storage/framework/views/*.php';
|
|
@source '../views/**/*.blade.php';
|
|
|
|
@theme {
|
|
--font-sans: var(--amare-font-sans);
|
|
--font-serif: var(--amare-font-serif);
|
|
|
|
--text-xs: var(--amare-text-xs);
|
|
--text-sm: var(--amare-text-sm);
|
|
--text-base: var(--amare-text-base);
|
|
--text-lg: var(--amare-text-lg);
|
|
--text-xl: var(--amare-text-xl);
|
|
--text-2xl: var(--amare-text-2xl);
|
|
--text-3xl: var(--amare-text-3xl);
|
|
--text-4xl: var(--amare-text-4xl);
|
|
|
|
--text-display: clamp(3rem, 7.7vw, 5.875rem);
|
|
--text-display--line-height: 0.94;
|
|
--text-display--letter-spacing: -0.01em;
|
|
|
|
--text-hero-spread: clamp(3rem, 5.5vw, 5rem);
|
|
--text-hero-spread--line-height: 0.94;
|
|
--text-hero-spread--letter-spacing: -0.01em;
|
|
|
|
--text-headline: clamp(2.375rem, 5.2vw, 4rem);
|
|
--text-headline--line-height: 1.02;
|
|
|
|
--spacing-1: var(--amare-space-1);
|
|
--spacing-2: var(--amare-space-2);
|
|
--spacing-3: var(--amare-space-3);
|
|
--spacing-4: var(--amare-space-4);
|
|
--spacing-6: var(--amare-space-6);
|
|
--spacing-8: var(--amare-space-8);
|
|
--spacing-12: var(--amare-space-12);
|
|
--spacing-16: var(--amare-space-16);
|
|
|
|
--radius-sm: var(--amare-radius-sm);
|
|
--radius-md: var(--amare-radius-md);
|
|
--radius-lg: var(--amare-radius-lg);
|
|
--radius-xl: var(--amare-radius-xl);
|
|
--radius-full: var(--amare-radius-full);
|
|
|
|
--color-amare-bg: var(--amare-color-bg);
|
|
--color-amare-bg-deep: var(--amare-color-bg-deep);
|
|
--color-amare-bg-archive: var(--amare-color-bg-archive);
|
|
--color-amare-bg-muted: var(--amare-color-bg-muted);
|
|
--color-amare-text: var(--amare-color-text);
|
|
--color-amare-muted: var(--amare-color-muted);
|
|
--color-amare-text-muted: var(--amare-color-text-muted);
|
|
--color-amare-border: var(--amare-color-border);
|
|
--color-amare-accent: var(--amare-color-accent);
|
|
--color-amare-accent-deep: var(--amare-color-accent-deep);
|
|
--color-amare-accent-hover: var(--amare-color-accent-hover);
|
|
--color-amare-sage: var(--amare-color-sage);
|
|
--color-amare-accent-text: var(--amare-color-accent-text);
|
|
--color-amare-success: var(--amare-color-success);
|
|
--color-amare-warning: var(--amare-color-warning);
|
|
--color-amare-error: var(--amare-color-error);
|
|
|
|
--ease-amare: var(--amare-ease-standard);
|
|
--default-transition-duration: var(--amare-duration-normal);
|
|
|
|
/* Neutralised, not omitted. Tailwind's Vite plugin shares one context
|
|
* across every entry in the build, so the Filament theme entry's
|
|
* `@source app/Filament/**` makes Filament's `shadow-*` usage visible and
|
|
* Tailwind then emits its DEFAULT --shadow-sm/md/lg into this public
|
|
* bundle too — verified by diffing the built app.css with and without
|
|
* that entry. Nothing public uses a shadow utility today, so rendering is
|
|
* unchanged either way, but leaving real shadow values defined here would
|
|
* let a future `shadow-sm` on a public element silently violate
|
|
* DESIGN.md's Tonal Layer Rule, and HeritageEditorialTokensTest only
|
|
* inspects source files, so it would not catch it. Zeroing them keeps the
|
|
* rule true in the artifact that actually ships. */
|
|
--shadow-2xs: 0 0 #0000;
|
|
--shadow-xs: 0 0 #0000;
|
|
--shadow-sm: 0 0 #0000;
|
|
--shadow: 0 0 #0000;
|
|
--shadow-md: 0 0 #0000;
|
|
--shadow-lg: 0 0 #0000;
|
|
--shadow-xl: 0 0 #0000;
|
|
--shadow-2xl: 0 0 #0000;
|
|
--shadow-inner: 0 0 #0000;
|
|
}
|
|
|
|
@layer base {
|
|
body {
|
|
background-color: var(--amare-color-bg);
|
|
color: var(--amare-color-text);
|
|
font-family: var(--amare-font-serif);
|
|
overflow-wrap: break-word;
|
|
}
|
|
|
|
[id$='-heading'] {
|
|
scroll-margin-top: 5.5rem;
|
|
}
|
|
|
|
a:focus-visible,
|
|
button:focus-visible,
|
|
summary:focus-visible,
|
|
input:focus-visible,
|
|
textarea:focus-visible,
|
|
select:focus-visible,
|
|
[tabindex]:focus-visible {
|
|
outline: 2px solid var(--amare-color-accent);
|
|
outline-offset: 3px;
|
|
}
|
|
}
|
|
|
|
@utility container-amare {
|
|
width: 100%;
|
|
max-width: var(--amare-container-max);
|
|
margin-inline: auto;
|
|
padding-inline: var(--amare-container-padding);
|
|
}
|
|
|
|
@utility img-editorial {
|
|
filter: saturate(0.88) contrast(0.96);
|
|
}
|
|
|
|
@utility honeypot {
|
|
position: absolute;
|
|
left: -9999px;
|
|
width: 1px;
|
|
height: 1px;
|
|
overflow: hidden;
|
|
}
|
|
|
|
@layer components {
|
|
.main-nav.is-open {
|
|
display: flex;
|
|
}
|
|
|
|
@media (prefers-reduced-motion: no-preference) {
|
|
.main-nav {
|
|
transition: opacity var(--amare-duration-normal) var(--amare-ease-standard);
|
|
}
|
|
}
|
|
|
|
body.menu-open {
|
|
overflow: hidden;
|
|
}
|
|
|
|
main {
|
|
overflow-x: clip;
|
|
}
|
|
|
|
@media (prefers-reduced-motion: no-preference) {
|
|
:where(a, button, input, textarea, select) {
|
|
transition-duration: var(--amare-motion-feedback);
|
|
transition-property: color, background-color, border-color, transform;
|
|
transition-timing-function: var(--amare-ease-arrival);
|
|
}
|
|
|
|
:where(a, button:not(:disabled)):active {
|
|
transform: translateY(1px);
|
|
}
|
|
|
|
/* Transform/clip only — never fade text opacity (axe + WCAG mid-transition). */
|
|
html[data-motion="enhance"] [data-motion="page-open"]:not(.is-active) [data-motion-beat] {
|
|
transform: translateY(var(--amare-motion-distance-y));
|
|
}
|
|
|
|
html[data-motion="enhance"] [data-motion="page-open"]:not(.is-active) [data-motion-beat="media"] {
|
|
clip-path: inset(4% 0 0 0);
|
|
}
|
|
|
|
html[data-motion="enhance"] [data-motion="page-open"].is-active [data-motion-beat] {
|
|
transform: none;
|
|
clip-path: inset(0 0 0 0);
|
|
transition:
|
|
transform var(--amare-motion-enter) var(--amare-ease-arrival),
|
|
clip-path var(--amare-motion-enter) var(--amare-ease-arrival);
|
|
transition-delay: min(
|
|
calc(var(--motion-index, 0) * var(--amare-motion-stagger)),
|
|
var(--amare-motion-stagger-cap)
|
|
);
|
|
}
|
|
|
|
html[data-motion="enhance"] [data-reveal] {
|
|
--motion-translate-x: 0;
|
|
--motion-translate-y: var(--amare-motion-distance-y);
|
|
}
|
|
|
|
html[data-motion="enhance"] [data-reveal-from="left"] {
|
|
--motion-translate-x: calc(-1 * var(--amare-motion-distance-x-mobile));
|
|
--motion-translate-y: 0;
|
|
}
|
|
|
|
html[data-motion="enhance"] [data-reveal-from="right"] {
|
|
--motion-translate-x: var(--amare-motion-distance-x-mobile);
|
|
--motion-translate-y: 0;
|
|
}
|
|
|
|
@media (min-width: 768px) {
|
|
html[data-motion="enhance"] [data-reveal-from="left"] {
|
|
--motion-translate-x: calc(-1 * var(--amare-motion-distance-x));
|
|
}
|
|
|
|
html[data-motion="enhance"] [data-reveal-from="right"] {
|
|
--motion-translate-x: var(--amare-motion-distance-x);
|
|
}
|
|
}
|
|
|
|
html[data-motion="enhance"] [data-reveal]:not(.is-revealed) {
|
|
transform: translate3d(var(--motion-translate-x), var(--motion-translate-y), 0);
|
|
}
|
|
|
|
html[data-motion="enhance"] [data-reveal][data-reveal-media]:not(.is-revealed) {
|
|
clip-path: inset(3% 0 0 0);
|
|
}
|
|
|
|
html[data-motion="enhance"] [data-reveal-group] [data-reveal].is-revealed,
|
|
html[data-motion="enhance"] [data-reveal].is-revealed {
|
|
transform: none;
|
|
clip-path: inset(0 0 0 0);
|
|
transition:
|
|
transform var(--amare-motion-enter) var(--amare-ease-arrival),
|
|
clip-path var(--amare-motion-enter) var(--amare-ease-arrival);
|
|
transition-delay: min(
|
|
calc(var(--motion-index, 0) * var(--amare-motion-stagger)),
|
|
var(--amare-motion-stagger-cap)
|
|
);
|
|
}
|
|
}
|
|
}
|
|
|
|
/* daisyUI emits unlayered; match focus ring to the amare accent. */
|
|
.input:focus,
|
|
.select:focus,
|
|
.textarea:focus,
|
|
.checkbox:focus-visible {
|
|
--input-color: var(--amare-color-accent);
|
|
}
|