UNPKG

@symbion/opalui

Version:

A minimalistic CSS framework

239 lines (210 loc) 4.57 kB
.c-fieldset { border: 1px solid lch(from var(--col-secondary) l c h / var(--op-disabled)); padding: var(--p-fieldset); display: flex; flex-direction: column; gap: 0.5rem; } .c-fieldset > legend { text-transform: uppercase; letter-spacing: 0.1rem; } .c-input, .c-select, .c-input-group { border-radius: var(--radius-control); border: var(--border-w-sm) solid var(--col-secondary); background: var(--col-container); color: var(--col-on-container); box-shadow: inset 0px 0px 1rem var(--col-frost); width: 100%; } .c-input, .c-select { padding: 0.5rem 0.5rem; } .c-select > option { color: var(--col-on-surface); background: var(--col-surface); } .c-input:focus-visible, .c-select:focus-visible { outline: none; box-shadow: inset 0px 0px 1rem var(--col-frost), 0px 0px var(--sh-focus) var(--col-focus); } input.c-input[type="color"] { padding: 0.1rem; min-height: calc(1rem + 2 * 0.5rem); } textarea.c-input { resize: none; } textarea.c-input.resize { resize: vertical; } .c-input-group { display: flex; align-items: stretch; > * { margin: auto; } > .c-input { border: none; } > .c-dropdown > * > .c-input { border: none; background: none; } } /* .c-input-group:has(:focus) { */ .c-input-group:focus-within { box-shadow: inset 0px 0px 1rem var(--col-frost), 0px 0px var(--sh-focus) var(--col-focus); } .c-input-group > .c-input:focus-visible, .c-input-group > .c-select:focus-visible { box-shadow: none; } .c-input-group > *, .c-input-group > .c-dropdown > * > input { border-width: var(--border-w-sm); /* background: transparent; */ /* padding-top: 0; padding-bottom: 0; */ box-shadow: none; /* align-items: center; display: flex; */ } .c-input-group > *:not(:last-child) { border-top-right-radius: 0; border-bottom-right-radius: 0; } .c-input-group > *:not(:first-child) { border-top-left-radius: 0; border-bottom-left-radius: 0; } /**********/ /* Toggle */ /**********/ /* .c-toggle + .c-toggle-ui { */ .c-toggle { appearance: none; height: 1.25rem; width: 2.25rem; /* padding: 0.125rem; */ border-radius: 1rem; background: var(--col-neutral-m1); color: var(--col-on); cursor: pointer; display: inline-block; position: relative; --col-bg: var(--col-secondary); --col-on: var(--col-on-secondary); --col-em: var(--col-em-secondary); &:checked { background: var(--col-bg); } &.primary { --col-bg: var(--col-primary); --col-on: var(--col-on-primary); --col-em: var(--col-em-primary); } &.secondary { --col-bg: var(--col-secondary); --col-on: var(--col-on-secondary); --col-em: var(--col-em-secondary); } &.accent { --col-bg: var(--col-accent); --col-on: var(--col-on-accent); --col-em: var(--col-em-accent); } &.error { --col-bg: var(--col-error); --col-on: var(--col-on-error); --col-em: var(--col-em-error); } &.warning { --col-bg: var(--col-warning); --col-on: var(--col-on-warning); --col-em: var(--col-em-warning); } &.success { --col-bg: var(--col-success); --col-on: var(--col-on-success); --col-em: var(--col-em-success); } } .c-toggle:after { border-radius: 1rem; content: ""; display: block; height: 1rem; width: 1rem; margin: 0.125rem; position: absolute; left: 0; background: var(--col-toggle-knob); transition: all .2s ease-out; } .c-toggle:checked:after { left: 1rem; } /*******************/ /* Settings Fields */ /*******************/ /* Settings field layout - label and input on same line with constrained widths */ .c-settings-field { display: flex; align-items: center; gap: 1rem; max-width: 600px; padding-bottom: 0.5rem; } .c-settings-field > span, .c-settings-field > label { flex: 1 1 auto; min-width: 0; } .c-settings-field .c-input, .c-settings-field .c-select { flex: 0 0 auto; width: auto; min-width: 150px; max-width: 200px; } .c-settings-field .c-toggle { flex: 0 0 auto; } /* Password fields can be a bit wider */ .c-settings-field .c-input[type="password"], .c-settings-field .c-input[type="text"] { max-width: 250px; } /* Settings section for grouping related fields */ .c-settings-section { margin-bottom: 1.5rem; } .c-settings-section-title { font-size: 0.875rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.05em; color: lch(from var(--col-on) l c h / 0.6); margin-bottom: 0.75rem; padding-bottom: 0.5rem; border-bottom: var(--border-w-sm) solid var(--col-outline); } /* Form hint text - muted styling for helper text */ .c-hint { font-size: 0.875rem; color: lch(from var(--col-on) l c h / 0.6); line-height: 1.4; } /* vim: ts=4 */