working on css design system
parent
3885b5135b
commit
fb43eddefc
@ -1,13 +0,0 @@
|
||||
---
|
||||
const { id, title, tags, description } = Astro.props
|
||||
---
|
||||
|
||||
<div class="article">
|
||||
<div class="title">
|
||||
<a href={`/guide/${id}`}>{title}</a>
|
||||
</div>
|
||||
<div class="description">{description}</div>
|
||||
<div class="tags">
|
||||
{tags.map(tag => <a href={`/guide/tags/${tag}`}>#{tag}</a>)}
|
||||
</div>
|
||||
</div>
|
@ -1,25 +0,0 @@
|
||||
---
|
||||
const { id, title, tags, description, image, date, author } = Astro.props
|
||||
---
|
||||
|
||||
<div class="news-item">
|
||||
<a href={`/notizie/${id}`} class="title">
|
||||
{title}
|
||||
</a>
|
||||
<div class="content">
|
||||
<div class="date">
|
||||
{
|
||||
new Date(date).toLocaleDateString('it-IT', {
|
||||
year: 'numeric',
|
||||
month: 'long',
|
||||
day: 'numeric',
|
||||
})
|
||||
}
|
||||
</div>
|
||||
<div class="description">{description}</div>
|
||||
<div class="tags">
|
||||
{tags.map(tag => <a href={`/notizie/tags/${tag}`}>#{tag}</a>)}
|
||||
</div>
|
||||
{image && <img src={image} alt={title} />}
|
||||
</div>
|
||||
</div>
|
@ -1,9 +1,7 @@
|
||||
---
|
||||
title: Il Nuovo Sito del PHC
|
||||
description: Benvenuti nel nuovo sito web del PHC, realizzato con la tecnologia web Astro! In questo articolo, ne vedremo le feature principali e cosa serba il futuro.
|
||||
author: Francesco Minnocci
|
||||
publishDate: 2024-07-28
|
||||
tags: [astro, web, appunti]
|
||||
---
|
||||
|
||||
# Il Nuovo Sito del PHC
|
@ -1,378 +1,428 @@
|
||||
$news-bg: #fffbeb;
|
||||
$news-accent-bg: #f8e8b1;
|
||||
// $news-bg: #fffbeb;
|
||||
// $news-accent-bg: #f8e8b1;
|
||||
|
||||
@import './mixins.scss';
|
||||
|
||||
//
|
||||
// Components - for complex parts of the UI like search bars or compound buttons
|
||||
//
|
||||
|
||||
.material-symbols-outlined {
|
||||
display: inline-grid;
|
||||
place-content: center;
|
||||
|
||||
font-size: 24px;
|
||||
font-variation-settings: 'FILL' 0, 'wght' 300, 'GRAD' 0, 'opsz' 24;
|
||||
}
|
||||
|
||||
.title {
|
||||
font-family: 'Iosevka', monospace;
|
||||
font-weight: 700;
|
||||
font-size: 28px;
|
||||
}
|
||||
|
||||
.search {
|
||||
width: 100%;
|
||||
height: 2.5rem;
|
||||
|
||||
@include neo-brutalist-card;
|
||||
|
||||
display: grid;
|
||||
grid-template-columns: 1fr auto;
|
||||
align-items: center;
|
||||
|
||||
cursor: pointer;
|
||||
|
||||
background: #fff;
|
||||
|
||||
&:hover,
|
||||
&:hover input[type='text'] {
|
||||
background: #f8f8f8;
|
||||
}
|
||||
|
||||
input[type='text'] {
|
||||
border: none;
|
||||
box-shadow: none;
|
||||
outline: none;
|
||||
height: 100%;
|
||||
|
||||
padding: 0;
|
||||
padding-left: 0.35rem;
|
||||
}
|
||||
@layer component {
|
||||
//
|
||||
// Components - for complex parts of the UI like search bars or compound buttons
|
||||
//
|
||||
|
||||
.material-symbols-outlined {
|
||||
padding: 0 0.5rem;
|
||||
}
|
||||
}
|
||||
|
||||
.flex-column {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 1rem;
|
||||
}
|
||||
|
||||
.flex-row {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
gap: 1rem;
|
||||
}
|
||||
|
||||
// just to know for reference
|
||||
.fake-masonry {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(var(--columns), 1fr);
|
||||
grid-auto-flow: dense;
|
||||
display: inline-grid;
|
||||
place-content: center;
|
||||
|
||||
& > * {
|
||||
grid-row: span var(--masonry-height);
|
||||
font-size: 24px;
|
||||
font-variation-settings: 'FILL' 0, 'wght' 300, 'GRAD' 0, 'opsz' 24;
|
||||
}
|
||||
}
|
||||
|
||||
.search-results {
|
||||
width: 100%;
|
||||
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 1rem;
|
||||
.title {
|
||||
font-family: 'Iosevka', monospace;
|
||||
font-weight: 700;
|
||||
font-size: 28px;
|
||||
}
|
||||
|
||||
.search-result {
|
||||
.search {
|
||||
width: 100%;
|
||||
height: 2.5rem;
|
||||
|
||||
display: grid;
|
||||
grid-template-columns: auto auto 1fr auto;
|
||||
grid-template-areas: 'icon text . right';
|
||||
@include neo-brutalist-card;
|
||||
|
||||
display: grid;
|
||||
grid-template-columns: 1fr auto;
|
||||
align-items: center;
|
||||
|
||||
gap: 0.5rem;
|
||||
|
||||
padding: 0.5rem;
|
||||
cursor: pointer;
|
||||
|
||||
background: #fff;
|
||||
|
||||
@include neo-brutalist-card;
|
||||
|
||||
a {
|
||||
display: contents;
|
||||
&:hover,
|
||||
&:hover input[type='text'] {
|
||||
background: #f8f8f8;
|
||||
}
|
||||
|
||||
& > .icon {
|
||||
grid-area: icon;
|
||||
display: grid;
|
||||
}
|
||||
input[type='text'] {
|
||||
border: none;
|
||||
box-shadow: none;
|
||||
outline: none;
|
||||
height: 100%;
|
||||
|
||||
& > .text {
|
||||
grid-area: text;
|
||||
display: grid;
|
||||
padding: 0;
|
||||
padding-left: 0.35rem;
|
||||
}
|
||||
|
||||
& > .right {
|
||||
grid-area: right;
|
||||
display: grid;
|
||||
.material-symbols-outlined {
|
||||
padding: 0 0.5rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.appunti-scrollable {
|
||||
display: flex;
|
||||
overflow-x: auto;
|
||||
|
||||
.appunti-list {
|
||||
padding: 2px;
|
||||
padding-bottom: 1rem;
|
||||
.flex-column {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 1rem;
|
||||
}
|
||||
}
|
||||
|
||||
.appunti-list {
|
||||
display: grid;
|
||||
grid-auto-flow: column;
|
||||
|
||||
gap: 3rem;
|
||||
|
||||
overflow-x: auto;
|
||||
.flex-row {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
gap: 1rem;
|
||||
}
|
||||
|
||||
max-width: 100%;
|
||||
}
|
||||
// just to know for reference
|
||||
.fake-masonry {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(var(--columns), 1fr);
|
||||
grid-auto-flow: dense;
|
||||
|
||||
.appunti-item {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 0.25rem;
|
||||
& > * {
|
||||
grid-row: span var(--masonry-height);
|
||||
}
|
||||
}
|
||||
|
||||
color: #444;
|
||||
.search-results {
|
||||
width: 100%;
|
||||
|
||||
& > .thumbnail {
|
||||
width: 10rem;
|
||||
aspect-ratio: 10 / 14;
|
||||
background: #e0e0e0;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 1rem;
|
||||
|
||||
@include neo-brutalist-card($hoverable: true);
|
||||
}
|
||||
.search-result {
|
||||
width: 100%;
|
||||
|
||||
& > .thumbnail + * {
|
||||
font-weight: 700;
|
||||
padding-top: 0.25rem;
|
||||
}
|
||||
display: grid;
|
||||
grid-template-columns: auto auto 1fr auto;
|
||||
grid-template-areas: 'icon text . right';
|
||||
|
||||
& > .title,
|
||||
& > .course,
|
||||
& > .author,
|
||||
& > .course-year {
|
||||
padding-left: 0.5rem;
|
||||
font-size: 16px;
|
||||
}
|
||||
}
|
||||
align-items: center;
|
||||
|
||||
.article-list {
|
||||
display: grid;
|
||||
grid-auto-flow: row;
|
||||
gap: 0.5rem;
|
||||
|
||||
max-width: 100%;
|
||||
padding: 0.5rem;
|
||||
|
||||
gap: 2rem;
|
||||
grid-template-columns: repeat(auto-fill, minmax(25rem, 1fr));
|
||||
grid-auto-rows: auto;
|
||||
background: #fff;
|
||||
|
||||
.article {
|
||||
display: grid;
|
||||
grid-template-rows: auto auto auto;
|
||||
@include neo-brutalist-card;
|
||||
|
||||
background: var(--card-bg, $project-card-bg);
|
||||
color: #000e;
|
||||
a {
|
||||
display: contents;
|
||||
}
|
||||
|
||||
@include neo-brutalist-card($size: 3px, $offset: 9px);
|
||||
& > .icon {
|
||||
grid-area: icon;
|
||||
display: grid;
|
||||
}
|
||||
|
||||
row-gap: 0.5rem;
|
||||
padding: 1rem;
|
||||
& > .text {
|
||||
grid-area: text;
|
||||
display: grid;
|
||||
}
|
||||
|
||||
.description {
|
||||
font-size: 16px;
|
||||
& > .right {
|
||||
grid-area: right;
|
||||
display: grid;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.tags {
|
||||
display: flex;
|
||||
gap: 0.5rem;
|
||||
flex-wrap: wrap;
|
||||
font-size: 14px;
|
||||
font-weight: 600;
|
||||
color: #555;
|
||||
.appunti-scrollable {
|
||||
display: flex;
|
||||
overflow-x: auto;
|
||||
|
||||
.appunti-list {
|
||||
padding: 2px;
|
||||
padding-bottom: 1rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.news-list {
|
||||
display: grid;
|
||||
grid-auto-flow: column;
|
||||
.appunti-list {
|
||||
display: grid;
|
||||
grid-auto-flow: column;
|
||||
|
||||
.news-item {
|
||||
background: $news-bg;
|
||||
color: #111;
|
||||
gap: 3rem;
|
||||
|
||||
@include neo-brutalist-card($size: 3px, $offset: 9px);
|
||||
overflow-x: auto;
|
||||
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
.appunti-item {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 0.25rem;
|
||||
|
||||
width: 22rem;
|
||||
max-height: 27rem;
|
||||
color: #444;
|
||||
|
||||
overflow: hidden;
|
||||
& > .thumbnail {
|
||||
width: 10rem;
|
||||
aspect-ratio: 10 / 14;
|
||||
background: #e0e0e0;
|
||||
|
||||
::-webkit-scrollbar {
|
||||
width: 10px;
|
||||
@include neo-brutalist-card($hoverable: true);
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-thumb {
|
||||
background-color: #c67e14;
|
||||
border: 2px solid #222;
|
||||
|
||||
&:hover {
|
||||
background-color: #e69419;
|
||||
}
|
||||
& > .thumbnail + * {
|
||||
font-weight: 700;
|
||||
padding-top: 0.25rem;
|
||||
}
|
||||
|
||||
a {
|
||||
font-weight: 600;
|
||||
text-decoration: none;
|
||||
color: #c67e14;
|
||||
|
||||
&:hover {
|
||||
text-decoration: underline solid 2px;
|
||||
}
|
||||
& > .title,
|
||||
& > .course,
|
||||
& > .author,
|
||||
& > .course-year {
|
||||
padding-left: 0.5rem;
|
||||
font-size: 16px;
|
||||
}
|
||||
}
|
||||
|
||||
& > .title {
|
||||
padding: 1rem;
|
||||
background: $news-accent-bg;
|
||||
line-height: 1;
|
||||
font-size: 26px;
|
||||
}
|
||||
.article-list {
|
||||
display: grid;
|
||||
grid-auto-flow: row;
|
||||
|
||||
a.title {
|
||||
color: #83530c;
|
||||
}
|
||||
max-width: 100%;
|
||||
|
||||
& > .abstract {
|
||||
flex-grow: 1;
|
||||
gap: 2rem;
|
||||
grid-template-columns: repeat(auto-fill, minmax(25rem, 1fr));
|
||||
grid-auto-rows: auto;
|
||||
|
||||
padding: 1rem;
|
||||
.article {
|
||||
display: grid;
|
||||
grid-template-rows: auto auto auto;
|
||||
|
||||
overflow-y: auto;
|
||||
background: var(--card-bg, $project-card-bg);
|
||||
color: #000e;
|
||||
|
||||
@extend .text;
|
||||
}
|
||||
@include neo-brutalist-card($size: 3px, $offset: 9px);
|
||||
|
||||
& > .content {
|
||||
display: flex;
|
||||
row-gap: 0.5rem;
|
||||
padding: 1rem;
|
||||
flex-direction: column;
|
||||
gap: 0.5rem;
|
||||
|
||||
background: #fff8da;
|
||||
|
||||
& > .continue {
|
||||
padding: 1rem;
|
||||
|
||||
display: grid;
|
||||
align-items: end;
|
||||
justify-content: end;
|
||||
}
|
||||
|
||||
& > .description {
|
||||
.description {
|
||||
font-size: 16px;
|
||||
line-height: 1.5;
|
||||
|
||||
flex-grow: 1;
|
||||
}
|
||||
|
||||
& > .tags {
|
||||
.tags {
|
||||
display: flex;
|
||||
gap: 0.5rem;
|
||||
flex-wrap: wrap;
|
||||
font-size: 14px;
|
||||
color: #555;
|
||||
}
|
||||
|
||||
& > .date {
|
||||
font-size: 14px;
|
||||
font-style: italic;
|
||||
font-weight: 600;
|
||||
color: #0008;
|
||||
}
|
||||
|
||||
& > .author {
|
||||
font-weight: 600;
|
||||
font-size: 15px;
|
||||
color: #555;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// Cards
|
||||
//
|
||||
.news-list {
|
||||
display: grid;
|
||||
grid-auto-flow: column;
|
||||
|
||||
// .news-item {
|
||||
// background: $news-bg;
|
||||
// color: #111;
|
||||
|
||||
// @include neo-brutalist-card($size: 3px, $offset: 9px);
|
||||
|
||||
// display: flex;
|
||||
// flex-direction: column;
|
||||
|
||||
// width: 22rem;
|
||||
// max-height: 27rem;
|
||||
|
||||
// overflow: hidden;
|
||||
|
||||
// ::-webkit-scrollbar {
|
||||
// width: 10px;
|
||||
// }
|
||||
|
||||
// ::-webkit-scrollbar-thumb {
|
||||
// background-color: #c67e14;
|
||||
// border: 2px solid #222;
|
||||
|
||||
// &:hover {
|
||||
// background-color: #e69419;
|
||||
// }
|
||||
// }
|
||||
|
||||
// a {
|
||||
// font-weight: 600;
|
||||
// text-decoration: none;
|
||||
// color: #c67e14;
|
||||
|
||||
// &:hover {
|
||||
// text-decoration: underline solid 2px;
|
||||
// }
|
||||
// }
|
||||
|
||||
// & > .title {
|
||||
// padding: 1rem;
|
||||
// background: $news-accent-bg;
|
||||
// line-height: 1;
|
||||
// font-size: 26px;
|
||||
// }
|
||||
|
||||
// a.title {
|
||||
// color: #83530c;
|
||||
// }
|
||||
|
||||
// & > .abstract {
|
||||
// flex-grow: 1;
|
||||
|
||||
// padding: 1rem;
|
||||
|
||||
// overflow-y: auto;
|
||||
|
||||
// @extend .text;
|
||||
// }
|
||||
|
||||
// & > .content {
|
||||
// display: flex;
|
||||
// padding: 1rem;
|
||||
// flex-direction: column;
|
||||
// gap: 0.5rem;
|
||||
|
||||
// background: #fff8da;
|
||||
|
||||
// & > .continue {
|
||||
// padding: 1rem;
|
||||
|
||||
// display: grid;
|
||||
// align-items: end;
|
||||
// justify-content: end;
|
||||
// }
|
||||
|
||||
// & > .description {
|
||||
// font-size: 16px;
|
||||
// line-height: 1.5;
|
||||
|
||||
// flex-grow: 1;
|
||||
// }
|
||||
|
||||
// & > .tags {
|
||||
// display: flex;
|
||||
// gap: 0.5rem;
|
||||
// flex-wrap: wrap;
|
||||
// font-size: 14px;
|
||||
// color: #555;
|
||||
// }
|
||||
|
||||
// & > .date {
|
||||
// font-size: 14px;
|
||||
// font-style: italic;
|
||||
// font-weight: 600;
|
||||
// color: #0008;
|
||||
// }
|
||||
|
||||
// & > .author {
|
||||
// font-weight: 600;
|
||||
// font-size: 15px;
|
||||
// color: #555;
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
}
|
||||
|
||||
//
|
||||
// Cards
|
||||
//
|
||||
|
||||
.card {
|
||||
display: grid;
|
||||
|
||||
.card {
|
||||
display: grid;
|
||||
--card-base-internal: var(--card-base, #f8f8f8);
|
||||
|
||||
--card-base-internal: var(--card-base, #f8f8f8);
|
||||
background: var(--card-base-internal);
|
||||
color: color-mix(in srgb, var(--card-base-internal), #000 80%);
|
||||
|
||||
background: var(--card-base-internal);
|
||||
color: color-mix(in srgb, var(--card-base-internal), #000 80%);
|
||||
@include neo-brutalist-card($size: 3px, $offset: 9px);
|
||||
|
||||
@include neo-brutalist-card($size: 3px, $offset: 9px);
|
||||
row-gap: 0.5rem;
|
||||
padding: 1rem;
|
||||
|
||||
row-gap: 0.5rem;
|
||||
padding: 1rem;
|
||||
// Variants
|
||||
|
||||
// Variants
|
||||
&.large {
|
||||
padding: 2rem;
|
||||
|
||||
&.large {
|
||||
padding: 2rem;
|
||||
@include neo-brutalist-card($size: 4px, $offset: 8px);
|
||||
|
||||
@include neo-brutalist-card($size: 4px, $offset: 8px);
|
||||
row-gap: 1rem;
|
||||
|
||||
row-gap: 1rem;
|
||||
& > .title {
|
||||
font-size: 36px;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
& > .text {
|
||||
font-size: 18px;
|
||||
}
|
||||
}
|
||||
|
||||
// Child Items
|
||||
|
||||
& > .title {
|
||||
font-size: 36px;
|
||||
color: color-mix(in srgb, var(--card-base-internal), #000 75%);
|
||||
font-size: 26px;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
& > .text {
|
||||
font-size: 18px;
|
||||
font-size: 16px;
|
||||
|
||||
&.small {
|
||||
color: color-mix(in srgb, var(--card-base-internal), #000 75%);
|
||||
font-size: 14px;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
&.dimmed {
|
||||
color: color-mix(in srgb, var(--card-base-internal), #000 50%);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Child Items
|
||||
& > .tags {
|
||||
display: flex;
|
||||
gap: 0.5rem;
|
||||
flex-wrap: wrap;
|
||||
font-size: 14px;
|
||||
font-weight: 600;
|
||||
color: #555;
|
||||
|
||||
& > .title {
|
||||
color: color-mix(in srgb, var(--card-base-internal), #000 75%);
|
||||
font-size: 26px;
|
||||
font-weight: 700;
|
||||
}
|
||||
a {
|
||||
color: color-mix(in srgb, var(--card-base-internal), #000 60%);
|
||||
font-weight: 600;
|
||||
|
||||
& > .text {
|
||||
font-size: 16px;
|
||||
&:hover {
|
||||
text-decoration: underline solid 2px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
a:hover {
|
||||
text-decoration: underline solid 2px;
|
||||
}
|
||||
|
||||
a.title {
|
||||
&:hover {
|
||||
text-decoration: underline solid 3px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
& > .tags {
|
||||
display: flex;
|
||||
gap: 0.5rem;
|
||||
flex-wrap: wrap;
|
||||
font-size: 14px;
|
||||
font-weight: 600;
|
||||
color: #555;
|
||||
//
|
||||
// Card List
|
||||
//
|
||||
|
||||
.card-list {
|
||||
display: grid;
|
||||
grid-auto-flow: row;
|
||||
|
||||
max-width: 100%;
|
||||
|
||||
gap: 2rem;
|
||||
grid-template-columns: repeat(auto-fit, minmax(25rem, 1fr));
|
||||
grid-auto-rows: auto;
|
||||
|
||||
& > .card {
|
||||
max-width: 25rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue