update cards style
This commit is contained in:
parent
525d4de3cd
commit
5bde1eb8d3
4 changed files with 164 additions and 12 deletions
|
|
@ -4,10 +4,20 @@
|
||||||
/* Variables prefixed with prj to avoid collisions */
|
/* Variables prefixed with prj to avoid collisions */
|
||||||
:root {
|
:root {
|
||||||
/* Using catppuccin for now, make a theme switcher later */
|
/* Using catppuccin for now, make a theme switcher later */
|
||||||
--prj-bg: var(--ctp-macchiato-base);
|
/* Colors are inspired by Material Design: https://m2.material.io/design/color/the-color-system.html */
|
||||||
|
--prj-bg: var(--ctp-macchiato-mantle);
|
||||||
--prj-text: var(--ctp-macchiato-text);
|
--prj-text: var(--ctp-macchiato-text);
|
||||||
|
|
||||||
|
--prj-surface-1: var(--ctp-macchiato-base);
|
||||||
|
--prj-surface-2: var(--ctp-macchiato-surface0);
|
||||||
|
--prj-surface-3: var(--ctp-macchiato-surface1);
|
||||||
|
--prj-surface-text: var(--ctp-macchiato-text);
|
||||||
|
|
||||||
--prj-link-text: var(--ctp-macchiato-teal);
|
--prj-link-text: var(--ctp-macchiato-teal);
|
||||||
|
|
||||||
--prj-accent-bg: var(--ctp-macchiato-teal);
|
--prj-accent-bg: var(--ctp-macchiato-teal);
|
||||||
--prj-accent-text: var(--ctp-macchiato-base);
|
--prj-accent-text: var(--ctp-macchiato-base);
|
||||||
|
|
||||||
|
--prj-primary: var(--ctp-macchiato-teal);
|
||||||
|
--prj-primary-text: var(--ctp-macchiato-base);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,16 @@
|
||||||
align-items: center;
|
align-items: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.vstack {
|
||||||
|
--prj-gap: var(--prj-spacing-3);
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
}
|
||||||
|
|
||||||
|
.flex-grow {
|
||||||
|
flex-grow: 1;
|
||||||
|
}
|
||||||
|
|
||||||
.grid {
|
.grid {
|
||||||
--prj-gap: var(--prj-spacing-3);
|
--prj-gap: var(--prj-spacing-3);
|
||||||
--prj-columns: repeat(3, 1fr);
|
--prj-columns: repeat(3, 1fr);
|
||||||
|
|
@ -109,3 +119,111 @@
|
||||||
.text-end {
|
.text-end {
|
||||||
text-align: end;
|
text-align: end;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Start Margins */
|
||||||
|
.m-1 {
|
||||||
|
margin: var(--prj-spacing-1);
|
||||||
|
}
|
||||||
|
.m-2 {
|
||||||
|
margin: var(--prj-spacing-2);
|
||||||
|
}
|
||||||
|
.m-3 {
|
||||||
|
margin: var(--prj-spacing-3);
|
||||||
|
}
|
||||||
|
.m-4 {
|
||||||
|
margin: var(--prj-spacing-4);
|
||||||
|
}
|
||||||
|
.m-5 {
|
||||||
|
margin: var(--prj-spacing-5);
|
||||||
|
}
|
||||||
|
.mx-1 {
|
||||||
|
margin-right: var(--prj-spacing-1) 0;
|
||||||
|
}
|
||||||
|
.mx-2 {
|
||||||
|
margin-right: var(--prj-spacing-2) 0;
|
||||||
|
}
|
||||||
|
.mx-3 {
|
||||||
|
margin-right: var(--prj-spacing-3) 0;
|
||||||
|
}
|
||||||
|
.mx-4 {
|
||||||
|
margin-right: var(--prj-spacing-4) 0;
|
||||||
|
}
|
||||||
|
.mx-5 {
|
||||||
|
margin-right: var(--prj-spacing-5) 0;
|
||||||
|
}
|
||||||
|
.my-1 {
|
||||||
|
margin-right: 0 var(--prj-spacing-1);
|
||||||
|
}
|
||||||
|
.my-2 {
|
||||||
|
margin-right: 0 var(--prj-spacing-2);
|
||||||
|
}
|
||||||
|
.my-3 {
|
||||||
|
margin-right: 0 var(--prj-spacing-3);
|
||||||
|
}
|
||||||
|
.my-4 {
|
||||||
|
margin-right: 0 var(--prj-spacing-4);
|
||||||
|
}
|
||||||
|
.my-5 {
|
||||||
|
margin-right: 0 var(--prj-spacing-5);
|
||||||
|
}
|
||||||
|
.mt-1 {
|
||||||
|
margin-top: var(--prj-spacing-1);
|
||||||
|
}
|
||||||
|
.mt-2 {
|
||||||
|
margin-top: var(--prj-spacing-2);
|
||||||
|
}
|
||||||
|
.mt-3 {
|
||||||
|
margin-top: var(--prj-spacing-3);
|
||||||
|
}
|
||||||
|
.mt-4 {
|
||||||
|
margin-top: var(--prj-spacing-4);
|
||||||
|
}
|
||||||
|
.mt-5 {
|
||||||
|
margin-top: var(--prj-spacing-5);
|
||||||
|
}
|
||||||
|
.mb-1 {
|
||||||
|
margin-bottom: var(--prj-spacing-1);
|
||||||
|
}
|
||||||
|
.mb-2 {
|
||||||
|
margin-bottom: var(--prj-spacing-2);
|
||||||
|
}
|
||||||
|
.mb-3 {
|
||||||
|
margin-bottom: var(--prj-spacing-3);
|
||||||
|
}
|
||||||
|
.mb-4 {
|
||||||
|
margin-bottom: var(--prj-spacing-4);
|
||||||
|
}
|
||||||
|
.mb-5 {
|
||||||
|
margin-bottom: var(--prj-spacing-5);
|
||||||
|
}
|
||||||
|
.ml-1 {
|
||||||
|
margin-left: var(--prj-spacing-1);
|
||||||
|
}
|
||||||
|
.ml-2 {
|
||||||
|
margin-left: var(--prj-spacing-2);
|
||||||
|
}
|
||||||
|
.ml-3 {
|
||||||
|
margin-left: var(--prj-spacing-3);
|
||||||
|
}
|
||||||
|
.ml-4 {
|
||||||
|
margin-left: var(--prj-spacing-4);
|
||||||
|
}
|
||||||
|
.ml-5 {
|
||||||
|
margin-left: var(--prj-spacing-5);
|
||||||
|
}
|
||||||
|
.mr-1 {
|
||||||
|
margin-right: var(--prj-spacing-1);
|
||||||
|
}
|
||||||
|
.mr-2 {
|
||||||
|
margin-right: var(--prj-spacing-2);
|
||||||
|
}
|
||||||
|
.mr-3 {
|
||||||
|
margin-right: var(--prj-spacing-3);
|
||||||
|
}
|
||||||
|
.mr-4 {
|
||||||
|
margin-right: var(--prj-spacing-4);
|
||||||
|
}
|
||||||
|
.mr-5 {
|
||||||
|
margin-right: var(--prj-spacing-5);
|
||||||
|
}
|
||||||
|
/* End Margins */
|
||||||
|
|
|
||||||
|
|
@ -8,12 +8,12 @@ export interface Props {
|
||||||
const { href, title, body } = Astro.props;
|
const { href, title, body } = Astro.props;
|
||||||
---
|
---
|
||||||
|
|
||||||
<div class="card">
|
<div class="card vstack">
|
||||||
<div class="title">
|
<div class="title">
|
||||||
<slot name="title" />
|
<slot name="title" />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="content">
|
<div class="content flex-grow mb-3">
|
||||||
<slot />
|
<slot />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
@ -24,12 +24,22 @@ const { href, title, body } = Astro.props;
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
.card {
|
.card {
|
||||||
|
background-color: var(--prj-surface-1);
|
||||||
|
color: var(--prj-surface-text);
|
||||||
border: 1px solid var(--prj-accent-bg);
|
border: 1px solid var(--prj-accent-bg);
|
||||||
border-radius: 8px;
|
border-radius: 8px;
|
||||||
|
|
||||||
padding: var(--prj-spacing-2) var(--prj-spacing-3);
|
padding: var(--prj-spacing-2) var(--prj-spacing-3);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.card :global(a) {
|
||||||
|
text-decoration-line: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.card :global(a):hover {
|
||||||
|
text-decoration-line: underline;
|
||||||
|
}
|
||||||
|
|
||||||
.title > :global(:last-child) {
|
.title > :global(:last-child) {
|
||||||
margin-bottom: var(--prj-spacing-2);
|
margin-bottom: var(--prj-spacing-2);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,11 @@
|
||||||
---
|
---
|
||||||
|
import { getCollection } from 'astro:content';
|
||||||
import Layout from '../layouts/Layout.astro';
|
import Layout from '../layouts/Layout.astro';
|
||||||
import Card from '../components/Card.astro';
|
import Card from '../components/Card.astro';
|
||||||
import { Image } from 'astro:assets';
|
import { Image } from 'astro:assets';
|
||||||
|
|
||||||
import portrait from '../assets/images/portrait.jpg';
|
import portrait from '../assets/images/portrait.jpg';
|
||||||
|
const games = await getCollection('games', (_, idx) => idx < 3);
|
||||||
---
|
---
|
||||||
|
|
||||||
<Layout title="aleidk">
|
<Layout title="aleidk">
|
||||||
|
|
@ -32,9 +34,9 @@ import portrait from '../assets/images/portrait.jpg';
|
||||||
<Card>
|
<Card>
|
||||||
<h3 slot="title">Portafolio</h3>
|
<h3 slot="title">Portafolio</h3>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="">Entry 1</a></li>
|
<li><a href="">This is a project X</a></li>
|
||||||
<li><a href="">Entry 2</a></li>
|
<li><a href="">This is a project Y</a></li>
|
||||||
<li><a href="">Entry 3</a></li>
|
<li><a href="">This is a project Z</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<div slot="footer" class="text-end">
|
<div slot="footer" class="text-end">
|
||||||
<a href="">See more...</a>
|
<a href="">See more...</a>
|
||||||
|
|
@ -44,9 +46,17 @@ import portrait from '../assets/images/portrait.jpg';
|
||||||
<Card>
|
<Card>
|
||||||
<h3 slot="title">Blog</h3>
|
<h3 slot="title">Blog</h3>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="">Entry 1</a></li>
|
<li><a href="">How I do X thing because I wanted</a></li>
|
||||||
<li><a href="">Entry 2</a></li>
|
<li>
|
||||||
<li><a href="">Entry 3</a></li>
|
<a href=""
|
||||||
|
>The day I discover something marvelous and everything was better</a
|
||||||
|
>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href=""
|
||||||
|
>This is a clickbait title trying to make you enter this article</a
|
||||||
|
>
|
||||||
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<div slot="footer" class="text-end">
|
<div slot="footer" class="text-end">
|
||||||
<a href="">See more...</a>
|
<a href="">See more...</a>
|
||||||
|
|
@ -56,9 +66,13 @@ import portrait from '../assets/images/portrait.jpg';
|
||||||
<Card>
|
<Card>
|
||||||
<h3 slot="title">Games</h3>
|
<h3 slot="title">Games</h3>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="">Entry 1</a></li>
|
{
|
||||||
<li><a href="">Entry 2</a></li>
|
games.map((item) => (
|
||||||
<li><a href="">Entry 3</a></li>
|
<li>
|
||||||
|
<a href={`games/${item.slug}`}>{item.data.Title}</a>
|
||||||
|
</li>
|
||||||
|
))
|
||||||
|
}
|
||||||
</ul>
|
</ul>
|
||||||
<div slot="footer" class="text-end">
|
<div slot="footer" class="text-end">
|
||||||
<a href="">See more...</a>
|
<a href="">See more...</a>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue