CSC Design System next
VueFlavour Vue React Angular TypeScript PrimaryCSC UI ColorsPrimarySecondaryAccentCustom ColorsRedOrangeGreenBluePurplePink
Guides Getting started Customization Data visualization Migration guide Componentsc-accordionc-alertc-autocompletec-badgec-buttonc-button-groupc-cardc-checkboxc-csc-logoc-data-tablec-dividerc-iconc-icon-buttonc-inputc-linkc-listc-loaderc-login-buttonsc-login-cardc-mainc-menuc-messagec-modalc-navigation-buttonc-otp-inputc-pagec-paginationc-popoverc-progress-barc-progress-circlec-radio-groupc-selectc-side-navigationc-sliderc-spinnerc-statusc-stepsc-switchc-tablec-tabsc-tagsc-text-fieldc-toastsc-toolbarc-tooltip

<c-login-buttons>

Examples

Basic
Vue React Angular TypeScript
<template>
  <div>
    <c-login-buttons>
      <c-login-button :src="logo(mdiSchool)" alt="Haka logo">
        Haka login
      </c-login-button>

      <c-login-button :src="logo(mdiDomain)" alt="Virtu logo">
        Virtu login
      </c-login-button>

      <c-login-button :src="logo(mdiAccountCircle)" alt="CSC logo">
        CSC login
      </c-login-button>
    </c-login-buttons>
  </div>
</template>

<script setup lang="ts">
import { mdiAccountCircle, mdiDomain, mdiSchool } from '@mdi/js';

// Stand-in provider logos; use your identity provider's logo url instead.
const logo = (path: string) =>
  `data:image/svg+xml;utf8,${encodeURIComponent(
    `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="${path}" fill="#336b8e"/></svg>`,
  )}`;
</script>
Basic · c-login-button
Vue React Angular TypeScript
<template>
  <div>
    <c-login-buttons>
      <c-login-button :src="logo(mdiSchool)" alt="Haka logo">
        Haka login
      </c-login-button>

      <c-login-button :src="logo(mdiAccountCircle)" alt="CSC logo">
        CSC login
      </c-login-button>
    </c-login-buttons>
  </div>
</template>

<script setup lang="ts">
import { mdiAccountCircle, mdiSchool } from '@mdi/js';

// Stand-in provider logos; use your identity provider's logo url instead.
const logo = (path: string) =>
  `data:image/svg+xml;utf8,${encodeURIComponent(
    `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="${path}" fill="#336b8e"/></svg>`,
  )}`;
</script>

API reference

<c-login-buttons>

Slots

SlotDescription
defaultDefault slot

<c-login-button>

Properties

PropertyAttributeTypeDefaultDescription
altaltstring''Alt description for logo
hrefhrefstring''Login provider link. Do not set if using a javascript click handler
srcsrcstring''Login provider logo url

Slots

SlotDescription
defaultThe title shown in the bottom bar
imageCustom provider logo markup (an inline `<svg>`, a `<picture>`, …) replacing the default `<img>` rendered from `src`

CSS parts

Style from outside with c-login-button::part(name) — parts are the library's only styling customization API.

PartDescription
rootThe anchor element forming the whole clickable card
image-wrapThe area above the title bar that centers the logo (default image or slotted content)
imageThe default provider logo `<img>` (absent when the `image` slot is used)
titleThe bottom title bar wrapping the slotted label