433 lines
7.9 KiB
Plaintext
433 lines
7.9 KiB
Plaintext
// =============================================================================
|
|
// Glint Design System — Core Fixed Stylesheet (main.glts)
|
|
// =============================================================================
|
|
|
|
$bg-app = #11111b
|
|
$bg-panel = #1e1e2e
|
|
$bg-surface = #313244
|
|
$bg-input = #181825
|
|
$accent = #b4befe
|
|
$text-main = #cdd6f4
|
|
$text-muted = #9399b2
|
|
$border-glow = #45475a
|
|
|
|
@mixin text-body {
|
|
font-size: 14px
|
|
}
|
|
|
|
@mixin standard-card {
|
|
background: $bg-panel
|
|
border-color: $border-glow
|
|
border-width: 1px
|
|
border-radius: 12px
|
|
}
|
|
|
|
Window {
|
|
background: $bg-app
|
|
}
|
|
|
|
Panel {
|
|
background: transparent
|
|
border-width: 0px
|
|
padding: 0px
|
|
gap: 12px
|
|
direction: vertical
|
|
}
|
|
|
|
.ui-card {
|
|
@use standard-card
|
|
padding: 14px
|
|
gap: 12px
|
|
align-items: center
|
|
content-align: center
|
|
}
|
|
|
|
// ── Служебные Layout-классы ──────────────────────────────────────────────────
|
|
|
|
.layout-viewport {
|
|
width: fill
|
|
padding: 16px
|
|
gap: 16px
|
|
}
|
|
|
|
.layout-row {
|
|
direction: horizontal
|
|
gap: 16px
|
|
}
|
|
|
|
.layout-col {
|
|
direction: vertical
|
|
gap: 16px
|
|
}
|
|
|
|
.layout-clean {
|
|
width: fill
|
|
}
|
|
|
|
// ── Стили атомарных компонентов ──────────────────────────────────────────────
|
|
|
|
Header {
|
|
color: $accent
|
|
font-size: 20px
|
|
padding: 2px
|
|
}
|
|
|
|
Text {
|
|
@use text-body
|
|
}
|
|
|
|
Label {
|
|
color: $text-muted
|
|
font-size: 12px
|
|
}
|
|
|
|
Input {
|
|
background-color: $bg-input
|
|
color: $text-main
|
|
font-size: 14px
|
|
padding: 10px
|
|
border-radius: 8px
|
|
border-width: 1px
|
|
border-color: $border-glow
|
|
width: 240px
|
|
}
|
|
|
|
Toggle {
|
|
color: $text-main
|
|
font-size: 14px
|
|
}
|
|
|
|
Divider {
|
|
background: $border-glow
|
|
border-width: 1px
|
|
}
|
|
|
|
Button {
|
|
border-radius: 6px
|
|
border-width: 1px
|
|
padding: 8px
|
|
}
|
|
|
|
.btn-custom {
|
|
background: #000000
|
|
}
|
|
|
|
Image {
|
|
border-radius: 8px
|
|
border-width: 1px
|
|
}
|
|
|
|
// ── Секция тестирования продвинутой геометрии Box-Model ──────────────────────
|
|
|
|
.geometry-box {
|
|
@use standard-card
|
|
background: #24253a
|
|
border-color: #f38ba8
|
|
border-width: 2px
|
|
padding-top: 24px
|
|
padding-bottom: 12px
|
|
padding-left: 16px
|
|
padding-right: 40px
|
|
width: 320px
|
|
}
|
|
|
|
.margin-test-item {
|
|
background: #a6e3a1
|
|
padding: 8px
|
|
margin-top: 12px
|
|
margin-bottom: 4px
|
|
}
|
|
|
|
// ── Секция тестирования каскадного наследования (Inheritance) ────────────────
|
|
|
|
.inheritance-box {
|
|
@use standard-card
|
|
background: #181825
|
|
padding: 12px
|
|
color: #f9e2af
|
|
font-size: 18px
|
|
}
|
|
|
|
.override-style {
|
|
color: #f38ba8
|
|
font-size: 12px
|
|
}
|
|
|
|
// ── Секция распределения весов Flex-Grow (Fill portions) ────────────────────
|
|
|
|
.flex-row-bar {
|
|
background: $bg-surface
|
|
direction: horizontal
|
|
padding: 8px
|
|
gap: 8px
|
|
width: fill
|
|
}
|
|
|
|
.fill-10 {
|
|
background: #f38ba8
|
|
width: 10%
|
|
}
|
|
|
|
.fixed-120 {
|
|
background: #f9e2af
|
|
width: 50px
|
|
color: #11111b
|
|
}
|
|
|
|
.fill-20 {
|
|
background: #a6e3a1
|
|
width: 20%
|
|
color: #11111b
|
|
}
|
|
|
|
// ── СТИЛИ ДЛЯ ПРОВЕРКИ POSITION: FIXED ───────────────────────────────────────
|
|
|
|
.fixed-toast {
|
|
position: fixed
|
|
top: 20px
|
|
right: 20px
|
|
background: #a6e3a1
|
|
border-radius: 8px
|
|
padding: 12px
|
|
border-width: 1px
|
|
border-color: #a6e3a1
|
|
color: #000
|
|
font-weight: bold
|
|
}
|
|
|
|
.btn-close {
|
|
background: transparen
|
|
border-width: 0px
|
|
padding: 2px
|
|
}
|
|
|
|
|
|
|
|
|
|
.scroll-test-box {
|
|
@use standard-card
|
|
background: #313244
|
|
height: 150px
|
|
width: 250px
|
|
overflow-y: scroll
|
|
padding: 10px
|
|
}
|
|
|
|
|
|
// ── Стили для тестирования Sticky Эффекта ────────────────────
|
|
|
|
.sticky-container {
|
|
@use standard-card
|
|
background: #181825
|
|
padding: 12px
|
|
gap: 8px
|
|
width: fill
|
|
height: 200px
|
|
overflow-y: scroll
|
|
}
|
|
|
|
.sticky-header {
|
|
position: sticky
|
|
top: 0px
|
|
background: #fab387
|
|
padding: 10px 14px
|
|
border-radius: 6px
|
|
color: #11111b
|
|
font-weight: bold
|
|
font-size: 14px
|
|
width: fill
|
|
}
|
|
|
|
.scroll-spacer {
|
|
gap: 100px
|
|
padding: 10px
|
|
width: fill
|
|
}
|
|
|
|
// ── Стили для тестирования Opacity ────────────────────────────
|
|
|
|
.opacity-fade {
|
|
background: #f38ba8
|
|
padding: 12px
|
|
border-radius: 8px
|
|
opacity: 0.3
|
|
}
|
|
|
|
.opacity-mid {
|
|
background: #a6e3a1
|
|
padding: 12px
|
|
border-radius: 8px
|
|
opacity: 0.6
|
|
}
|
|
|
|
.opacity-subtle {
|
|
background: #89b4fa
|
|
padding: 12px
|
|
border-radius: 8px
|
|
opacity: 0.85
|
|
}
|
|
|
|
// ── Стили для тестирования Font-Weight ─────────────────────────
|
|
|
|
.fw-light {
|
|
font-weight: 300
|
|
color: $text-main
|
|
}
|
|
|
|
.fw-normal {
|
|
font-weight: 400
|
|
color: $text-main
|
|
}
|
|
|
|
.fw-bold {
|
|
font-weight: 700
|
|
color: $text-main
|
|
}
|
|
|
|
.fw-black {
|
|
font-weight: 900
|
|
color: $text-main
|
|
}
|
|
|
|
// ── Стили для тестирования Text-Align ──────────────────────────
|
|
|
|
.ta-box {
|
|
background: #313244
|
|
padding: 8px
|
|
border-radius: 6px
|
|
width: fill
|
|
}
|
|
|
|
.ta-left {
|
|
text-align: left
|
|
}
|
|
|
|
.ta-center {
|
|
text-align: center
|
|
}
|
|
|
|
.ta-right {
|
|
text-align: right
|
|
}
|
|
|
|
// ── Стили для тестирования Line-Height ─────────────────────────
|
|
|
|
.lh-box {
|
|
background: #313244
|
|
padding: 8px
|
|
border-radius: 6px
|
|
width: 300px
|
|
}
|
|
|
|
.lh-tight {
|
|
line-height: 0.8
|
|
}
|
|
|
|
.lh-normal {
|
|
line-height: 1.2
|
|
}
|
|
|
|
.lh-loose {
|
|
line-height: 2.0
|
|
}
|
|
|
|
// ── Стили для тестирования селекторов через запятую ────────────
|
|
|
|
.warning-text, .error-text {
|
|
font-weight: bold
|
|
padding: 8px
|
|
border-radius: 6px
|
|
}
|
|
|
|
.warning-text {
|
|
color: #f9e2af
|
|
background: #3d3520
|
|
}
|
|
|
|
.error-text {
|
|
color: #f38ba8
|
|
background: #3d2020
|
|
}
|
|
|
|
// ── Стили для тестирования Display: None ───────────────────────
|
|
|
|
.hidden-box {
|
|
background: #f38ba8
|
|
padding: 12px
|
|
border-radius: 8px
|
|
display: none
|
|
}
|
|
|
|
.test-section-header {
|
|
color: $accent
|
|
font-size: 16px
|
|
padding: 4px 0
|
|
margin-top: 8px
|
|
}
|
|
|
|
.test-row {
|
|
direction: horizontal
|
|
gap: 12px
|
|
align-items: center
|
|
}
|
|
|
|
// ── Стили для тестирования POSITION: ABSOLUTE ────────────────
|
|
|
|
.abs-demo-container {
|
|
position: relative
|
|
background: #313244
|
|
padding: 16px
|
|
margin-top: 8px
|
|
border-radius: 8px
|
|
width: fill
|
|
gap: 8px
|
|
min-height: 60px
|
|
}
|
|
|
|
.abs-demo-badge {
|
|
position: absolute
|
|
top: 10px
|
|
right: 4px
|
|
background: #f38ba8
|
|
color: #11111b
|
|
font-weight: bold
|
|
font-size: 10px
|
|
padding: 4px 8px
|
|
border-radius: 4px
|
|
}
|
|
|
|
// ── Полноценная демка absolute-позиционирования ──────────────
|
|
|
|
.absolute-demo-section {
|
|
@use standard-card
|
|
background: #181825
|
|
padding: 12px
|
|
gap: 8px
|
|
width: fill
|
|
}
|
|
|
|
.abs-stage {
|
|
position: relative
|
|
background: #24253a
|
|
border-color: $accent
|
|
border-width: 1px
|
|
border-radius: 8px
|
|
padding: 16px
|
|
gap: 6px
|
|
width: fill
|
|
min-height: 80px
|
|
}
|
|
|
|
.abs-overlay {
|
|
position: absolute
|
|
top: 10px
|
|
right: 10px
|
|
background: #f38ba8
|
|
border-radius: 6px
|
|
padding: 8px 12px
|
|
color: #11111b
|
|
font-weight: bold
|
|
font-size: 12px
|
|
gap: 4px
|
|
}
|