mirror of
https://github.com/webadderallorg/Recordly.git
synced 2026-11-09 07:23:14 +00:00
215 lines
5.1 KiB
CSS
215 lines
5.1 KiB
CSS
@import "tailwindcss";
|
|
@import "@heroui/styles";
|
|
@plugin "tailwindcss-animate";
|
|
@custom-variant dark (&:where(.dark, .dark *));
|
|
@source "../index.html";
|
|
|
|
/* DM Sans is bundled for consistent typography and offline desktop use. */
|
|
@font-face {
|
|
font-family: "DM Sans";
|
|
src: url("./assets/fonts/dm-sans/DMSans-Variable.ttf") format("truetype");
|
|
font-style: normal;
|
|
font-weight: 100 1000;
|
|
font-display: swap;
|
|
}
|
|
@font-face {
|
|
font-family: "DM Sans";
|
|
src: url("./assets/fonts/dm-sans/DMSans-Italic-Variable.ttf") format("truetype");
|
|
font-style: italic;
|
|
font-weight: 100 1000;
|
|
font-display: swap;
|
|
}
|
|
|
|
/* Layout aliases only. All component colors and styling come from HeroUI's default theme. */
|
|
@theme inline {
|
|
--font-sans: var(--app-font-sans);
|
|
--color-primary: var(--accent);
|
|
--color-primary-foreground: var(--accent-foreground);
|
|
--color-secondary: var(--default);
|
|
--color-secondary-foreground: var(--default-foreground);
|
|
--color-muted-foreground: var(--muted);
|
|
--color-card: var(--surface);
|
|
--color-card-foreground: var(--surface-foreground);
|
|
--color-popover: var(--overlay);
|
|
--color-popover-foreground: var(--overlay-foreground);
|
|
--color-destructive: var(--danger);
|
|
--color-destructive-foreground: var(--danger-foreground);
|
|
--color-input: var(--field-border);
|
|
--color-ring: var(--focus);
|
|
--color-editor-bg: var(--background);
|
|
--color-editor-header: var(--surface);
|
|
--color-editor-panel: var(--surface);
|
|
--color-editor-surface: var(--surface);
|
|
--color-editor-surface-alt: var(--surface-secondary);
|
|
--color-editor-dialog: var(--overlay);
|
|
--color-editor-dialog-alt: var(--surface-secondary);
|
|
--color-editor-timeline: var(--background);
|
|
--color-editor-row: var(--surface);
|
|
--color-editor-subrow: var(--surface-secondary);
|
|
}
|
|
|
|
@layer base {
|
|
:root {
|
|
--app-font-sans:
|
|
"DM Sans", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
|
|
--brand-accent: var(--accent);
|
|
--brand-accent-rgb: 0, 111, 238;
|
|
--primary: var(--accent);
|
|
--primary-foreground: var(--accent-foreground);
|
|
--muted-foreground: var(--muted);
|
|
--destructive: var(--danger);
|
|
--input: var(--field-border);
|
|
}
|
|
html,
|
|
body,
|
|
#root {
|
|
width: 100%;
|
|
height: 100%;
|
|
margin: 0;
|
|
}
|
|
body {
|
|
background: var(--background);
|
|
color: var(--foreground);
|
|
font-family: var(--app-font-sans);
|
|
user-select: none;
|
|
}
|
|
html.hud-overlay-window,
|
|
body.hud-overlay-window,
|
|
#root.hud-overlay-window {
|
|
overflow: hidden;
|
|
}
|
|
input,
|
|
textarea {
|
|
user-select: text;
|
|
}
|
|
button,
|
|
input,
|
|
textarea,
|
|
select,
|
|
[role="button"],
|
|
[role="slider"],
|
|
[role="switch"] {
|
|
-webkit-app-region: no-drag;
|
|
}
|
|
}
|
|
|
|
@layer utilities {
|
|
.timeline-cursor-smooth {
|
|
will-change: transform;
|
|
transition:
|
|
left 33ms linear,
|
|
right 33ms linear;
|
|
}
|
|
.custom-scrollbar {
|
|
scrollbar-width: thin;
|
|
scrollbar-color: var(--scrollbar-thumb) transparent;
|
|
}
|
|
}
|
|
|
|
/* Responsive geometry belongs to the editor, leaving HeroUI control styles intact. */
|
|
.editor-header-start,
|
|
.editor-header-end {
|
|
white-space: nowrap;
|
|
}
|
|
.editor-playback {
|
|
container-type: inline-size;
|
|
}
|
|
@container (max-width: 760px) {
|
|
.editor-playback-tools {
|
|
grid-row: 2;
|
|
grid-column: 1 / -1;
|
|
justify-content: center;
|
|
padding-bottom: 8px;
|
|
}
|
|
.editor-playback-center {
|
|
grid-row: 1;
|
|
grid-column: 2;
|
|
}
|
|
.editor-playback-volume {
|
|
grid-row: 1;
|
|
grid-column: 3;
|
|
}
|
|
}
|
|
@container (max-width: 520px) {
|
|
.editor-playback-volume .slider {
|
|
display: none;
|
|
}
|
|
}
|
|
|
|
/* HeroUI owns control focus rings; native controls use the same accent token.
|
|
Do not outline dialogs or other programmatically focused containers. */
|
|
:root,
|
|
.dark {
|
|
--focus: var(--accent);
|
|
}
|
|
:focus-visible:not([data-rac]):not([role="dialog"]):not([role="alertdialog"]):not([tabindex="-1"]) {
|
|
outline: 2px solid var(--focus);
|
|
outline-offset: 2px;
|
|
}
|
|
::selection {
|
|
background: var(--accent-soft);
|
|
color: var(--foreground);
|
|
}
|
|
|
|
@container (max-width: 110px) {
|
|
.zoom-icon,
|
|
.zoom-mode {
|
|
display: none;
|
|
}
|
|
}
|
|
@container (min-height: 40px) and (min-width: 110px) {
|
|
.zoom-mode {
|
|
display: block;
|
|
margin-left: 0;
|
|
font-size: 10px;
|
|
text-align: center;
|
|
}
|
|
}
|
|
@container (max-height: 39px) {
|
|
.zoom-mode {
|
|
margin-left: 4px;
|
|
}
|
|
}
|
|
|
|
@keyframes editor-section-enter {
|
|
from {
|
|
opacity: 0;
|
|
}
|
|
to {
|
|
opacity: 1;
|
|
}
|
|
}
|
|
.editor-section-enter {
|
|
animation: editor-section-enter 180ms ease-out;
|
|
}
|
|
@media (prefers-reduced-motion: reduce) {
|
|
.editor-section-enter {
|
|
animation: none;
|
|
}
|
|
}
|
|
|
|
.dashboard-surface .folder-row > button {
|
|
background: transparent;
|
|
}
|
|
|
|
.inline-project-name {
|
|
background: transparent;
|
|
border: 0;
|
|
border-radius: 0;
|
|
box-shadow: none;
|
|
outline: none;
|
|
padding: 0;
|
|
color: inherit;
|
|
}
|
|
.inline-project-name:focus { outline: none; box-shadow: none; }
|
|
.inline-project-name:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
|
|
|
|
.dashboard-shell {
|
|
background-color: color-mix(in srgb, var(--background) 92%, var(--foreground) 8%);
|
|
}
|
|
|
|
.dark .dashboard-shell { background-color: var(--background); }
|
|
.dark .dashboard-shell > .card { background-color: color-mix(in srgb, var(--background) 92%, var(--foreground) 8%); }
|
|
|
|
.dashboard-settings .custom-scrollbar { padding-inline: 0; scrollbar-gutter: auto !important; }
|