UNPKG

@ozen-ui/kit

Version:

React component library

370 lines (317 loc) 16 kB
.IconButtonNext { --icon-button-bg-color: var(--color-background-action); --icon-button-bg-color-hover: var(--color-background-action-hover); --icon-button-bg-color-active: var(--color-background-action-pressed); --icon-button-font-color: var(--color-content-action-on); block-size: var(--icon-button-size); inline-size: var(--icon-button-size); padding: 0; box-sizing: border-box; display: inline-flex; flex-shrink: 0; align-items: center; justify-content: center; cursor: pointer; border: none; color: var(--icon-button-font-color); background-color: var(--icon-button-bg-color); opacity: 1; border-radius: var(--icon-button-border-radius); transition: background-color var(--transition-default), box-shadow var(--transition-default), opacity var(--transition-default); -webkit-tap-highlight-color: transparent; position: relative; } .IconButtonNext_size_2xs { --icon-button-size: 32px; --icon-button-border-radius: var(--border-radius-m); } .IconButtonNext_size_2xs.IconButtonNext_compressed:not(.IconButtonNext_variant_function) { --icon-button-size: 24px; } .IconButtonNext_size_xs { --icon-button-size: 40px; --icon-button-border-radius: var(--border-radius-m); } .IconButtonNext_size_xs.IconButtonNext_compressed:not(.IconButtonNext_variant_function) { --icon-button-size: 28px; } .IconButtonNext_size_s { --icon-button-size: 48px; --icon-button-border-radius: var(--border-radius-l); } .IconButtonNext_size_s.IconButtonNext_compressed:not(.IconButtonNext_variant_function) { --icon-button-size: 32px; } .IconButtonNext_size_m { --icon-button-size: 56px; --icon-button-border-radius: var(--border-radius-l); } .IconButtonNext_size_m.IconButtonNext_compressed:not(.IconButtonNext_variant_function) { --icon-button-size: 40px; } .IconButtonNext_size_l { --icon-button-size: 64px; --icon-button-border-radius: var(--border-radius-m); } .IconButtonNext_size_l.IconButtonNext_compressed:not(.IconButtonNext_variant_function) { --icon-button-size: 48px; } /** contained */ .IconButtonNext_variant_contained.IconButtonNext_color_primary { --icon-button-bg-color: var(--color-background-action); --icon-button-bg-color-hover: var(--color-background-action-hover); --icon-button-bg-color-active: var(--color-background-action-pressed); --icon-button-bg-color-focus: var(--color-background-action-hover); --icon-button-font-color: var(--color-content-action-on); --icon-button-font-color-hover: var(--color-content-action-on); --icon-button-font-color-active: var(--color-content-action-on); --icon-button-font-color-focus: var(--color-content-action-on); } .IconButtonNext_variant_contained.IconButtonNext_color_secondary { --icon-button-bg-color: var(--color-content-action-secondary); --icon-button-bg-color-hover: var(--color-content-action-secondary-hover); --icon-button-bg-color-active: var( --color-content-action-secondary-pressed ); --icon-button-bg-color-focus: var(--color-content-action-secondary-hover); --icon-button-font-color: var(--color-content-action-on); --icon-button-font-color-hover: var(--color-content-action-on); --icon-button-font-color-active: var(--color-content-action-on); --icon-button-font-color-focus: var(--color-content-action-on); } .IconButtonNext_variant_contained.IconButtonNext_color_tertiary { --icon-button-bg-color: var(--color-background-tertiary); --icon-button-bg-color-hover: var(--color-background-tertiary-hover); --icon-button-bg-color-active: var(--color-background-tertiary-pressed); --icon-button-bg-color-focus: var(--color-background-tertiary-hover); --icon-button-font-color: var(--color-content-primary); --icon-button-font-color-hover: var(--color-content-primary); --icon-button-font-color-active: var(--color-content-primary); --icon-button-font-color-focus: var(--color-content-primary); } .IconButtonNext_variant_contained.IconButtonNext_color_error { --icon-button-bg-color: var(--color-background-error); --icon-button-bg-color-hover: var(--color-background-error-hover); --icon-button-bg-color-active: var(--color-background-error-pressed); --icon-button-bg-color-focus: var(--color-background-error-hover); --icon-button-font-color: var(--color-content-action-on); --icon-button-font-color-hover: var(--color-content-action-on); --icon-button-font-color-active: var(--color-content-action-on); --icon-button-font-color-focus: var(--color-content-action-on); } /** contained-additional */ .IconButtonNext_variant_contained-additional.IconButtonNext_color_primary { --icon-button-bg-color: var(--color-background-action-light); --icon-button-bg-color-hover: var(--color-background-action-light-hover); --icon-button-bg-color-active: var(--color-background-action-light-pressed); --icon-button-bg-color-focus: var(--color-background-action-light-hover); --icon-button-font-color: var(--color-content-action); --icon-button-font-color-hover: var(--color-content-action); --icon-button-font-color-active: var(--color-content-action); --icon-button-font-color-focus: var(--color-content-action); } .IconButtonNext_variant_contained-additional.IconButtonNext_color_secondary { --icon-button-bg-color: var(--color-background-secondary); --icon-button-bg-color-hover: var(--color-background-secondary-hover); --icon-button-bg-color-active: var(--color-background-secondary-pressed); --icon-button-bg-color-focus: var(--color-background-secondary-hover); --icon-button-font-color: var(--color-content-primary); --icon-button-font-color-hover: var(--color-content-primary); --icon-button-font-color-active: var(--color-content-primary); --icon-button-font-color-focus: var(--color-content-primary); } .IconButtonNext_variant_contained-additional.IconButtonNext_color_tertiary { --icon-button-bg-color: var(--color-background-primary); --icon-button-bg-color-hover: var(--color-background-primary-hover); --icon-button-bg-color-active: var(--color-background-primary-pressed); --icon-button-bg-color-focus: var(--color-background-primary-hover); --icon-button-font-color: var(--color-content-secondary); --icon-button-font-color-hover: var(--color-content-secondary); --icon-button-font-color-active: var(--color-content-secondary); --icon-button-font-color-focus: var(--color-content-secondary); } .IconButtonNext_variant_contained-additional.IconButtonNext_color_error { --icon-button-bg-color: var(--color-background-error-light); --icon-button-bg-color-hover: var(--color-background-error-light-hover); --icon-button-bg-color-active: var(--color-background-error-light-pressed); --icon-button-bg-color-focus: var(--color-background-error-light-hover); --icon-button-font-color: var(--color-content-error); --icon-button-font-color-hover: var(--color-content-error); --icon-button-font-color-active: var(--color-content-error); --icon-button-font-color-focus: var(--color-content-error); } /** ghost */ .IconButtonNext_variant_ghost.IconButtonNext_color_primary { --icon-button-bg-color: transparent; --icon-button-bg-color-hover: var(--color-background-action-light-hover); --icon-button-bg-color-active: var(--color-background-action-light-pressed); --icon-button-bg-color-focus: var(--color-background-action-light-hover); --icon-button-font-color: var(--color-content-action); --icon-button-font-color-hover: var(--color-content-action); --icon-button-font-color-active: var(--color-content-action); --icon-button-font-color-focus: var(--color-content-action); } .IconButtonNext_variant_ghost.IconButtonNext_color_secondary { --icon-button-bg-color: transparent; --icon-button-bg-color-hover: var(--color-background-secondary-hover); --icon-button-bg-color-active: var(--color-background-secondary-pressed); --icon-button-bg-color-focus: var(--color-background-secondary-hover); --icon-button-font-color: var(--color-content-primary); --icon-button-font-color-hover: var(--color-content-primary); --icon-button-font-color-active: var(--color-content-primary); --icon-button-font-color-focus: var(--color-content-primary); } .IconButtonNext_variant_ghost.IconButtonNext_color_tertiary { --icon-button-bg-color: transparent; --icon-button-bg-color-hover: var(--color-background-primary-hover); --icon-button-bg-color-active: var(--color-background-primary-pressed); --icon-button-bg-color-focus: var(--color-background-primary-hover); --icon-button-font-color: var(--color-content-secondary); --icon-button-font-color-hover: var(--color-content-secondary); --icon-button-font-color-active: var(--color-content-secondary); --icon-button-font-color-focus: var(--color-content-secondary); } .IconButtonNext_variant_ghost.IconButtonNext_color_error { --icon-button-bg-color: transparent; --icon-button-bg-color-hover: var(--color-background-error-light-hover); --icon-button-bg-color-active: var(--color-background-error-light-pressed); --icon-button-bg-color-focus: var(--color-background-error-light-hover); --icon-button-font-color: var(--color-content-error); --icon-button-font-color-hover: var(--color-content-error); --icon-button-font-color-active: var(--color-content-error); --icon-button-font-color-focus: var(--color-content-error); } /** function */ .IconButtonNext_variant_function { --icon-button-size: auto; --icon-button-border-radius: var(--border-radius-xs); } .IconButtonNext_variant_function.IconButtonNext_color_primary, .IconButtonNext_variant_function.IconButtonNext_color_secondary, .IconButtonNext_variant_function.IconButtonNext_color_tertiary, .IconButtonNext_variant_function.IconButtonNext_color_error { --icon-button-bg-color: transparent; --icon-button-bg-color-hover: transparent; --icon-button-bg-color-active: transparent; } .IconButtonNext_variant_function.IconButtonNext_color_primary { --icon-button-font-color: var(--color-content-action); --icon-button-font-color-hover: var(--color-background-action-hover); --icon-button-font-color-active: var(--color-background-action-pressed); --icon-button-font-color-focus: var(--color-background-action-pressed); } .IconButtonNext_variant_function.IconButtonNext_color_secondary { --icon-button-font-color: var(--color-content-action-secondary); --icon-button-font-color-hover: var(--color-content-action-secondary-hover); --icon-button-font-color-active: var( --color-content-action-secondary-pressed ); --icon-button-font-color-focus: var( --color-content-action-secondary-pressed ); } .IconButtonNext_variant_function.IconButtonNext_color_tertiary { --icon-button-font-color: var(--color-content-secondary); --icon-button-font-color-hover: var(--color-content-secondary); --icon-button-font-color-active: var(--color-content-secondary); --icon-button-font-color-focus: var(--color-content-secondary); } .IconButtonNext_variant_function.IconButtonNext_color_error { --icon-button-font-color: var(--color-content-error); --icon-button-font-color-hover: var(--color-content-error-hover); --icon-button-font-color-active: var(--color-content-error-pressed); --icon-button-font-color-focus: var(--color-content-error-pressed); } /** floating */ .IconButtonNext_variant_floating { --icon-button-bg-color: var(--color-background-main); --icon-button-bg-color-hover: var(--color-background-main-hover); --icon-button-bg-color-active: var(--color-background-main-pressed); --icon-button-bg-color-focus: var(--color-background-main); --icon-button-font-color: var(--color-content-primary); --icon-button-font-color-active: var(--color-content-primary); --icon-button-font-color-focus: var(--color-content-primary); } .IconButtonNext_variant_floating::after { content: ''; inset: 0; position: absolute; inline-size: 100%; border-radius: inherit; box-shadow: 0 8px 32px rgb(0 0 0 / 8%); } /** rounded */ .IconButtonNext_variant_contained.IconButtonNext_rounded, .IconButtonNext_variant_contained-additional.IconButtonNext_rounded, .IconButtonNext_variant_ghost.IconButtonNext_rounded, .IconButtonNext_variant_floating.IconButtonNext_rounded { border-radius: 50%; } /** disabled & loading */ .IconButtonNext_variant_contained.IconButtonNext_disabled, .IconButtonNext_variant_contained.IconButtonNext_loading, .IconButtonNext_variant_contained-additional.IconButtonNext_disabled, .IconButtonNext_variant_contained-additional.IconButtonNext_loading, .IconButtonNext_variant_ghost.IconButtonNext_disabled, .IconButtonNext_variant_ghost.IconButtonNext_loading, .IconButtonNext_variant_function.IconButtonNext_disabled, .IconButtonNext_variant_function.IconButtonNext_loading, .IconButtonNext_variant_floating.IconButtonNext_disabled, .IconButtonNext_variant_floating.IconButtonNext_loading { --icon-button-font-color: var(--color-content-disabled); } .IconButtonNext_variant_contained.IconButtonNext_disabled svg, .IconButtonNext_variant_contained.IconButtonNext_loading svg, .IconButtonNext_variant_contained-additional.IconButtonNext_disabled svg, .IconButtonNext_variant_contained-additional.IconButtonNext_loading svg, .IconButtonNext_variant_ghost.IconButtonNext_disabled svg, .IconButtonNext_variant_ghost.IconButtonNext_loading svg, .IconButtonNext_variant_function.IconButtonNext_disabled svg, .IconButtonNext_variant_function.IconButtonNext_loading svg, .IconButtonNext_variant_floating.IconButtonNext_disabled svg, .IconButtonNext_variant_floating.IconButtonNext_loading svg { color: currentcolor; } .IconButtonNext_variant_contained.IconButtonNext_disabled, .IconButtonNext_variant_contained.IconButtonNext_loading, .IconButtonNext_variant_contained-additional.IconButtonNext_disabled, .IconButtonNext_variant_contained-additional.IconButtonNext_loading, .IconButtonNext_variant_floating.IconButtonNext_disabled, .IconButtonNext_variant_floating.IconButtonNext_loading { --icon-button-bg-color: var(--color-background-disabled); --icon-button-bg-color-hover: var(--color-background-disabled); --icon-button-bg-color-active: var(--color-background-disabled); } .IconButtonNext_variant_ghost.IconButtonNext_disabled, .IconButtonNext_variant_ghost.IconButtonNext_loading, .IconButtonNext_variant_function.IconButtonNext_disabled, .IconButtonNext_variant_function.IconButtonNext_loading { --icon-button-bg-color: transparent; --icon-button-bg-color-hover: transparent; --icon-button-bg-color-active: transparent; } /** focus */ .IconButtonNext:focus:not(:focus-visible, :active, :hover) { box-shadow: none; color: var(--icon-button-font-color); background-color: var(--icon-button-bg-color); } .IconButtonNext:focus { outline: 0; /* the bug in outline property before chrome version 94 — doesn't repeat radius of an element */ box-shadow: var(--shadow-outline-focused); color: var(--icon-button-font-color-focus); background-color: var(--icon-button-bg-color-focus); } .IconButtonNext:focus:not(:focus-visible) { box-shadow: none; } /** hover */ .IconButtonNext:hover { background-color: var(--icon-button-bg-color-hover); color: var(--icon-button-font-color-hover); } /** active */ .IconButtonNext:active { background-color: var(--icon-button-bg-color-active); color: var(--icon-button-font-color-active); } .IconButtonNext_disabled, .IconButtonNext_loading { pointer-events: none; cursor: auto; }