Skip to content

CSS: button

.instui-button — คอนโทรลแอ็กชันที่เข้าถึงได้ ออกแบบจากพาเลทโทเค็น; เป็นปุ่มหลักโดยค่าเริ่มต้น.

เลเยอร์ AI variants ประกอบด้วยกราเดียนต์สองชั้น — การเติมแบบ padding-box และเส้นขอบแบบ border-box — สำหรับกรอบของพวกมัน และ -color-ai-secondary ไม่สามารถทากราเดียนต์บนตัวอักษรพร้อมกับเติมได้พร้อมกัน ดังนั้นตรงกลางจะโปร่งใสในสถานะปกติและเติมเมื่อโฮเวอร์หรือแอคทีฟ -without-background ในสถานะโฮเวอร์และแอคทีฟจะได้เอฟเฟกต์แบรนด์ที่มีความทึบต่ำและมืดขึ้นเล็กน้อยแทนการใช้โทเค็นพื้นหลังโฮเวอร์ดิบ ซึ่งจะทำให้ข้อความมีสีเดียวกับพื้น นอกจากนี้ยังตั้งค่า gap ไอคอน/ป้ายของตัวเองและ padding แนวนอน; การเชนตัวแก้ไขระยะห่าง -gap-*/-p-*/-padding-* จะเขียนทับค่าพื้นฐานเหล่านั้น ตัวห่อบรรจุทางเลือก .instui-button-group แมป .buttonGroup ของ Figma และรับผิดชอบระยะห่างปุ่มข้างเคียง.

Source: button.css

การเข้าถึง

ควบคุมสถานะกดของไวแรนท์ -toggle ด้วย aria-pressed และระบุปุ่มที่ปิดการใช้งานด้วย aria-disabled (หรือใช้ disabled แบบเนทีฟ).

การใช้งาน

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

สาธิต

ตัวอย่าง

html
<div class="instui-button-group">
  <button class="instui-button">Primary</button>
  <button class="instui-button -color-secondary">Secondary</button>
</div>

โครงสร้าง

ตัวห่อกลุ่มจัดวางปุ่มข้างเคียงโดยมีช่องว่างปุ่มร่วมกัน.

text
.instui-button-group (0..1)
  .instui-button (1..n)
flowchart TD n0[".instui-button-group (0..1)"]:::cssdoc-root n1(".instui-button"):::cssdoc-part n0 -->|1..n| n1 classDef cssdoc-root stroke-width:1px; classDef cssdoc-part stroke-width:1px; classDef cssdoc-slot stroke-width:1px; classDef cssdoc-component stroke-width:1px;

ตัวปรับแต่ง

ตัวปรับแต่งคำอธิบาย
.-color-aiแอ็กชัน AI.
.-color-ai-secondaryแอ็กชัน AI ที่เน้นระดับต่ำกว่า.
.-color-dangerแอ็กชันที่เป็นการทำลาย (destructive).
.-color-primary(ค่าเริ่มต้น) แอ็กชันหลัก.
.-color-primary-inverseเลิกใช้ — use .-on-color.
.-color-secondaryแอ็กชันทุติยภูมิเชิงเน้นต่ำกว่า.
.-color-successแอ็กชันยืนยัน/เชิงบวก.
.-color-tertiaryแอ็กชันสไตล์ข้อความ (ไม่มีการเติมหรือขอบจนกว่าโฮเวอร์).
.-condensedแผ่นรองที่แน่นขึ้นสำหรับทูลบาร์ความหนาแน่นสูง.
.-display-blockปุ่มบล็อกความกว้างเต็ม.
.-ghostเลิกใช้ — use .-color-tertiary.
.-icon-*เรนเดอร์กลิฟจากชุดไอคอนก่อนป้าย (เช่น -icon-arrow-right), ทาสีด้วยสีข้อความของปุ่ม; จับคู่กับ -shape-square/-shape-circle สำหรับปุ่มที่มีเฉพาะไอคอน.
.-on-colorสำหรับปุ่มที่วางบนพื้นผิวมีสี (ไม่เป็นกลาง) ประกอบกับ -color-primary (ค่าเริ่มต้น) จะเติมสีขาวพร้อมข้อความสีเข้ม; ประกอบกับ -color-secondary จะคงโปร่งใสพร้อมเส้นขอบและข้อความสีขาว.
.-shape-circleปุ่มไอคอนทรงกลม.
.-shape-squareปุ่มไอคอนทรงสี่เหลี่ยม.
.-size-largeใหญ่. ชื่อยาวของ -size-lg.
.-size-lgใหญ่.
.-size-md(ค่าเริ่มต้น) ขนาดกลาง.
.-size-medium(ค่าเริ่มต้น) ขนาดกลาง. ชื่อยาวเป็นนามแฝงของ -size-md.
.-size-smเล็ก.
.-size-smallเล็ก. ชื่อยาวของ -size-sm.
.-toggleปุ่มสลับในสถานะกด (ควบคุมด้วย aria-pressed).
.-without-backgroundยกเลิกการเติม (ghost).
.-without-borderลบเส้นขอบ.

