<template> <div> <Head> <Title>Vue Button Component</Title> <Meta name="description" content="Button is an extension to standard input element with icons and theming." /> </Head> <div class="content-section introduction"> <div class="feature-intro"> <h1>Button</h1> <p>Button is an extension to standard button element with icons and theming.</p> </div> <AppDemoActions /> </div> <div class="content-section implementation"> <div class="card"> <h5>Basic</h5> <Button label="Submit" /> <Button label="Disabled" disabled="disabled" /> <Button label="Link" class="p-button-link" /> <h5>Icons</h5> <Button icon="pi pi-check" aria-label="Submit" /> <Button label="Submit" icon="pi pi-check" /> <Button label="Submit" icon="pi pi-check" iconPos="right" /> <h5>Severities</h5> <Button label="Primary" /> <Button label="Secondary" class="p-button-secondary" /> <Button label="Success" class="p-button-success" /> <Button label="Info" class="p-button-info" /> <Button label="Warning" class="p-button-warning" /> <Button label="Help" class="p-button-help" /> <Button label="Danger" class="p-button-danger" /> <h5>Raised Buttons</h5> <Button label="Primary" class="p-button-raised" /> <Button label="Secondary" class="p-button-raised p-button-secondary" /> <Button label="Success" class="p-button-raised p-button-success" /> <Button label="Info" class="p-button-raised p-button-info" /> <Button label="Warning" class="p-button-raised p-button-warning" /> <Button label="Help" class="p-button-raised p-button-help" /> <Button label="Danger" class="p-button-raised p-button-danger" /> <h5>Rounded Buttons</h5> <Button label="Primary" class="p-button-rounded" /> <Button label="Secondary" class="p-button-rounded p-button-secondary" /> <Button label="Success" class="p-button-rounded p-button-success" /> <Button label="Info" class="p-button-rounded p-button-info" /> <Button label="Warning" class="p-button-rounded p-button-warning" /> <Button label="Help" class="p-button-rounded p-button-help" /> <Button label="Danger" class="p-button-rounded p-button-danger" /> <h5>Text Buttons</h5> <Button label="Primary" class="p-button-text" /> <Button label="Secondary" class="p-button-secondary p-button-text" /> <Button label="Success" class="p-button-success p-button-text" /> <Button label="Info" class="p-button-info p-button-text" /> <Button label="Warning" class="p-button-warning p-button-text" /> <Button label="Help" class="p-button-help p-button-text" /> <Button label="Danger" class="p-button-danger p-button-text" /> <Button label="Plain" class="p-button-text p-button-plain" /> <h5>Raised Text Buttons</h5> <Button label="Primary" class="p-button-raised p-button-text" /> <Button label="Secondary" class="p-button-raised p-button-secondary p-button-text" /> <Button label="Success" class="p-button-raised p-button-success p-button-text" /> <Button label="Info" class="p-button-raised p-button-info p-button-text" /> <Button label="Warning" class="p-button-raised p-button-warning p-button-text" /> <Button label="Help" class="p-button-raised p-button-help p-button-text" /> <Button label="Danger" class="p-button-raised p-button-danger p-button-text" /> <Button label="Plain" class="p-button-raised p-button-text p-button-plain" /> <h5>Outlined Buttons</h5> <Button label="Primary" class="p-button-outlined" /> <Button label="Secondary" class="p-button-outlined p-button-secondary" /> <Button label="Success" class="p-button-outlined p-button-success" /> <Button label="Info" class="p-button-outlined p-button-info" /> <Button label="Warning" class="p-button-outlined p-button-warning" /> <Button label="Help" class="p-button-outlined p-button-help" /> <Button label="Danger" class="p-button-outlined p-button-danger" /> <h5>Rounded Icon Buttons</h5> <Button icon="pi pi-bookmark" class="p-button-rounded p-button-secondary" aria-label="Bookmark" /> <Button icon="pi pi-search" class="p-button-rounded p-button-success" aria-label="Search" /> <Button icon="pi pi-user" class="p-button-rounded p-button-info" aria-label="User" /> <Button icon="pi pi-bell" class="p-button-rounded p-button-warning" aria-label="Notification" /> <Button icon="pi pi-heart" class="p-button-rounded p-button-help" aria-label="Favorite" /> <Button icon="pi pi-times" class="p-button-rounded p-button-danger" aria-label="Cancel" /> <Button icon="pi pi-check" class="p-button-rounded" aria-label="Filter" /> <h5>Rounded Text Icon Buttons</h5> <Button icon="pi pi-check" class="p-button-rounded p-button-text" aria-label="Submit" /> <Button icon="pi pi-bookmark" class="p-button-rounded p-button-secondary p-button-text" aria-label="Bookmark" /> <Button icon="pi pi-search" class="p-button-rounded p-button-success p-button-text" aria-label="Search" /> <Button icon="pi pi-user" class="p-button-rounded p-button-info p-button-text" aria-label="User" /> <Button icon="pi pi-bell" class="p-button-rounded p-button-warning p-button-text" aria-label="Notification" /> <Button icon="pi pi-heart" class="p-button-rounded p-button-help p-button-text" aria-label="Favorite" /> <Button icon="pi pi-times" class="p-button-rounded p-button-danger p-button-text" aria-label="Cancel" /> <Button icon="pi pi-filter" class="p-button-rounded p-button-text p-button-plain" aria-label="Filter" /> <h5>Rounded and Outlined Icon Buttons</h5> <Button icon="pi pi-check" class="p-button-rounded p-button-outlined" aria-label="Submit" /> <Button icon="pi pi-bookmark" class="p-button-rounded p-button-secondary p-button-outlined" aria-label="Bookmark" /> <Button icon="pi pi-search" class="p-button-rounded p-button-success p-button-outlined" aria-label="Search" /> <Button icon="pi pi-user" class="p-button-rounded p-button-info p-button-outlined" aria-label="User" /> <Button icon="pi pi-bell" class="p-button-rounded p-button-warning p-button-outlined" aria-label="Notification" /> <Button icon="pi pi-heart" class="p-button-rounded p-button-help p-button-outlined" aria-label="Favorite" /> <Button icon="pi pi-times" class="p-button-rounded p-button-danger p-button-outlined" aria-label="Cancel" /> <h5>Badges</h5> <Button type="button" label="Emails" badge="8" /> <Button type="button" label="Messages" icon="pi pi-users" class="p-button-warning" badge="8" badgeClass="p-badge-danger" /> <h5>Loading</h5> <Button type="button" label="Search" icon="pi pi-search" :loading="loading[0]" @click="load(0)" /> <Button type="button" label="Search" icon="pi pi-search" iconPos="right" :loading="loading[1]" @click="load(1)" /> <Button type="button" icon="pi pi-search" :loading="loading[2]" @click="load(2)" /> <Button type="button" label="Search" :loading="loading[3]" @click="load(3)" /> <h5>Button Set</h5> <span class="p-buttonset"> <Button label="Save" icon="pi pi-check" /> <Button label="Delete" icon="pi pi-trash" /> <Button label="Cancel" icon="pi pi-times" /> </span> <h5>Sizes</h5> <div class="sizes"> <Button label="Small" icon="pi pi-check" class="p-button-sm" /> <Button label="Normal" icon="pi pi-check" class="p-button" /> <Button label="Large" icon="pi pi-check" class="p-button-lg" /> </div> <h5>Template</h5> <div class="template"> <Button class="google p-0" aria-label="Google"> <i class="pi pi-google px-2"></i> <span class="px-3">Google</span> </Button> <Button class="youtube p-0" aria-label="Youtube"> <i class="pi pi-youtube px-2"></i> <span class="px-3">Youtube</span> </Button> <Button class="vimeo p-0" aria-label="Vimeo"> <i class="pi pi-vimeo px-2"></i> <span class="px-3">Vimeo</span> </Button> <Button class="facebook p-0" aria-label="Facebook"> <i class="pi pi-facebook px-2"></i> <span class="px-3">Facebook</span> </Button> <Button class="twitter p-0" aria-label="Twitter"> <i class="pi pi-twitter px-2"></i> <span class="px-3">Twitter</span> </Button> <Button class="slack p-0" aria-label="Slack"> <i class="pi pi-slack px-2"></i> <span class="px-3">Slack</span> </Button> <Button class="amazon p-0" aria-label="Amazon"> <i class="pi pi-amazon px-2"></i> <span class="px-3">Amazon</span> </Button> <Button class="discord p-0" aria-label="Discord"> <i class="pi pi-discord px-2"></i> <span class="px-3">Discord</span> </Button> </div> </div> </div> <ButtonDoc /> </div> </template> <script> import ButtonDoc from './ButtonDoc'; export default { data() { return { loading: [false, false, false] }; }, methods: { load(index) { this.loading[index] = true; setTimeout(() => (this.loading[index] = false), 1000); } }, components: { ButtonDoc: ButtonDoc } }; </script> <style lang="scss" scoped> .p-button { margin-right: 0.5rem; } .p-buttonset { .p-button { margin-right: 0; } } .sizes { .button { margin-bottom: 0.5rem; display: block; &:last-child { margin-bottom: 0; } } } .template .p-button i { line-height: 2.25rem; } .template .p-button.google { background: linear-gradient(to left, var(--purple-600) 50%, var(--purple-700) 50%); background-size: 200% 100%; background-position: right bottom; transition: background-position 0.5s ease-out; color: #fff; border-color: var(--purple-700); } .template .p-button.google:hover { background-position: left bottom; } .template .p-button.google i { background-color: var(--purple-700); } .template .p-button.google:focus { box-shadow: 0 0 0 1px var(--purple-400); } .template .p-button.youtube { background: linear-gradient(to left, var(--pink-600) 50%, var(--pink-700) 50%); background-size: 200% 100%; background-position: right bottom; transition: background-position 0.5s ease-out; color: #fff; border-color: var(--pink-700); } .template .p-button.youtube:hover { background-position: left bottom; } .template .p-button.youtube i { background-color: var(--pink-700); } .template .p-button.youtube:focus { box-shadow: 0 0 0 1px var(--pink-400); } .template .p-button.vimeo { background: linear-gradient(to left, var(--green-200) 50%, var(--green-300) 50%); background-size: 200% 100%; background-position: right bottom; transition: background-position 0.5s ease-out; color: #000; border-color: var(--green-300); } .template .p-button.vimeo:hover { background-position: left bottom; } .template .p-button.vimeo i { background-color: var(--green-300); } .template .p-button.vimeo:focus { box-shadow: 0 0 0 1px var(--green-400); } .template .p-button.facebook { background: linear-gradient(to left, var(--indigo-600) 50%, var(--indigo-700) 50%); background-size: 200% 100%; background-position: right bottom; transition: background-position 0.5s ease-out; color: #fff; border-color: var(--indigo-700); } .template .p-button.facebook:hover { background-position: left bottom; } .template .p-button.facebook i { background-color: var(--indigo-700); } .template .p-button.facebook:focus { box-shadow: 0 0 0 1px var(--indigo-400); } .template .p-button.twitter { background: linear-gradient(to left, var(--blue-400) 50%, var(--blue-500) 50%); background-size: 200% 100%; background-position: right bottom; transition: background-position 0.5s ease-out; color: #fff; border-color: var(--blue-500); } .template .p-button.twitter:hover { background-position: left bottom; } .template .p-button.twitter i { background-color: var(--blue-500); } .template .p-button.twitter:focus { box-shadow: 0 0 0 1px var(--blue-200); } .template .p-button.slack { background: linear-gradient(to left, var(--orange-400) 50%, var(--orange-500) 50%); background-size: 200% 100%; background-position: right bottom; transition: background-position 0.5s ease-out; color: #fff; border-color: var(--orange-500); } .template .p-button.slack:hover { background-position: left bottom; } .template .p-button.slack i { background-color: var(--orange-500); } .template .p-button.slack:focus { box-shadow: 0 0 0 1px var(--orange-200); } .template .p-button.amazon { background: linear-gradient(to left, var(--yellow-400) 50%, var(--yellow-500) 50%); background-size: 200% 100%; background-position: right bottom; transition: background-position 0.5s ease-out; color: #000; border-color: var(--yellow-500); } .template .p-button.amazon:hover { background-position: left bottom; } .template .p-button.amazon i { background-color: var(--yellow-500); } .template .p-button.amazon:focus { box-shadow: 0 0 0 1px var(--yellow-200); } .template .p-button.discord { background: linear-gradient(to left, var(--bluegray-700) 50%, var(--bluegray-800) 50%); background-size: 200% 100%; background-position: right bottom; transition: background-position 0.5s ease-out; color: #fff; border-color: var(--bluegray-800); } .template .p-button.discord:hover { background-position: left bottom; } .template .p-button.discord i { background-color: var(--bluegray-800); } .template .p-button.discord:focus { box-shadow: 0 0 0 1px var(--bluegray-500); } @media screen and (max-width: 960px) { .p-button { margin-bottom: 0.5rem; &:not(.p-button-icon-only) { display: flex; width: 100%; } } .p-buttonset { .p-button { margin-bottom: 0; } } } </style>