/
githubmirror
/
tldraw
Обзор
Документация
Войти
/
githubmirror
/
tldraw
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
apps/dotcom/client/src/tla/components/TlaButton/button.module.css
151 строка
3 KB
Steve Ruiz
refactor(dotcom): reuse SDK CSS tokens (#9326)
19 июн 2026, 13:20
Не верифицирован
19 июн 2026, 13:20
06a6600
Код
Авторство
О чём код?
.tlaButton { position: relative; height: 32px; border: 1px solid transparent; padding: 0px 12px; background: none; outline: none; color: var(--tl-color-text-0); border-radius: var(--tl-radius-1); cursor: pointer; display: flex; flex-direction: row; align-items: center; justify-content: center; cursor: pointer; gap: 8px; /* text medium */ font-size: 12px; line-height: 1.3; font-weight: 500; font-family: var(--tla-font-ui); text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; } .tlaButton:disabled { cursor: not-allowed; opacity: 0.5; } .tlaButton > .spinner { position: absolute; top: calc(50% - 20px); left: calc(50% - 20px); height: 40px; width: 40px; z-index: 2; display: flex; align-items: center; justify-content: center; animation: tla-spin 1.5s linear infinite; } .spinner { color: var(--tl-color-text-3); animation: tla-spin 1.5s linear infinite; } .big { height: 36px; border-radius: var(--tl-radius-2); } @keyframes tla-spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } .cta { background-color: var(--tl-color-primary); color: var(--tl-color-selected-contrast); font-weight: 600; } .primary { background-color: var(--tl-color-primary); color: var(--tl-color-selected-contrast); } .primary[data-state='loading'] { color: var(--tl-color-primary); } .primary[data-state='loading'] > .spinner { color: var(--tl-color-selected-contrast); } .secondary { background-color: var(--tla-color-secondary); border: 1px solid var(--tla-color-secondary-border); color: var(--tl-color-text-0); } .iconRight { position: absolute; right: 8px; } .spinner { animation: tla-spin 1.2s linear infinite; } @keyframes tla-spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } /* Ghost */ .ghost { position: relative; } .primary.ghost { color: var(--tl-color-primary); background-color: transparent; } .secondary.ghost { color: var(--tla-color-secondary); background-color: transparent; border: none; } @media (hover: hover) { .primary:not(:disabled):hover { background-color: var(--tla-color-primary-hover); } .secondary:not(:disabled):hover { background-color: var(--tla-color-secondary-hover); } .cta:not(:disabled):hover { background-color: var(--tla-color-primary-hover); } .ghost:hover::after { display: block; content: ''; position: absolute; inset: 0px 4px; border-radius: 6px; background-color: var(--tl-color-muted-2); } } .tlaButton:focus-visible { outline: 2px solid var(--tl-color-focus); outline-offset: 2px; border-radius: var(--tl-radius-1); }