องค์ประกอบเทียม

องค์ประกอบเทียมคำอธิบาย
::afterวงแหวนขอบกราเดียนต์ AI-secondary ซึ่งถูกมาสก์ให้แสดงเฉพาะกรอบปุ่ม.
::beforeกลิฟ AI ถูกเพิ่มโดยอัตโนมัติให้กับปุ่ม AI และมาสก์ด้วยสีของไวแรนท์นั้นเอง.

สถานะ

สถานะคำอธิบาย
[aria-disabled="true"]
[aria-pressed="true"]
:disabled
:state(pressed)

โทเค็นที่ใช้

Tokenชนิดค่า
--instui-border-width-md<length>0.125rem
--instui-border-width-sm<length>0.0625rem
--instui-color-background-interactive-action-ai-bottom-gradient-active<color>#01626E
--instui-color-background-interactive-action-ai-bottom-gradient-base<color>#027887
--instui-color-background-interactive-action-ai-bottom-gradient-hover<color>#00828E
--instui-color-background-interactive-action-ai-secondary-active-bottom-gradient<color>LightDarklight-dark(#CFF0F6, #00424A)
--instui-color-background-interactive-action-ai-secondary-active-top-gradient<color>LightDarklight-dark(#F3E5F7, #522965)
--instui-color-background-interactive-action-ai-secondary-hover-bottom-gradient<color>LightDarklight-dark(#CFF0F6, #00424A)
--instui-color-background-interactive-action-ai-secondary-hover-top-gradient<color>LightDarklight-dark(#F3E5F7, #522965)
--instui-color-background-interactive-action-ai-top-gradient-active<color>#793F93
--instui-color-background-interactive-action-ai-top-gradient-base<color>#944FB3
--instui-color-background-interactive-action-ai-top-gradient-hover<color>#9E58BD
--instui-color-background-interactive-action-destructive-active<color>#AE161B
--instui-color-background-interactive-action-destructive-base<color>#CF1F24
--instui-color-background-interactive-action-destructive-hover<color>#E62429
--instui-color-background-interactive-action-primary-active<color>LightDarklight-dark(#061C30, #D5E2F6)
--instui-color-background-interactive-action-primary-base<color>LightDarklight-dark(#1D354F, #EEF4FD)
--instui-color-background-interactive-action-primary-hover<color>LightDarklight-dark(#234465, #ffffff)
--instui-color-background-interactive-action-secondary-active<color>LightDarklight-dark(#44709F, #2E5177)
--instui-color-background-interactive-action-success-base<color>#037D37
--instui-color-background-interactive-action-success-hover<color>#03893D
--instui-color-background-muted<color>LightDarklight-dark(#F2F4F5, #273540)
--instui-color-stroke-interactive-action-ai-bottom-gradient-active<color>LightDarklight-dark(#01626E, #02717E)
--instui-color-stroke-interactive-action-ai-bottom-gradient-base<color>#027887
--instui-color-stroke-interactive-action-ai-bottom-gradient-hover<color>#00828E
--instui-color-stroke-interactive-action-ai-top-gradient-active<color>LightDarklight-dark(#793F93, #8A49A7)
--instui-color-stroke-interactive-action-ai-top-gradient-base<color>#944FB3
--instui-color-stroke-interactive-action-ai-top-gradient-hover<color>#9E58BD
--instui-color-stroke-interactive-action-primary-active<color>LightDarklight-dark(#061C30, #D5E2F6)
--instui-color-stroke-interactive-action-primary-base<color>LightDarklight-dark(#1D354F, #EEF4FD)
--instui-color-stroke-interactive-action-primary-hover<color>LightDarklight-dark(#234465, #ffffff)
--instui-color-stroke-interactive-action-secondary-active<color>LightDarklight-dark(#44709F, #2E5177)
--instui-color-text-interactive-action-ai-active<color>#ffffff
--instui-color-text-interactive-action-ai-base<color>#ffffff
--instui-color-text-interactive-action-ai-hover<color>#ffffff
--instui-color-text-interactive-action-ai-secondary-bottom-gradient-base<color>LightDarklight-dark(#027887, #3CC0D4)
--instui-color-text-interactive-action-ai-secondary-top-gradient-base<color>LightDarklight-dark(#944FB3, #CAA1D9)
--instui-color-text-interactive-action-primary-base<color>LightDarklight-dark(#ffffff, #1D354F)
--instui-color-text-interactive-action-secondary-base<color>LightDarklight-dark(#1D354F, #ffffff)
--instui-color-text-interactive-action-status-base<color>#ffffff
--instui-component-base-button-ai-disabled-background-color<color>LightDarklight-dark(#DFE1E3, #334450)
--instui-component-base-button-ai-disabled-border-color<color>LightDarklight-dark(#DFE1E3, #334450)
--instui-component-base-button-ai-disabled-text-color<color>LightDarklight-dark(#9EA6AD, #6A7883)
--instui-component-base-button-border-radius<length>0.75rem
--instui-component-base-button-large-font-size<length>1.125rem
--instui-component-base-button-large-height<length>3rem
--instui-component-base-button-large-padding-horizontal<length>1.25rem
--instui-component-base-button-medium-font-size<length>1rem
--instui-component-base-button-medium-height<length>2.5rem
--instui-component-base-button-medium-padding-horizontal<length>1rem
--instui-component-base-button-primary-color<color>LightDarklight-dark(#ffffff, #1D354F)
--instui-component-base-button-primary-disabled-background-color<color>LightDarklight-dark(#DFE1E3, #334450)
--instui-component-base-button-primary-disabled-border-color<color>LightDarklight-dark(#DFE1E3, #334450)
--instui-component-base-button-primary-ghost-active-background<color>LightDarklight-dark(#1D354F33, rgba(255,255,255,0.1))
--instui-component-base-button-primary-ghost-background<color>transparent
--instui-component-base-button-primary-ghost-border-color<color>LightDarklight-dark(#1D354F66, #EEF4FD)
--instui-component-base-button-primary-ghost-color<color>LightDarklight-dark(#1D354F, #EEF4FD)
--instui-component-base-button-primary-ghost-hover-background<color>LightDarklight-dark(#1D354F1A, rgba(255,255,255,0.1))
--instui-component-base-button-primary-inverse-active-background<color>#B6CCEA
--instui-component-base-button-primary-inverse-background<color>#ffffff
--instui-component-base-button-primary-inverse-border-color<color>#ffffff
--instui-component-base-button-primary-inverse-color<color>#213D5B
--instui-component-base-button-primary-inverse-ghost-active-background<color>rgba(255,255,255,0.1)
--instui-component-base-button-primary-inverse-ghost-border-color<color>#ffffff
--instui-component-base-button-primary-inverse-ghost-color<color>#ffffff
--instui-component-base-button-primary-inverse-ghost-hover-background<color>rgba(255,255,255,0.1)
--instui-component-base-button-primary-inverse-hover-background<color>#D5E2F6
--instui-component-base-button-primary-on-color-active-border-color<color>#B6CCEA
--instui-component-base-button-primary-on-color-active-text-color<color>#213D5B
--instui-component-base-button-primary-on-color-disabled-background-color<color>#8D959F
--instui-component-base-button-primary-on-color-disabled-border-color<color>#8D959F
--instui-component-base-button-primary-on-color-disabled-text-color<color>#4A5B68
--instui-component-base-button-primary-on-color-hover-border-color<color>#D5E2F6
--instui-component-base-button-primary-on-color-hover-text-color<color>#213D5B
--instui-component-base-button-secondary-active-background<color>LightDarklight-dark(#3D658F33, #86A8D5)
--instui-component-base-button-secondary-active-border-color<color>LightDarklight-dark(#44709F00, #86A8D5)
--instui-component-base-button-secondary-active-text-color<color>LightDarklight-dark(#1D354F, #ffffff)
--instui-component-base-button-secondary-background<color>LightDarklight-dark(#44709F33, #86A8D5)
--instui-component-base-button-secondary-border-color<color>LightDarklight-dark(#44709F00, #86A8D5)
--instui-component-base-button-secondary-color<color>LightDarklight-dark(#1D354F, #ffffff)
--instui-component-base-button-secondary-disabled-background-color<color>LightDarklight-dark(#DFE1E3, #334450)
--instui-component-base-button-secondary-disabled-border-color<color>LightDarklight-dark(#DFE1E3, #334450)
--instui-component-base-button-secondary-disabled-text-color<color>LightDarklight-dark(#9EA6AD, #6A7883)
--instui-component-base-button-secondary-hover-background<color>LightDarklight-dark(#4D7EB333, #86A8D5)
--instui-component-base-button-secondary-hover-border-color<color>LightDarklight-dark(#44709F00, #86A8D5)
--instui-component-base-button-secondary-hover-text-color<color>LightDarklight-dark(#1D354F, #ffffff)
--instui-component-base-button-secondary-on-color-active-border-color<color>#B6CCEA
--instui-component-base-button-secondary-on-color-active-text-color<color>#ffffff
--instui-component-base-button-secondary-on-color-disabled-border-color<color>#8D959F
--instui-component-base-button-secondary-on-color-disabled-text-color<color>#9EA6AD
--instui-component-base-button-secondary-on-color-hover-text-color<color>#ffffff
--instui-component-base-button-small-font-size<length>0.875rem
--instui-component-base-button-small-height<length>2rem
--instui-component-base-button-small-padding-horizontal<length>0.75rem
--instui-component-base-button-tertiary-active-border-color<color>LightDarklight-dark(#1D354F4D, #EEF4FD)
--instui-component-base-button-tertiary-active-text-color<color>LightDarklight-dark(#1D354F, #EEF4FD)
--instui-component-base-button-tertiary-disabled-border-color<color>LightDarklight-dark(#C7CACD, #4A5B68)
--instui-component-base-button-tertiary-disabled-text-color<color>LightDarklight-dark(#AAB0B5, #4A5B68)
--instui-component-base-button-tertiary-hover-border-color<color>LightDarklight-dark(#1D354F33, #EEF4FD)
--instui-component-base-button-tertiary-hover-text-color<color>LightDarklight-dark(#1D354F, #EEF4FD)
--instui-component-icon-action-ai-disabled-color<color>LightDarklight-dark(#9EA6AD, #6A7883)
--instui-component-shared-tokens-spacing-gap-buttons<length>0.75rem
--instui-font-family-base[ <font-family-name> | <generic-font-family> ]#Atkinson Hyperlegible Next, "Helvetica Neue", Helvetica, Arial, sans-serif
--instui-font-weight-interactive<integer>500
--instui-line-height-standalone-text-base<length>1rem
--instui-spacing-space-xs<length>0.25rem

ที่เกี่ยวข้อง

  • close-button — ปุ่มปิดที่เป็นไอคอนเท่านั้น.