Skip to content

Commit b3c20ac

Browse files
committed
chore: clean up Button component
1 parent 62c5553 commit b3c20ac

File tree

5 files changed

+42
-22
lines changed

5 files changed

+42
-22
lines changed

src/lib/buttons/Button.svelte

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -17,16 +17,7 @@
1717
export let size: 'xs' | 'sm' | 'md' | 'lg' | 'xl' = 'md';
1818
export let icon: typeof SvelteComponent | undefined = undefined;
1919
export let gradient: boolean = false;
20-
let gradientMonochrome: 'blue' | 'green' | 'cyan' | 'teal' | 'lime' | 'red' | 'pink' | 'purple';
2120
22-
let gradientDuoTone:
23-
| 'purpleToBlue'
24-
| 'cyanToBlue'
25-
| 'greenToBlue'
26-
| 'purpleToPink'
27-
| 'pinkToOrange'
28-
| 'tealToLime'
29-
| 'redToYellow';
3021
export let shadow:
3122
| 'blue'
3223
| 'green'
@@ -38,7 +29,7 @@
3829
| 'purple'
3930
| null = null;
4031
export let positionInGroup: 'start' | 'middle' | 'end' | null = null;
41-
let outlineStyle: 'default' | 'dark' | 'green' | 'red' | 'yellow' | 'purple' | 'white';
32+
4233
const colorClasses = {
4334
blue: 'text-white bg-blue-700 border border-transparent hover:bg-blue-800 focus:ring-4 focus:ring-blue-300 disabled:hover:bg-blue-700 dark:bg-blue-600 dark:hover:bg-blue-700 dark:focus:ring-blue-800 dark:disabled:hover:bg-blue-600',
4435
alternative:

src/lib/footer/Footer.svelte

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<script lang="ts">
2+
import classNames from 'classnames';
3+
// social media
4+
export let footerClass: string = 'p-4 bg-white sm:p-6 dark:bg-gray-800';
5+
// logo footer
6+
// export let footerClass: string = 'p-4 bg-white rounded-lg shadow md:px-6 md:py-8 dark:bg-gray-800';
7+
// simple footer
8+
// export let footerClass: string = 'p-4 bg-white rounded-lg shadow md:flex md:items-center md:justify-between md:p-6 dark:bg-gray-800';
9+
// sitemap
10+
// export let footerClass: string = 'bg-white dark:bg-gray-800';
11+
export let footerType:'sitemap'|'simple'|'logo'|'socialmedia'='sitemap'
12+
const footerClasses={
13+
sitemap:{},
14+
simple:
15+
}
16+
</script>

src/lib/footer/LogoFooter.svelte

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,28 @@
11
<script lang="ts">
2+
import classNames from 'classnames';
23
import type { LinkType, SiteType } from '../types';
34
export let site: SiteType;
45
56
export let links: LinkType[];
6-
export let footerClass: string = 'p-4 bg-white rounded-lg shadow md:px-6 md:py-8 dark:bg-gray-800';
7+
export let footerClass: string =
8+
'p-4 bg-white rounded-lg shadow md:px-6 md:py-8 dark:bg-gray-800';
79
export let divClass: string = 'sm:flex sm:items-center sm:justify-between';
8-
export let siteNameClass: string = 'self-center text-2xl font-semibold whitespace-nowrap dark:text-white';
9-
export let ulClass: string = 'flex flex-wrap items-center mb-6 text-sm text-gray-500 sm:mb-0 dark:text-gray-400';
10+
export let siteNameClass: string =
11+
'self-center text-2xl font-semibold whitespace-nowrap dark:text-white';
12+
export let ulClass: string =
13+
'flex flex-wrap items-center mb-6 text-sm text-gray-500 sm:mb-0 dark:text-gray-400';
1014
export let aClass: string = 'mr-4 hover:underline md:mr-6';
1115
export let siteNameLinkClass: string = 'flex items-center mb-4 sm:mb-0';
1216
export let imgClass: string = 'mr-3 h-8';
1317
export let hrClass: string = 'my-6 border-gray-200 sm:mx-auto dark:border-gray-700 lg:my-8';
14-
export let copyRightSpanClass: string = 'block text-sm text-gray-500 sm:text-center dark:text-gray-400';
18+
export let copyRightSpanClass: string =
19+
'block text-sm text-gray-500 sm:text-center dark:text-gray-400';
1520
export let copyRightLinkClass: string = 'hover:underline';
1621
export let copyrightYear: string = '© 2022';
1722
export let allRightsReserved: string = 'All Rights Reserved.';
1823
</script>
1924

20-
<footer class="{footerClass} {$$props.class ? $$props.class : ''}">
25+
<footer class={classNames(footerClass, $$props.class)}>
2126
<div class={divClass}>
2227
<a href={site.href} class={siteNameLinkClass}>
2328
<img src={site.img} class={imgClass} alt={site.name} />

src/lib/footer/SimpleFooter.svelte

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,20 @@
11
<script lang="ts">
2+
import classNames from 'classnames';
23
import type { LinkType, SiteType } from '../types';
34
export let site: SiteType;
45
export let links: LinkType[];
5-
export let footerClass: string = 'p-4 bg-white rounded-lg shadow md:flex md:items-center md:justify-between md:p-6 dark:bg-gray-800';
6+
export let footerClass: string =
7+
'p-4 bg-white rounded-lg shadow md:flex md:items-center md:justify-between md:p-6 dark:bg-gray-800';
68
export let siteNameClass: string = 'text-sm text-gray-500 sm:text-center dark:text-gray-400';
79
export let ulClass: string = 'flex flex-wrap items-center mt-3 sm:mt-0';
8-
export let aClass: string = 'mr-4 text-sm text-gray-500 hover:underline md:mr-6 dark:text-gray-400';
10+
export let aClass: string =
11+
'mr-4 text-sm text-gray-500 hover:underline md:mr-6 dark:text-gray-400';
912
export let siteNameLinkClass: string = 'hover:underline';
1013
export let copyrightYear: string = '© 2022';
1114
export let allRightsReserved: string = 'All Rights Reserved.';
1215
</script>
1316

14-
<footer class="{footerClass} {$$props.class ? $$props.class : ''}">
17+
<footer class={classNames(footerClass, $$props.class)}>
1518
<span class={siteNameClass}
1619
>{copyrightYear}
1720
<a href={site.href} class={siteNameLinkClass} target="_blank">{site.name}</a>. {allRightsReserved}

src/lib/footer/SocialMediaFooter.svelte

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
<script lang="ts">
2+
import classNames from 'classnames';
23
import type { SocialMediaLinkType, SocialMediaType, SiteType } from '../types';
34
export let site: SiteType;
45
export let links: SocialMediaLinkType[];
@@ -7,30 +8,34 @@
78
export let divClass: string = 'md:flex md:justify-between';
89
export let divClass2: string = 'mb-6 md:mb-0';
910
export let siteLinkClass: string = 'flex items-center';
10-
export let siteNameSpanClass: string = 'self-center text-2xl font-semibold whitespace-nowrap dark:text-white';
11+
export let siteNameSpanClass: string =
12+
'self-center text-2xl font-semibold whitespace-nowrap dark:text-white';
1113
export let imgClass: string = 'mr-3 h-8';
1214
export let linksDivClass: string = 'grid grid-cols-2 gap-8 sm:gap-6 sm:grid-cols-3';
13-
export let parentClass: string = 'mb-6 text-sm font-semibold text-gray-900 uppercase dark:text-white';
15+
export let parentClass: string =
16+
'mb-6 text-sm font-semibold text-gray-900 uppercase dark:text-white';
1417
export let ulClass: string = 'text-gray-600 dark:text-gray-400';
1518
export let liClass: string = 'mb-4';
1619
export let linkClass: string = 'hover:underline';
1720
export let hrClass: string = 'my-6 border-gray-200 sm:mx-auto dark:border-gray-700 lg:my-8';
1821
export let copyrightDivClass: string = 'sm:flex sm:items-center sm:justify-between';
1922
export let copyrightClass: string = 'text-sm text-gray-500 sm:text-center dark:text-gray-400';
2023
export let socialMediaDivClass: string = 'flex mt-4 space-x-6 sm:justify-center sm:mt-0';
21-
export let socialMediaLinkClass: string = 'text-gray-500 hover:text-gray-900 dark:hover:text-white';
24+
export let socialMediaLinkClass: string =
25+
'text-gray-500 hover:text-gray-900 dark:hover:text-white';
2226
export let iconClass: string = 'h-5 w-5 mr-2';
2327
export let copyrightYear: string = '© 2022';
2428
export let allRightsReserved: string = 'All Rights Reserved.';
2529
</script>
2630

27-
<footer class="{footerClass} {$$props.class ? $$props.class : ''}">
31+
<footer class={classNames(footerClass, $$props.class)}>
2832
<div class={divClass}>
2933
<div class={divClass2}>
3034
<a href={site.href} class={siteLinkClass}>
3135
<img src={site.img} class={imgClass} alt={site.name} />
3236
<span class={siteNameSpanClass}>{site.name}</span>
3337
</a>
38+
<slot />
3439
</div>
3540
<div class={linksDivClass}>
3641
{#each links as { parent, children }}

0 commit comments

Comments
 (0)