Files
metabuilder/scss/components.scss
johndoe6345789 8b2b6e79c0 fix: migrate Sass @import to @use (Dart Sass 3.0 deprecation)
scss/index.scss, scss/components.scss, storybook/src/styles/globals.scss

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-09 23:25:32 +00:00

413 lines
7.5 KiB
SCSS

// Component-specific styles - Material Design 3
// Application-specific components using M3 tokens
@use './components/page.scss';
@use './components/typography.scss';
@use './components/buttons.scss';
@use './components/form-inputs.scss';
@use './components/form-structure.scss';
@use './components/badges.scss';
@use './components/cards.scss';
@use './components/data-display.scss';
@use './components/feedback.scss';
@use './components/media.scss';
@use './components/dialogs.scss';
@use './components/app-layout.scss';
@use './components/conflict-features.scss';
@use './components/feature-pages.scss';
// Loading container
.loading-container {
display: flex;
justify-content: center;
margin-top: 32px;
}
// Back button
.back-button {
margin-bottom: 16px;
}
// Error alert
.error-alert {
margin-bottom: 16px;
}
// Task card
.task-card {
margin-bottom: 16px;
}
// Chip row
.chip-row {
display: flex;
gap: 8px;
margin-bottom: 16px;
flex-wrap: wrap;
}
// Task ID
.task-id {
color: var(--mat-sys-on-surface-variant);
font-family: var(--mat-sys-body-small-font);
font-size: var(--mat-sys-body-small-size);
display: block;
}
// Monospace text
.mono {
font-family: var(--mat-sys-body-large-font);
font-feature-settings: "tnum" on, "lnum" on;
}
// Tabs container
.tabs-container {
border-bottom: 1px solid var(--mat-sys-outline-variant);
margin-bottom: 16px;
}
// Tab panel
.tab-panel {
padding: 16px;
}
// Editor container
.editor-container {
border-radius: var(--mat-sys-corner-medium);
overflow: hidden;
height: 400px;
&.small {
height: 300px;
}
&.large {
height: 500px;
}
}
// Status chip
.status-chip {
margin-top: 8px;
}
// Turn title
.turn-title {
flex-grow: 1;
}
// Current chip
.current-chip {
margin-right: 8px;
}
// Turn actions
.turn-actions {
margin-bottom: 16px;
display: flex;
gap: 8px;
align-items: center;
}
// Turn section
.turn-section {
margin-bottom: 16px;
}
// Turn content
.turn-content {
padding: 16px;
background-color: var(--mat-sys-surface-container-low);
border-radius: var(--mat-sys-corner-medium);
}
// Patch header
.patch-header {
display: flex;
justify-content: space-between;
margin-bottom: 16px;
}
// Patch actions
.patch-actions {
display: flex;
gap: 4px;
}
// Patch description
.patch-description {
margin-bottom: 16px;
padding: 16px;
background-color: var(--mat-sys-surface-container-low);
border-radius: var(--mat-sys-corner-medium);
}
// Text utilities
.text-secondary {
color: var(--mat-sys-on-surface-variant);
}
.text-disabled {
color: color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent);
}
.text-center {
text-align: center;
}
.flex-grow {
flex-grow: 1;
}
// Search dialog
.search-dialog {
.fakemui-dialog-content {
min-height: 400px;
max-height: 80vh;
}
}
.search-dialog-title {
padding-bottom: 8px;
display: flex;
align-items: center;
gap: 8px;
}
.search-dialog-content {
padding: 16px;
}
.search-input {
margin-bottom: 16px;
width: 100%;
}
.search-loading {
padding: 16px 0;
}
.search-loading-row {
display: flex;
justify-content: center;
align-items: center;
gap: 16px;
}
.search-progress {
margin-top: 16px;
}
.search-error {
text-align: center;
padding: 32px 0;
color: var(--mat-sys-error);
}
.search-section-title {
margin-bottom: 8px;
display: flex;
align-items: center;
gap: 4px;
font-family: var(--mat-sys-title-small-font);
font-size: var(--mat-sys-title-small-size);
font-weight: var(--mat-sys-title-small-weight);
color: var(--mat-sys-on-surface);
svg {
width: 18px;
height: 18px;
vertical-align: middle;
}
}
.search-results-list {
margin-bottom: 16px;
}
.search-result-meta {
display: flex;
gap: 8px;
align-items: center;
margin-top: 4px;
color: var(--mat-sys-on-surface-variant);
font-size: var(--mat-sys-body-small-size);
}
.search-result-desc {
max-width: 300px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.search-divider {
margin: 16px 0;
border: none;
border-top: 1px solid var(--mat-sys-outline-variant);
}
.search-code-title {
display: flex;
align-items: center;
gap: 8px;
}
.search-code-preview {
margin-top: 8px;
padding: 8px;
background-color: var(--mat-sys-surface-container-highest);
font-family: var(--mat-sys-body-large-font);
font-feature-settings: "tnum" on, "lnum" on;
font-size: var(--mat-sys-body-small-size);
overflow: hidden;
border-radius: var(--mat-sys-corner-small);
}
.search-code-line {
padding: 2px 0;
.line-number {
color: var(--mat-sys-on-surface-variant);
margin-right: 8px;
font-size: var(--mat-sys-label-small-size);
opacity: 0.6;
}
.line-content {
font-family: var(--mat-sys-body-large-font);
font-feature-settings: "tnum" on, "lnum" on;
font-size: var(--mat-sys-body-small-size);
&.added {
color: var(--color-success);
}
&.removed {
color: var(--mat-sys-error);
}
}
}
.search-empty {
text-align: center;
padding: 32px 0;
color: var(--mat-sys-on-surface-variant);
> * {
margin-top: 8px;
display: block;
}
}
// Highlight for search matches
.highlight {
background-color: color-mix(in srgb, var(--mat-sys-tertiary) 30%, transparent);
color: var(--mat-sys-on-surface);
padding: 0 4px;
border-radius: var(--mat-sys-corner-extra-small);
}
// Documentation styles
.documentation {
padding: 16px 0;
}
.doc-title {
display: flex;
align-items: center;
gap: 8px;
margin-bottom: 16px;
font-family: var(--mat-sys-headline-medium-font);
font-size: var(--mat-sys-headline-medium-size);
font-weight: var(--mat-sys-headline-medium-weight);
svg {
width: 32px;
height: 32px;
}
}
.doc-tabs-container {
margin-bottom: 24px;
border-bottom: 1px solid var(--mat-sys-outline-variant);
}
.code-block {
padding: 16px;
background-color: var(--mat-sys-surface-container-highest);
border-radius: var(--mat-sys-corner-medium);
position: relative;
font-family: var(--mat-sys-body-large-font);
font-feature-settings: "tnum" on, "lnum" on;
overflow: auto;
margin: 8px 0;
.copy-button {
position: absolute;
top: 8px;
right: 8px;
color: var(--mat-sys-on-surface-variant);
svg {
width: 16px;
height: 16px;
}
}
.code-content {
margin: 0;
color: var(--mat-sys-on-surface);
font-size: var(--mat-sys-body-small-size);
line-height: 1.6;
white-space: pre-wrap;
word-break: break-word;
}
}
.endpoint-row {
transition: background-color var(--mat-sys-motion-duration-short4) var(--mat-sys-motion-easing-standard);
&:hover {
background-color: color-mix(in srgb, var(--mat-sys-on-surface) 8%, transparent);
}
td {
padding: 12px;
border-bottom: 1px solid var(--mat-sys-outline-variant);
}
.method-chip {
font-family: var(--mat-sys-body-large-font);
font-feature-settings: "tnum" on, "lnum" on;
font-weight: 600;
}
.endpoint-path {
font-family: var(--mat-sys-body-large-font);
font-feature-settings: "tnum" on, "lnum" on;
font-size: var(--mat-sys-body-medium-size);
}
}
// Table styles for endpoints
.endpoints-table {
width: 100%;
border-collapse: collapse;
th {
text-align: left;
padding: 12px;
border-bottom: 2px solid var(--mat-sys-outline-variant);
font-family: var(--mat-sys-title-small-font);
font-weight: var(--mat-sys-title-small-weight);
color: var(--mat-sys-on-surface);
}
td {
padding: 12px;
border-bottom: 1px solid var(--mat-sys-outline-variant);
color: var(--mat-sys-on-surface);
}
}