//* // @pattern Buttons // @tagline Those sweet, sweet clicks. // @since 1.0 .foo {} /** * A simple button. Nice. * * Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aliquam expedita repellendus magnam similique eum assumenda velit doloribus omnis labore debitis. Molestiae debitis soluta earum minima maxime inventore aperiam, et omnis. * * @variant --primary (demo type: joint, set by: :primary?) * @variant --destroy (demo type: joint, set by: :destroy?) - This button indicates that you want to remove something. * @variant --destroy-no-hover (demo type: joint) * @variant --icon (demo type: hidden) * @variant --large (demo type: select, set by: :size (SIZE_LARGE)) - A much larger button for special situations. * @variant --plain (demo type: select, precludes: --is-disabled, set by: :plain?) */ .button { cursor: pointer; display: inline-block; height: 32px; line-height: 30px; &:hover, &:focus { background: #efefef; // slightly different on hover/ focus } //* // A button that is indicating the loading of content. // // @demo_type joint // @set_by :loading? &.button--is-loading { // Don't do this for disabled buttons &:not(.button--is-disabled) { color: transparent; cursor: default; background-repeat: no-repeat; background-position: center center; &:hover, &:focus { background-color: #fcfcfc; } } } } //* // @precludes .button--large // @demo_type select // @set_by NextButton#resize, :size (SIZE_SLIM) .button--slim { height: 28px; line-height: 26px; } .button--plain { background: transparent; border: none; } //* // A button that can't be activated. In order for this button to // function correctly, both the class and the disabled attribute // must be placed on the button. // For example, the following will produce a button that *looks* disabled, // but that is still clickable: // ```html // // ``` // But this one creates an appropriately unclickable button: // ```html_demo // // ``` // @demo_type select // @javascript_action $(this).addClass('button--is-disabled').attr('disabled', true) // @set_by :disabled? // @precludes button--is-loading .button--is-disabled { &, &:hover, &:focus { color: #999; border-color: #e3e3e3; background: #fcfcfc; } } //* // Two or more buttons that control the same function. // @title Segmented Button Group // @demo_type own .button__segmented-group { display: flex; .button { display: block; flex: 0 1 auto; margin: 0; // Adjusts details for buttons that are part of the // button group. &:not(:first-of-type) { margin-left: -1px; } &:first-of-type { border-top-right-radius: 0; border-bottom-right-radius: 0; } &:last-of-type { border-top-left-radius: 0; border-bottom-left-radius: 0; } &:not(:last-of-type):not(:first-of-type) { border-radius: 0; } } } // A segmented group that spans the entire container. // @demo_type select .button__segmented-group--full-width { .button { flex: 1 1 auto; } }