Skip to content

CSS: checkbox

.instui-checkbox — 原生的核取方塊及其標籤,或透過 -variant-toggle 呈現為開關。

在 JavaScript 中設置 el.indeterminate = true 可顯示不確定狀態的短橫;已勾選的勾號會根據填充自動調整對比—深色填充為白色,淺色填充為近黑色。它也會在控制項與其標籤之間設定預設的 gap;鏈接一個 -gap-* 間距實用程式修飾子可覆蓋該內建值。

Source: checkbox.css

無障礙

原生的 <input type="checkbox"> 會驅動 :checked:indeterminate:disabled;於 JavaScript 中設置 el.indeterminate = true 以表示混合狀態,並注意 -readonly 只是樣式處理,因為核取方塊沒有原生的唯讀屬性。

使用方法

css
@import "@pantoken/components/components.css";
@import "@pantoken/components/checkbox.css";

範例

html
<label class="instui-checkbox --display-block --mb-sm">
  <input type="checkbox" checked>Checkbox
</label>
<label class="instui-checkbox -variant-toggle">
  <input type="checkbox">Toggle
</label>

修飾器

修飾器說明
.-invalid無效(錯誤)狀態。
.-label-placement-end將標籤放在控制項之後。
.-label-placement-start將標籤放在控制項之前。
.-label-placement-top將標籤放在控制項上方。
.-readonly唯讀狀態。
.-required在標籤旁顯示必填欄位的星號。
.-size-large大型。-size-lg 的長形式別名。
.-size-lg大。
.-size-sm小。
.-size-small小。-size-sm 的長形式別名。
.-variant-toggle以開關樣式渲染,而非方框。

部件

部件說明
.asterisk必填欄位的星號。

偽元素

偽元素說明
::after-variant-toggle 上,位於滑柄上的狀態符號:關閉時為 X,開啟時為勾號。
::before置中於方框內的遮罩勾號或短橫符號;在 -variant-toggle 上,它則變為滑動的滑柄。

狀態

狀態說明
:checked
:disabled
:indeterminate

自訂屬性

屬性型別預設說明
--pantoken-cb-glyph<url>方框的遮罩符號:勾選時為勾號,不確定時為短橫。
--pantoken-toggle-bw<length>切換邊框的寬度。
--pantoken-toggle-h<length>切換開關的高度。
--pantoken-toggle-handle<length>計算得出的滑柄直徑。
--pantoken-toggle-inset<length>滑柄與每側軌道邊緣的內縮距離。
--pantoken-toggle-w<length>切換軌道的寬度。

已使用的代幣

Token型別
--instui-border-width-sm<length>0.0625rem
--instui-color-background-muted<color>LightDarklight-dark(#F2F4F5, #273540)
--instui-color-stroke-base<color>LightDarklight-dark(#8D959F, #6A7883)
--instui-color-text-muted<color>LightDarklight-dark(#576773, #AAB0B5)
--instui-component-checkbox-asterisk-color<color>LightDarklight-dark(#CF1F24, #FA917F)
--instui-component-checkbox-background-checked-color<color>LightDarklight-dark(#273540, #ffffff)
--instui-component-checkbox-background-color<color>LightDarklight-dark(#ffffff, #171B21)
--instui-component-checkbox-background-disabled-color<color>LightDarklight-dark(#E8EAEC, #334450)
--instui-component-checkbox-background-hover-color<color>LightDarklight-dark(#ffffff, #171B21)
--instui-component-checkbox-background-readonly-color<color>LightDarklight-dark(#C7CACD, #6A7883)
--instui-component-checkbox-border-checked-color<color>LightDarklight-dark(#273540, #ffffff)
--instui-component-checkbox-border-color<color>LightDarklight-dark(#7E8792, #5F6E7A)
--instui-component-checkbox-border-disabled-color<color>LightDarklight-dark(#C7CACD, #4A5B68)
--instui-component-checkbox-border-hover-color<color>LightDarklight-dark(#334450, #7E8792)
--instui-component-checkbox-border-radius<length>0.25rem
--instui-component-checkbox-border-readonly-color<color>#8D959F
--instui-component-checkbox-border-width<length>0.0625rem
--instui-component-checkbox-control-size-lg<length>1.5rem
--instui-component-checkbox-control-size-md<length>1.5rem
--instui-component-checkbox-control-size-sm<length>1.5rem
--instui-component-checkbox-control-vertical-margin<length>0rem
--instui-component-checkbox-error-border-color<color>LightDarklight-dark(#CF1F24, #F56050)
--instui-component-checkbox-error-border-hover-color<color>LightDarklight-dark(#CF1F24, #FE7D6A)
--instui-component-checkbox-font-family[ <font-family-name> | <generic-font-family> ]#Atkinson Hyperlegible Next, "Helvetica Neue", Helvetica, Arial, sans-serif
--instui-component-checkbox-font-size-lg<length>1.25rem
--instui-component-checkbox-font-size-md<length>1rem
--instui-component-checkbox-font-size-sm<length>0.875rem
--instui-component-checkbox-font-weight<integer>400
--instui-component-checkbox-gap<length>0.5rem
--instui-component-checkbox-label-base-color<color>LightDarklight-dark(#273540, #ffffff)
--instui-component-checkbox-label-disabled-color<color>LightDarklight-dark(#8D959F, #576773)
--instui-component-checkbox-label-hover-color<color>LightDarklight-dark(#273540, #ffffff)
--instui-component-checkbox-label-readonly-color<color>LightDarklight-dark(#273540, #ffffff)
--instui-component-checkbox-line-height<percentage>125%
--instui-component-radio-input-toggle-background-success<color>#03893D
--instui-component-radio-input-toggle-handle-text<color>#ffffff
--instui-component-radio-input-toggle-medium-height<length>2.5rem
--instui-icon-check<image>url('data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22currentColor%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M20%206%209%2017l-5-5%22%2F%3E%3C%2Fsvg%3E')
--instui-icon-minus<image>url('data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22currentColor%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M5%2012h14%22%2F%3E%3C%2Fsvg%3E')
--instui-icon-x<image>url('data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22currentColor%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M18%206%206%2018%22%2F%3E%3Cpath%20d%3D%22m6%206%2012%2012%22%2F%3E%3C%2Fsvg%3E')
--instui-size-choice-control-height-md<length>1.5rem

相關

  • radio — 單選的對應元件。