Improve design using custom variables

This commit is contained in:
prototypa
2023-01-22 00:40:14 -05:00
parent a3d0855f92
commit a01fd3880f
25 changed files with 80 additions and 77 deletions

View File

@ -39,12 +39,12 @@ const image = await findImage(post.image);
) : ( ) : (
<a <a
href={getPermalink(post.slug, 'post')} href={getPermalink(post.slug, 'post')}
class="hover:text-primary-800 dark:hover:text-primary-700 transition ease-in duration-200" class="hover:text-primary dark:hover:text-blue-700 transition ease-in duration-200"
> >
{post.title} {post.title}
</a> </a>
) )
} }
</h3> </h3>
<p class="text-gray-500 dark:text-slate-400 text-lg">{post.excerpt || post.description}</p> <p class="text-muted dark:text-slate-400 text-lg">{post.excerpt || post.description}</p>
</article> </article>

View File

@ -37,7 +37,7 @@ const posts = await findPostsByIds(postIds);
{ {
allPostsText && allPostsLink && ( allPostsText && allPostsLink && (
<a <a
class="text-gray-500 dark:text-slate-400 hover:text-primary-800 transition ease-in duration-200 block mb-6 md:mb-0" class="text-muted dark:text-slate-400 hover:text-primary transition ease-in duration-200 block mb-6 md:mb-0"
href={allPostsLink} href={allPostsLink}
> >
{allPostsText} » {allPostsText} »
@ -46,7 +46,7 @@ const posts = await findPostsByIds(postIds);
} }
</div> </div>
{information && <p class="text-gray-700 dark:text-slate-400 lg:text-sm lg:max-w-md" set:html={information} />} {information && <p class="text-muted dark:text-slate-400 lg:text-sm lg:max-w-md" set:html={information} />}
</div> </div>
<Grid posts={posts} /> <Grid posts={posts} />

View File

@ -37,7 +37,7 @@ const posts = await findLatestPosts({ count });
{ {
allPostsText && allPostsLink && ( allPostsText && allPostsLink && (
<a <a
class="text-gray-500 dark:text-slate-400 hover:text-primary-800 transition ease-in duration-200 block mb-6 md:mb-0" class="text-muted dark:text-slate-400 hover:text-primary transition ease-in duration-200 block mb-6 lg:mb-0"
href={allPostsLink} href={allPostsLink}
> >
{allPostsText} » {allPostsText} »
@ -46,7 +46,7 @@ const posts = await findLatestPosts({ count });
} }
</div> </div>
{information && <p class="text-gray-700 dark:text-slate-400 lg:text-sm lg:max-w-md" set:html={information} />} {information && <p class="text-muted dark:text-slate-400 lg:text-sm lg:max-w-md" set:html={information} />}
</div> </div>
<Grid posts={posts} /> <Grid posts={posts} />

View File

@ -43,15 +43,15 @@ const link = !BLOG?.post?.disabled ? getPermalink(post.slug, 'post') : '';
<header> <header>
<div class="mb-1"> <div class="mb-1">
<span class="text-sm"> <span class="text-sm">
<Icon name="tabler:clock" class="w-3.5 h-3.5 inline-block -mt-0.5 text-gray-500 dark:text-gray-400" /> <Icon name="tabler:clock" class="w-3.5 h-3.5 inline-block -mt-0.5 dark:text-gray-400" />
<time datetime={String(post.publishDate)}>{getFormattedDate(post.publishDate)}</time> ~ <time datetime={String(post.publishDate)}>{getFormattedDate(post.publishDate)}</time> ~
{Math.ceil(post.readingTime)} min read {Math.ceil(post.readingTime)} min read
</span> </span>
</div> </div>
<h2 class="text-xl sm:text-2xl font-bold leading-tight mb-2 font-heading text-gray-700 dark:text-slate-300"> <h2 class="text-xl sm:text-2xl font-bold leading-tight mb-2 font-heading dark:text-slate-300">
{ {
link ? ( link ? (
<a class="hover:text-primary-800 dark:hover:text-primary-700 transition ease-in duration-200" href={link}> <a class="hover:text-primary dark:hover:text-blue-700 transition ease-in duration-200" href={link}>
{post.title} {post.title}
</a> </a>
) : ( ) : (
@ -61,7 +61,7 @@ const link = !BLOG?.post?.disabled ? getPermalink(post.slug, 'post') : '';
</h2> </h2>
</header> </header>
{post.excerpt && <p class="flex-grow text-gray-500 dark:text-slate-400 text-lg">{post.excerpt}</p>} {post.excerpt && <p class="flex-grow text-muted dark:text-slate-400 text-lg">{post.excerpt}</p>}
<footer class="mt-5"> <footer class="mt-5">
<PostTags tags={post.tags} /> <PostTags tags={post.tags} />
</footer> </footer>

View File

@ -22,10 +22,10 @@ const { post, url } = Astro.props;
<header class={post.image ? '' : ''}> <header class={post.image ? '' : ''}>
<div class="flex justify-between flex-col sm:flex-row max-w-3xl mx-auto mt-0 mb-2 px-4 sm:px-6 sm:items-center"> <div class="flex justify-between flex-col sm:flex-row max-w-3xl mx-auto mt-0 mb-2 px-4 sm:px-6 sm:items-center">
<p> <p>
<Icon name="tabler:clock" class="w-4 h-4 inline-block -mt-1 text-gray-500 dark:text-gray-400" /> <Icon name="tabler:clock" class="w-4 h-4 inline-block -mt-1 dark:text-gray-400" />
<time datetime={String(post.publishDate)}>{getFormattedDate(post.publishDate)}</time> ~ { <time datetime={String(post.publishDate)}>{getFormattedDate(post.publishDate)}</time> ~ {
Math.ceil(post.readingTime) Math.ceil(post.readingTime)
} min read } min read
</p> </p>
</div> </div>
<h1 <h1
@ -34,7 +34,7 @@ const { post, url } = Astro.props;
{post.title} {post.title}
</h1> </h1>
<p <p
class="max-w-3xl mx-auto mt-4 mb-8 px-4 sm:px-6 text-xl md:text-2xl text-gray-500 dark:text-slate-400 font-medium text-justify" class="max-w-3xl mx-auto mt-4 mb-8 px-4 sm:px-6 text-xl md:text-2xl text-muted dark:text-slate-400 text-justify"
> >
{post.excerpt} {post.excerpt}
</p> </p>
@ -60,7 +60,7 @@ const { post, url } = Astro.props;
} }
</header> </header>
<div <div
class="mx-auto px-6 sm:px-6 max-w-3xl prose prose-lg lg:prose-xl dark:prose-invert dark:prose-headings:text-slate-300 prose-md prose-headings:font-heading prose-headings:leading-tighter prose-headings:tracking-tighter prose-headings:font-bold prose-a:text-primary-800 dark:prose-a:text-primary-400 prose-img:rounded-md prose-img:shadow-lg mt-8" class="mx-auto px-6 sm:px-6 max-w-3xl prose prose-lg lg:prose-xl dark:prose-invert dark:prose-headings:text-slate-300 prose-md prose-headings:font-heading prose-headings:leading-tighter prose-headings:tracking-tighter prose-headings:font-bold prose-a:text-primary dark:prose-a:text-blue-400 prose-img:rounded-md prose-img:shadow-lg mt-8"
> >
{ {
post.Content ? ( post.Content ? (

View File

@ -22,7 +22,7 @@ const { tags, class: className = 'text-sm' } = Astro.props;
) : ( ) : (
<a <a
href={getPermalink(tag, 'tag')} href={getPermalink(tag, 'tag')}
class="text-gray-600 dark:text-slate-300 hover:text-primary-800 dark:hover:text-gray-200" class="text-muted dark:text-slate-300 hover:text-primary dark:hover:text-gray-200"
> >
{tag} {tag}
</a> </a>

View File

@ -13,7 +13,7 @@ export interface Props {
const { const {
label = 'Toggle between Dark and Light mode', label = 'Toggle between Dark and Light mode',
class: class:
className = 'text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5 inline-flex items-center', className = 'text-muted dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5 inline-flex items-center',
iconClass = 'w-6 h-6', iconClass = 'w-6 h-6',
iconName = 'tabler:sun', iconName = 'tabler:sun',
} = Astro.props; } = Astro.props;

View File

@ -3,9 +3,9 @@ import { getPermalink } from '~/utils/permalinks';
--- ---
<div <div
class="hidden md:block bg-primary-900 dark:bg-slate-800 dark:border-slate-800 dark:text-slate-400 border-b border-primary-900 text-sm px-3 py-2 text-gray-200 overflow-hidden whitespace-nowrap text-ellipsis" class="hidden md:block bg-blue-900 dark:bg-slate-800 dark:border-slate-800 dark:text-slate-400 border-b border-blue-900 text-sm px-3 py-2 text-gray-200 overflow-hidden whitespace-nowrap text-ellipsis"
> >
<span class="text-xs py-0.5 px-1 bg-primary-800 dark:bg-slate-700 dark:text-slate-300 font-semibold">NEW</span> <span class="text-xs py-0.5 px-1 bg-primary dark:bg-slate-700 dark:text-slate-300 font-semibold">NEW</span>
<a <a
href={getPermalink('useful-resources-to-create-websites', 'post')} href={getPermalink('useful-resources-to-create-websites', 'post')}
class="hover:underline text-gray-200 dark:text-slate-400" class="hover:underline text-gray-200 dark:text-slate-400"

View File

@ -34,7 +34,7 @@ const {
/> />
) )
} }
{subtitle && <p class="text-xl text-gray-600 dark:text-slate-400" set:html={subtitle} />} {subtitle && <p class="text-xl text-muted dark:text-slate-400" set:html={subtitle} />}
{ {
typeof callToAction === 'string' ? ( typeof callToAction === 'string' ? (
<Fragment set:html={callToAction} /> <Fragment set:html={callToAction} />

View File

@ -31,14 +31,14 @@ const {
} = Astro.props; } = Astro.props;
--- ---
<section class={`bg-primary-50 dark:bg-slate-800 py-16 md:py-20 ${isAfterContent ? 'pt-0 md:pt-0' : ''}`}> <section class={`bg-blue-50 dark:bg-slate-800 py-16 md:py-20 ${isAfterContent ? 'pt-0 md:pt-0' : ''}`}>
<div class="max-w-xl sm:mx-auto lg:max-w-2xl"> <div class="max-w-xl sm:mx-auto lg:max-w-2xl">
{ {
(title || subtitle || highlight) && ( (title || subtitle || highlight) && (
<div class="mb-10 md:mx-auto text-center md:mb-12 max-w-3xl"> <div class="mb-10 md:mx-auto text-center md:mb-12 max-w-3xl">
{highlight && ( {highlight && (
<p <p
class="text-base text-primary-800 dark:text-primary-200 font-semibold tracking-wide uppercase" class="text-base text-primary dark:text-blue-200 font-semibold tracking-wide uppercase"
set:html={highlight} set:html={highlight}
/> />
)} )}
@ -50,7 +50,7 @@ const {
)} )}
{subtitle && ( {subtitle && (
<p class="max-w-3xl mx-auto sm:text-center text-xl text-gray-600 dark:text-slate-400" set:html={subtitle} /> <p class="max-w-3xl mx-auto sm:text-center text-xl text-muted dark:text-slate-400" set:html={subtitle} />
)} )}
</div> </div>
) )
@ -59,7 +59,7 @@ const {
<div class="mx-auto max-w-screen-xl p-4 md:px-8"> <div class="mx-auto max-w-screen-xl p-4 md:px-8">
<div class={`md:flex ${isReversed ? 'md:flex-row-reverse' : ''} md:gap-16`}> <div class={`md:flex ${isReversed ? 'md:flex-row-reverse' : ''} md:gap-16`}>
<div class="md:basis-1/2 self-center"> <div class="md:basis-1/2 self-center">
{content && <div class="mb-12 text-lg text-gray-600 dark:text-slate-400" set:html={content} />} {content && <div class="mb-12 text-lg dark:text-slate-400" set:html={content} />}
{ {
items && ( items && (
@ -67,13 +67,13 @@ const {
{items.map(({ title: title2, description, icon }) => ( {items.map(({ title: title2, description, icon }) => (
<div class="flex"> <div class="flex">
<div class="flex-shrink-0"> <div class="flex-shrink-0">
<div class="flex h-7 w-7 items-center justify-center rounded-full bg-primary-800 text-gray-50"> <div class="flex h-7 w-7 items-center justify-center rounded-full bg-primary text-gray-50">
<Icon name={icon ? icon : 'tabler:check'} class="w-5 h-5" /> <Icon name={icon ? icon : 'tabler:check'} class="w-5 h-5" />
</div> </div>
</div> </div>
<div class="ml-4"> <div class="ml-4">
{title2 && <h3 class="text-lg font-medium leading-6 text-gray-900 dark:text-white">{title2}</h3>} {title2 && <h3 class="text-lg font-medium leading-6 dark:text-white">{title2}</h3>}
{description && <p class="mt-2 text-gray-600 dark:text-slate-400" set:html={description} />} {description && <p class="mt-2 text-muted dark:text-slate-400" set:html={description} />}
</div> </div>
</div> </div>
))} ))}

View File

@ -28,7 +28,7 @@ const {
<div class="max-w-xl mb-10 md:mx-auto md:text-center lg:max-w-2xl md:mb-12"> <div class="max-w-xl mb-10 md:mx-auto md:text-center lg:max-w-2xl md:mb-12">
{highlight && ( {highlight && (
<p <p
class="text-base text-primary-800 dark:text-primary-200 font-semibold tracking-wide uppercase" class="text-base text-primary dark:text-blue-200 font-semibold tracking-wide uppercase"
set:html={highlight} set:html={highlight}
/> />
)} )}
@ -38,7 +38,7 @@ const {
set:html={title} set:html={title}
/> />
)} )}
{subtitle && <p class="max-w-3xl mx-auto text-xl text-gray-600 dark:text-slate-400" set:html={subtitle} />} {subtitle && <p class="max-w-3xl mx-auto text-xl text-muted dark:text-slate-400" set:html={subtitle} />}
</div> </div>
) )
} }
@ -52,10 +52,10 @@ const {
{subitems.map(({ question, answer }) => ( {subitems.map(({ question, answer }) => (
<div> <div>
<h3 class="mb-4 text-xl font-bold"> <h3 class="mb-4 text-xl font-bold">
<Icon name="tabler:arrow-down-right" class="w-7 h-7 text-primary-800 inline-block" /> <Icon name="tabler:arrow-down-right" class="w-7 h-7 text-primary inline-block" />
{question} {question}
</h3> </h3>
{answer && <div class="text-gray-700 dark:text-gray-400" set:html={answer} />} {answer && <div class="text-muted dark:text-gray-400" set:html={answer} />}
</div> </div>
))} ))}
</div> </div>

View File

@ -29,7 +29,7 @@ const {
<div class="mb-10 md:mx-auto text-center md:mb-12 max-w-3xl"> <div class="mb-10 md:mx-auto text-center md:mb-12 max-w-3xl">
{highlight && ( {highlight && (
<p <p
class="text-base text-primary-800 dark:text-primary-200 font-semibold tracking-wide uppercase" class="text-base text-primary dark:text-blue-200 font-semibold tracking-wide uppercase"
set:html={highlight} set:html={highlight}
/> />
)} )}
@ -41,7 +41,7 @@ const {
)} )}
{subtitle && ( {subtitle && (
<p class="max-w-3xl mx-auto sm:text-center text-xl text-gray-600 dark:text-slate-400" set:html={subtitle} /> <p class="max-w-3xl mx-auto sm:text-center text-xl text-muted dark:text-slate-400" set:html={subtitle} />
)} )}
</div> </div>
) )
@ -53,13 +53,13 @@ const {
{subitems.map(({ title, description, icon }) => ( {subitems.map(({ title, description, icon }) => (
<div class="flex flex-row max-w-md"> <div class="flex flex-row max-w-md">
<div class="mb-4 mr-4"> <div class="mb-4 mr-4">
<div class="flex items-center justify-center w-12 h-12 rounded-full bg-primary-800 dark:bg-primary-700"> <div class="flex items-center justify-center w-12 h-12 rounded-full bg-primary dark:bg-blue-700">
{icon && <Icon name={icon} class="w-6 h-6 text-white icon-light" />} {icon && <Icon name={icon} class="w-6 h-6 text-white icon-light" />}
</div> </div>
</div> </div>
<div> <div>
<h3 class="mb-3 text-xl font-bold">{title}</h3> <h3 class="mb-3 text-xl font-bold">{title}</h3>
<p class="text-gray-600 dark:text-slate-400" set:html={description} /> <p class="text-muted dark:text-slate-400" set:html={description} />
</div> </div>
</div> </div>
))} ))}

View File

@ -23,7 +23,7 @@ const {
--- ---
<section class="relative"> <section class="relative">
<div class="absolute inset-0 bg-primary-50 dark:bg-slate-800 pointer-events-none mb-32" aria-hidden="true"></div> <div class="absolute inset-0 bg-blue-50 dark:bg-slate-800 pointer-events-none mb-32" aria-hidden="true"></div>
<div class="relative max-w-screen-xl mx-auto px-4 sm:px-6 -mb-12"> <div class="relative max-w-screen-xl mx-auto px-4 sm:px-6 -mb-12">
<div class="py-4 pt-8 sm:py-6 lg:py-8 lg:pt-12"> <div class="py-4 pt-8 sm:py-6 lg:py-8 lg:pt-12">
{ {
@ -31,7 +31,7 @@ const {
<div class="mb-8 md:mx-auto text-center max-w-3xl"> <div class="mb-8 md:mx-auto text-center max-w-3xl">
{highlight && ( {highlight && (
<p <p
class="text-base text-primary-800 dark:text-primary-200 font-semibold tracking-wide uppercase" class="text-base text-primary dark:text-blue-200 font-semibold tracking-wide uppercase"
set:html={highlight} set:html={highlight}
/> />
)} )}
@ -44,7 +44,7 @@ const {
{subtitle && ( {subtitle && (
<p <p
class="max-w-3xl mx-auto sm:text-center text-xl text-gray-600 dark:text-slate-400" class="max-w-3xl mx-auto sm:text-center text-xl text-muted dark:text-slate-400"
set:html={subtitle} set:html={subtitle}
/> />
)} )}
@ -59,7 +59,7 @@ const {
<Icon name={icon} class="w-10 h-10" /> <Icon name={icon} class="w-10 h-10" />
<div class="ml-4 text-xl font-bold">{title}</div> <div class="ml-4 text-xl font-bold">{title}</div>
</div> </div>
{description && <p class="text-gray-500 dark:text-gray-400 text-md mt-4" set:html={description} />} {description && <p class="text-muted dark:text-gray-400 text-md mt-4" set:html={description} />}
</div> </div>
)) ))
} }

View File

@ -34,11 +34,11 @@ const { socialLinks = [], secondaryLinks = [], links = [], footNote = '', theme
<div class="mb-2"> <div class="mb-2">
<a class="inline-block font-bold text-xl" href={getHomePermalink()}>{SITE?.name}</a> <a class="inline-block font-bold text-xl" href={getHomePermalink()}>{SITE?.name}</a>
</div> </div>
<div class="text-sm text-gray-600"> <div class="text-sm text-muted">
{ {
secondaryLinks.map(({ text, href }) => ( secondaryLinks.map(({ text, href }) => (
<a <a
class="text-gray-600 hover:text-gray-700 dark:text-gray-400 hover:underline transition duration-150 ease-in-out mr-2" class="text-muted hover:text-gray-700 dark:text-gray-400 hover:underline transition duration-150 ease-in-out mr-2"
href={href} href={href}
set:html={text} set:html={text}
/> />
@ -49,13 +49,13 @@ const { socialLinks = [], secondaryLinks = [], links = [], footNote = '', theme
{ {
links.map(({ title, links }) => ( links.map(({ title, links }) => (
<div class="col-span-6 md:col-span-3 lg:col-span-2"> <div class="col-span-6 md:col-span-3 lg:col-span-2">
<div class="text-gray-800 dark:text-gray-300 font-medium mb-2">{title}</div> <div class="dark:text-gray-300 font-medium mb-2">{title}</div>
{links && Array.isArray(links) && links.length > 0 && ( {links && Array.isArray(links) && links.length > 0 && (
<ul class="text-sm"> <ul class="text-sm">
{links.map(({ text, href, ariaLabel }) => ( {links.map(({ text, href, ariaLabel }) => (
<li class="mb-2"> <li class="mb-2">
<a <a
class="text-gray-600 hover:text-gray-700 hover:underline dark:text-gray-400 transition duration-150 ease-in-out" class="text-muted hover:text-gray-700 hover:underline dark:text-gray-400 transition duration-150 ease-in-out"
href={href} href={href}
aria-label={ariaLabel} aria-label={ariaLabel}
> >
@ -76,7 +76,7 @@ const { socialLinks = [], secondaryLinks = [], links = [], footNote = '', theme
{socialLinks.map(({ ariaLabel, href, text, icon }) => ( {socialLinks.map(({ ariaLabel, href, text, icon }) => (
<li> <li>
<a <a
class="text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5 inline-flex items-center" class="text-muted dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5 inline-flex items-center"
aria-label={ariaLabel} aria-label={ariaLabel}
href={href} href={href}
> >
@ -91,7 +91,7 @@ const { socialLinks = [], secondaryLinks = [], links = [], footNote = '', theme
) )
} }
<div class="text-sm text-gray-700 mr-4 dark:text-slate-400"> <div class="text-sm mr-4 dark:text-slate-400">
<Fragment set:html={footNote} /> <Fragment set:html={footNote} />
</div> </div>
</div> </div>

View File

@ -22,14 +22,18 @@ interface MenuLink extends Link {
} }
export interface Props { export interface Props {
links: Array<MenuLink>; links?: Array<MenuLink>;
actions: Array<ActionLink>; actions?: Array<ActionLink>;
isFixed?: boolean;
} }
const { links = [], actions = [] } = Astro.props; const { links = [], actions = [], isFixed = false } = Astro.props;
--- ---
<header class="sticky top-0 z-40 flex-none mx-auto w-full transition-all ease-in duration-100" id="header"> <header
class:list={[{ sticky: isFixed }, 'top-0 z-40 flex-none mx-auto w-full transition-all ease-in duration-100']}
id="header"
>
<div class="py-3 px-3 md:py-3.5 md:px-4 mx-auto w-full md:flex md:justify-between max-w-screen-xl"> <div class="py-3 px-3 md:py-3.5 md:px-4 mx-auto w-full md:flex md:justify-between max-w-screen-xl">
<div class="flex justify-between"> <div class="flex justify-between">
<a class="flex items-center" href={getHomePermalink()}> <a class="flex items-center" href={getHomePermalink()}>
@ -41,7 +45,7 @@ const { links = [], actions = [] } = Astro.props;
</div> </div>
</div> </div>
<nav <nav
class="items-center w-full md:w-auto hidden md:flex text-gray-800 dark:text-slate-200 h-[calc(100vh-72px)] md:h-auto overflow-y-auto md:overflow-visible" class="items-center w-full md:w-auto hidden md:flex dark:text-slate-200 h-[calc(100vh-72px)] md:h-auto overflow-y-auto md:overflow-visible"
aria-label="Main navigation" aria-label="Main navigation"
> >
<ul class="flex flex-col pt-8 md:pt-0 md:flex-row md:self-center w-full md:w-auto text-xl md:text-base"> <ul class="flex flex-col pt-8 md:pt-0 md:flex-row md:self-center w-full md:w-auto text-xl md:text-base">
@ -84,7 +88,7 @@ const { links = [], actions = [] } = Astro.props;
<ToggleTheme iconClass="w-5 h-5" /> <ToggleTheme iconClass="w-5 h-5" />
<a <a
class="text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5 inline-flex items-center" class="text-muted dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 focus:outline-none focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 rounded-lg text-sm p-2.5 inline-flex items-center"
aria-label="RSS Feed" aria-label="RSS Feed"
href={getAsset('/rss.xml')} href={getAsset('/rss.xml')}
> >

View File

@ -41,7 +41,7 @@ const {
) )
} }
<div class="max-w-3xl mx-auto"> <div class="max-w-3xl mx-auto">
{subtitle && <p class="text-xl text-gray-600 mb-6 dark:text-slate-300" set:html={subtitle} />} {subtitle && <p class="text-xl text-muted mb-6 dark:text-slate-300" set:html={subtitle} />}
<div class="max-w-xs sm:max-w-md m-auto flex flex-nowrap flex-col sm:flex-row sm:justify-center gap-4"> <div class="max-w-xs sm:max-w-md m-auto flex flex-nowrap flex-col sm:flex-row sm:justify-center gap-4">
{ {
callToAction && ( callToAction && (

View File

@ -2,7 +2,7 @@
import { Icon } from 'astro-icon'; import { Icon } from 'astro-icon';
--- ---
<section class="bg-primary-50 dark:bg-slate-800"> <section class="bg-blue-50 dark:bg-slate-800">
<div class="max-w-6xl mx-auto px-4 sm:px-6 py-4 text-md text-center font-medium"> <div class="max-w-6xl mx-auto px-4 sm:px-6 py-4 text-md text-center font-medium">
<span class="font-bold"> <span class="font-bold">
<Icon name="tabler:info-square" class="w-5 h-5 inline-block align-text-bottom" /> Philosophy:</span <Icon name="tabler:info-square" class="w-5 h-5 inline-block align-text-bottom" /> Philosophy:</span

View File

@ -24,7 +24,7 @@ const {
(title || subtitle || highlight) && ( (title || subtitle || highlight) && (
<div class="max-w-xl mb-10 md:mx-auto sm:text-center lg:max-w-2xl md:mb-12"> <div class="max-w-xl mb-10 md:mx-auto sm:text-center lg:max-w-2xl md:mb-12">
{highlight && ( {highlight && (
<p class="text-base text-primary-800 dark:text-primary-200 font-semibold tracking-wide uppercase"> <p class="text-base text-primary dark:text-blue-200 font-semibold tracking-wide uppercase">
{highlight} {highlight}
</p> </p>
)} )}
@ -35,7 +35,7 @@ const {
/> />
)} )}
{subtitle && ( {subtitle && (
<p class="max-w-3xl mx-auto text-center text-xl text-gray-600 dark:text-slate-400" set:html={subtitle} /> <p class="max-w-3xl mx-auto text-center text-xl text-muted dark:text-slate-400" set:html={subtitle} />
)} )}
</div> </div>
) )
@ -44,7 +44,7 @@ const {
{ {
items.map(({ name, value }) => ( items.map(({ name, value }) => (
<div class="text-center md:border-r md:last:border-none dark:md:border-slate-500 mb-12 md:mb-0"> <div class="text-center md:border-r md:last:border-none dark:md:border-slate-500 mb-12 md:mb-0">
<div class="text-[2.6rem] font-bold lg:text-5xl xl:text-6xl text-primary-800 dark:text-primary-600 font-heading"> <div class="text-[2.6rem] font-bold lg:text-5xl xl:text-6xl text-primary dark:text-blue-600 font-heading">
{value} {value}
</div> </div>
<p class="text-sm font-medium tracking-widest text-gray-800 dark:text-slate-400 uppercase lg:text-base"> <p class="text-sm font-medium tracking-widest text-gray-800 dark:text-slate-400 uppercase lg:text-base">

View File

@ -33,11 +33,11 @@ const {
<div class="flex flex-col items-center mr-4"> <div class="flex flex-col items-center mr-4">
<div> <div>
{index !== items.length - 1 ? ( {index !== items.length - 1 ? (
<div class="flex items-center justify-center w-10 h-10 rounded-full border-primary-800 dark:border-primary-700 border-2"> <div class="flex items-center justify-center w-10 h-10 rounded-full border-primary dark:border-blue-700 border-2">
{icon && <Icon name={icon} class="w-6 h-6 text-primary-800 dark:text-slate-200" />} {icon && <Icon name={icon} class="w-6 h-6 text-primary dark:text-slate-200" />}
</div> </div>
) : ( ) : (
<div class="flex items-center justify-center w-10 h-10 rounded-full border-primary-800 border-2 bg-primary-800 dark:bg-primary-700 dark:border-primary-700"> <div class="flex items-center justify-center w-10 h-10 rounded-full border-primary border-2 bg-primary dark:bg-blue-700 dark:border-blue-700">
<Icon name={icon} class="w-6 h-6 text-white dark:text-slate-200" /> <Icon name={icon} class="w-6 h-6 text-white dark:text-slate-200" />
</div> </div>
)} )}
@ -45,8 +45,8 @@ const {
<div class="w-px h-full bg-gray-300 dark:bg-slate-500" /> <div class="w-px h-full bg-gray-300 dark:bg-slate-500" />
</div> </div>
<div class={`pt-1 ${index !== items.length - 1 ? 'pb-8' : ''}`}> <div class={`pt-1 ${index !== items.length - 1 ? 'pb-8' : ''}`}>
{title && <p class="mb-2 text-xl font-bold text-gray-900 dark:text-slate-300" set:html={title} />} {title && <p class="mb-2 text-xl font-bold dark:text-slate-300" set:html={title} />}
{description && <p class="text-gray-600 dark:text-slate-400" set:html={description} />} {description && <p class="text-muted dark:text-slate-400" set:html={description} />}
</div> </div>
</div> </div>
)) ))

View File

@ -73,13 +73,13 @@ const {
{ {
highlight && ( highlight && (
<p <p
class="text-base text-primary-800 dark:text-primary-200 font-semibold tracking-wide uppercase" class="text-base text-primary dark:text-blue-200 font-semibold tracking-wide uppercase"
set:html={highlight} set:html={highlight}
/> />
) )
} }
{title && <h2 class="mb-4 text-3xl lg:text-4xl font-bold font-heading" set:html={title} />} {title && <h2 class="mb-4 text-3xl lg:text-4xl font-bold font-heading" set:html={title} />}
{subtitle && <p class="mb-8 text-xl text-gray-600 dark:text-slate-400" set:html={subtitle} />} {subtitle && <p class="mb-8 text-xl text-muted dark:text-slate-400" set:html={subtitle} />}
<div class="w-full"> <div class="w-full">
{ {
@ -106,13 +106,13 @@ const {
? items.map(({ title: title2, description, icon }, index) => ( ? items.map(({ title: title2, description, icon }, index) => (
<li class="flex md:-mx-4"> <li class="flex md:-mx-4">
<div class="pr-4 sm:pl-4"> <div class="pr-4 sm:pl-4">
<span class="flex w-16 h-16 mx-auto items-center justify-center text-2xl font-bold rounded-full bg-primary-100 text-primary-800"> <span class="flex w-16 h-16 mx-auto items-center justify-center text-2xl font-bold rounded-full bg-blue-100 text-primary">
{icon ? <Icon name={icon} class="w-6 h-6 icon-bold" /> : index + 1} {icon ? <Icon name={icon} class="w-6 h-6 icon-bold" /> : index + 1}
</span> </span>
</div> </div>
<div class="pl-4"> <div class="pl-4">
<h3 class="mb-4 text-xl font-semibold font-heading" set:html={title2} /> <h3 class="mb-4 text-xl font-semibold font-heading" set:html={title2} />
<p class="text-gray-500 dark:text-gray-400" set:html={description} /> <p class="text-muted dark:text-gray-400" set:html={description} />
</div> </div>
</li> </li>
)) ))

View File

@ -21,7 +21,7 @@ const { language = 'en', textDirection = 'ltr' } = SITE;
<MetaTags {...meta} /> <MetaTags {...meta} />
</head> </head>
<body class="antialiased text-gray-900 dark:text-slate-300 tracking-tight bg-white dark:bg-dark"> <body class="antialiased text-page bg-light dark:text-slate-300 tracking-tight dark:bg-dark">
<slot /> <slot />
<BasicScripts /> <BasicScripts />
<style is:global> <style is:global>

View File

@ -16,7 +16,7 @@ const meta: MetaSEO = {
<section class="px-4 py-16 sm:px-6 mx-auto lg:px-8 lg:py-20 max-w-4xl"> <section class="px-4 py-16 sm:px-6 mx-auto lg:px-8 lg:py-20 max-w-4xl">
<h1 class="font-bold font-heading text-3xl md:text-4xl leading-tighter tracking-tighter">{frontmatter.title}</h1> <h1 class="font-bold font-heading text-3xl md:text-4xl leading-tighter tracking-tighter">{frontmatter.title}</h1>
<div <div
class="mx-auto prose prose-lg max-w-4xl dark:prose-invert dark:prose-headings:text-slate-300 prose-md prose-headings:font-heading prose-headings:leading-tighter prose-headings:tracking-tighter prose-headings:font-bold prose-a:text-primary-600 dark:prose-a:text-primary-400 prose-img:rounded-md prose-img:shadow-lg mt-8" class="mx-auto prose prose-lg max-w-4xl dark:prose-invert dark:prose-headings:text-slate-300 prose-md prose-headings:font-heading prose-headings:leading-tighter prose-headings:tracking-tighter prose-headings:font-bold prose-a:text-blue-600 dark:prose-a:text-blue-400 prose-img:rounded-md prose-img:shadow-lg mt-8"
> >
<slot /> <slot />
</div> </div>

View File

@ -17,7 +17,7 @@ const { meta } = Astro.props;
<Layout {meta}> <Layout {meta}>
<Announcement /> <Announcement />
<Header {...headerData} /> <Header {...headerData} isFixed />
<main> <main>
<slot /> <slot />
</main> </main>

View File

@ -11,10 +11,10 @@ const title = `Error 404`;
<div class="max-w-md text-center"> <div class="max-w-md text-center">
<h2 class="mb-8 font-bold text-9xl"> <h2 class="mb-8 font-bold text-9xl">
<span class="sr-only">Error</span> <span class="sr-only">Error</span>
<span class="bg-clip-text text-transparent bg-gradient-to-r from-primary-500 to-secondary-500">404</span> <span class="text-primary">404</span>
</h2> </h2>
<p class="text-3xl font-semibold md:text-3xl">Sorry, we couldn't find this page.</p> <p class="text-3xl font-semibold md:text-3xl">Sorry, we couldn't find this page.</p>
<p class="mt-4 mb-8 text-lg text-gray-600 dark:text-slate-400"> <p class="mt-4 mb-8 text-lg text-muted dark:text-slate-400">
But dont worry, you can find plenty of other things on our homepage. But dont worry, you can find plenty of other things on our homepage.
</p> </p>
<a rel="noopener noreferrer" href={getHomePermalink()} class="btn ml-4">Back to homepage</a> <a rel="noopener noreferrer" href={getHomePermalink()} class="btn ml-4">Back to homepage</a>

View File

@ -30,7 +30,7 @@ const meta = {
> >
<Fragment slot="title"> <Fragment slot="title">
Free template for <span class="hidden lg:inline">create your website <br />with</span> Free template for <span class="hidden lg:inline">create your website <br />with</span>
<span class="text-violet-700 dark:text-white highlight"> Astro v2</span> + Tailwind CSS <span class="text-accent dark:text-white highlight"> Astro v2</span> + Tailwind CSS
</Fragment> </Fragment>
<Fragment slot="subtitle"> <Fragment slot="subtitle">
@ -38,7 +38,7 @@ const meta = {
<span class="font-semibold">AstroWind</span> is a free, customizable and production-ready template for Astro 2 + <span class="font-semibold">AstroWind</span> is a free, customizable and production-ready template for Astro 2 +
Tailwind CSS.</span Tailwind CSS.</span
> >
<span class="block mb-1 sm:hidden font-bold text-primary-600">AstroWind: Production-ready.</span> Suitable for Startups, <span class="block mb-1 sm:hidden font-bold text-blue-600">AstroWind: Production-ready.</span> Suitable for Startups,
Small Business, Sass Websites, Professional Portfolios, Marketing Websites, Landing Pages & Blogs. Small Business, Sass Websites, Professional Portfolios, Marketing Websites, Landing Pages & Blogs.
</Fragment> </Fragment>
</Hero> </Hero>
@ -125,10 +125,9 @@ const meta = {
}} }}
> >
<Fragment slot="content"> <Fragment slot="content">
<h3 class="text-2xl font-bold tracking-tight text-gray-900 dark:text-white sm:text-3xl mb-2"> <h3 class="text-2xl font-bold tracking-tight dark:text-white sm:text-3xl mb-2">Ad vix debet docendi</h3>
Ad vix debet docendi Ne dicta praesent ocurreret has, diam theophrastus at pro. Eos etiam regione ut, persius eripuit quo id. Sit te euismod
</h3> tacimates.
Ne dicta praesent ocurreret has, diam theophrastus at pro. Eos etiam regione ut, persius eripuit quo id. Sit te euismod tacimates.
</Fragment> </Fragment>
</Content> </Content>