82 lines
1.6 KiB
Text
82 lines
1.6 KiB
Text
<ul webc:root="override">
|
|
<li class="trait" webc:for="trait of traits">
|
|
<div class="icon-box"><icon :@icon="trait.icon"></icon></div>
|
|
<p class="type" @text="trait.type"></p>
|
|
<p class="text" @text="trait.text"></p>
|
|
</li>
|
|
</ul>
|
|
|
|
<style webc:scoped="trait-list">
|
|
:host {
|
|
display: grid;
|
|
grid-template-columns: repeat(auto-fit, minmax(12em, 1fr));
|
|
gap: 0.75em;
|
|
|
|
margin: 0;
|
|
padding: 0;
|
|
}
|
|
|
|
:host .trait {
|
|
display: grid;
|
|
grid-template-areas:
|
|
'icon type'
|
|
'icon data';
|
|
grid-template-rows: auto 1fr;
|
|
grid-template-columns: auto 1fr;
|
|
column-gap: 0.75em;
|
|
justify-items: start;
|
|
}
|
|
|
|
:host .icon-box {
|
|
position: relative;
|
|
grid-area: icon;
|
|
|
|
width: 2em;
|
|
height: 2em;
|
|
|
|
background: linear-gradient(
|
|
to bottom right,
|
|
var(--clr-box-gradient-start) 0%,
|
|
var(--clr-box-gradient-end) 50%
|
|
);
|
|
|
|
box-shadow: 0.125em 0.125em 0.5em var(--clr-box-shadow);
|
|
border-radius: 0.5em;
|
|
overflow: hidden;
|
|
z-index: 1;
|
|
}
|
|
|
|
:host .icon-box::before {
|
|
content: '';
|
|
position: absolute;
|
|
inset: var(--border-thin);
|
|
background-color: var(--clr-box-background);
|
|
border-radius: inherit;
|
|
z-index: -1;
|
|
}
|
|
|
|
:host svg {
|
|
padding: 0.5em;
|
|
}
|
|
|
|
:host p {
|
|
margin-block: 0;
|
|
}
|
|
|
|
:host .type {
|
|
font-size: 0.625em;
|
|
color: var(--clr-heading-data);
|
|
text-align: left;
|
|
text-transform: uppercase;
|
|
grid-area: type;
|
|
}
|
|
|
|
:host .text {
|
|
font-size: 0.75em;
|
|
text-align: left;
|
|
margin-block: 0;
|
|
margin-inline: 0;
|
|
color: var(--clr-text);
|
|
grid-area: data;
|
|
}
|
|
</style>
|