Loading files
This file is pinned to the selected release. Download the original to open it in your design tool.
body {
overflow: hidden;
}
.face-editor-shell {
display: grid;
grid-template-rows: var(--header-height) minmax(0, 1fr);
height: 100dvh;
overflow: hidden;
}
.face-header-actions {
display: flex;
align-items: center;
gap: 6px;
margin-left: auto;
}
.face-header-actions button {
min-height: 36px;
padding: 7px 10px;
font-size: 0.78rem;
}
.face-header-actions .icon-button {
width: 36px;
min-width: 36px;
padding: 0;
}
.face-editor-layout {
display: grid;
grid-template-columns: minmax(460px, 1fr) minmax(330px, 420px);
min-height: 0;
overflow: hidden;
}
.face-preview-pane {
display: grid;
grid-template-rows: auto minmax(280px, 1fr) auto auto;
min-width: 0;
min-height: 0;
gap: 14px;
padding: 22px;
overflow: auto;
background:
linear-gradient(rgb(255 255 255 / 2%) 1px, transparent 1px),
linear-gradient(90deg, rgb(255 255 255 / 2%) 1px, transparent 1px), #101316;
background-size: 24px 24px;
}
.preview-heading {
display: flex;
align-items: end;
justify-content: space-between;
gap: 16px;
}
.preview-heading h1 {
margin: 0;
font-size: 1.15rem;
}
.preview-heading > p,
.eyebrow {
margin: 0;
color: var(--muted);
font-size: 0.74rem;
}
.eyebrow {
margin-bottom: 3px;
letter-spacing: 0.08em;
text-transform: uppercase;
}
.face-screen {
display: grid;
min-height: 0;
place-items: center;
}
.face-canvas {
width: min(100%, calc((100dvh - 230px) * 4 / 3), 720px);
max-height: calc(100dvh - 230px);
aspect-ratio: 4 / 3;
border: 10px solid #3b4146;
border-radius: 14px;
background: #111;
box-shadow:
0 24px 60px rgb(0 0 0 / 42%),
inset 0 0 0 1px rgb(255 255 255 / 8%);
touch-action: none;
user-select: none;
}
.screen-background {
fill: #090b0d;
}
.face-frame-background {
fill: var(--face-secondary, #202020);
}
.face-frame-outline {
fill: none;
stroke: rgb(255 255 255 / 24%);
stroke-dasharray: 4 4;
stroke-width: 1;
}
.shape-part {
cursor: grab;
outline: none;
}
.shape-part:active {
cursor: grabbing;
}
.shape-part:focus-visible > :first-child {
filter: drop-shadow(0 0 4px var(--accent));
stroke: var(--accent);
stroke-width: 2px;
}
.eye-iris,
.mouth {
fill: var(--face-primary, #fff);
}
.eye-lid {
fill: var(--face-secondary, #202020);
pointer-events: none;
}
.face-status {
min-height: 20px;
margin: 0;
color: var(--muted);
font-size: 0.78rem;
}
.face-status[data-state='error'] {
color: var(--danger);
}
.face-status[data-state='success'] {
color: var(--success);
}
.generated-face-code {
border: 1px solid var(--line);
border-radius: 7px;
background: #111416;
}
.generated-face-code summary {
padding: 9px 12px;
color: var(--muted);
cursor: pointer;
font-size: 0.76rem;
font-weight: 700;
}
.generated-face-code pre {
max-height: 220px;
margin: 0;
padding: 12px;
overflow: auto;
border-top: 1px solid var(--line);
color: #cbd2d8;
font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
font-size: 0.68rem;
line-height: 1.45;
white-space: pre-wrap;
}
.face-controls {
display: grid;
align-content: start;
gap: 12px;
min-height: 0;
padding: 18px;
overflow: auto;
border-left: 1px solid var(--line);
background: var(--surface);
}
.face-controls fieldset,
.face-controls details {
display: grid;
gap: 11px;
margin: 0;
padding: 13px;
border: 1px solid var(--line);
border-radius: 7px;
background: #15181b;
}
.face-controls legend,
.face-controls details > summary {
color: var(--text);
font-size: 0.8rem;
font-weight: 750;
}
.face-controls details > summary {
cursor: pointer;
}
.face-controls details[open] > summary {
margin-bottom: 2px;
}
.control-hint {
margin: 0;
color: var(--muted);
font-size: 0.69rem;
line-height: 1.45;
}
.face-controls label {
display: grid;
gap: 5px;
min-width: 0;
color: var(--muted);
font-size: 0.72rem;
}
.face-controls input,
.face-controls select {
min-height: 36px;
padding: 6px 8px;
background: var(--surface-raised);
}
.face-controls input[readonly] {
border-color: var(--line);
background: #1b1f22;
color: var(--muted);
cursor: default;
}
.face-controls input:disabled,
.face-controls select:disabled,
.shape-control-group[data-disabled='true'] {
opacity: 0.55;
}
.face-controls .toggle-control {
display: flex;
align-items: center;
gap: 7px;
}
.face-controls .toggle-control input {
width: 16px;
height: 16px;
min-height: 16px;
margin: 0;
padding: 0;
}
.control-grid,
.number-grid {
display: grid;
gap: 8px;
}
.control-grid {
grid-template-columns: 1fr 1fr;
}
.number-grid {
grid-template-columns: repeat(3, minmax(0, 1fr));
}
.range-control {
display: grid;
grid-template-columns: minmax(0, 1fr) 46px;
align-items: center;
gap: 8px;
}
.range-control input {
padding: 0;
}
.range-control output {
color: var(--text);
font-variant-numeric: tabular-nums;
text-align: right;
}
@media (max-width: 900px) {
body {
overflow: auto;
}
.face-editor-shell {
height: auto;
min-height: 100dvh;
overflow: visible;
}
.face-editor-layout {
grid-template-columns: 1fr;
overflow: visible;
}
.face-preview-pane {
min-height: 590px;
}
.face-canvas {
width: min(100%, 640px);
max-height: none;
}
.face-controls {
overflow: visible;
border-top: 1px solid var(--line);
border-left: 0;
}
}
@media (max-width: 620px) {
.face-header-actions button:not(.icon-button) span {
display: none;
}
.brand-link > span {
display: none;
}
.face-preview-pane {
min-height: 500px;
padding: 16px;
}
.preview-heading {
align-items: start;
flex-direction: column;
gap: 5px;
}
.number-grid {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
}
a917e7c83This file is pinned to the selected release. Download the original to open it in your design tool.