Silcore Character Sheet
Rendering Silcore Sheet using Flexbox and pure CSS.
by Troy Alford
HTML
<div class="cs sheet silcore">
<div class="row title">Arual Kovak</div>
<div class="row">
<div class="col">
<div class="row header">Portrait</div>
<div class="picture" style="/*background-image: url(http://lorempixel.com/425/550/people)*/"></div>
<div class="row header">Attributes</div>
<div class="row two-up traits">
<div class="row entry">
<div class="name">Agi</div>
<div>1</div>
</div>
<div class="row entry">
<div class="name">App</div>
<div>0</div>
</div>
<div class="row entry">
<div class="name">Bld</div>
<div>1</div>
</div>
<div class="row entry">
<div class="name">Cre</div>
<div>0</div>
</div>
<div class="row entry">
<div class="name">Fit</div>
<div>1</div>
</div>
<div class="row entry">
<div class="name">Inf</div>
<div>0</div>
</div>
<div class="row entry">
<div class="name">Kno</div>
<div>0</div>
</div>
<div class="row entry">
<div class="name">Per</div>
<div>0</div>
</div>
<div class="row entry">
<div class="name">Psy</div>
<div>1</div>
</div>
<div class="row entry">
<div class="name">Wil</div>
<div>2</div>
</div>
</div>
<div class="row header">Secondary Traits</div>
<div class="row two-up traits">
<div class="row entry">
<div class="name">Str</div>
<div>1</div>
</div>
<div class="row entry">
<div class="name">Hea</div>
<div>1</div>
</div>
<div class="row entry">
<div class="name">UD</div>
<div>5</div>
</div>
<div class="row entry">
<div class="name">Flesh Wnd</div>
<div>18 (38)</div>
</div>
<div...
CSS
/* Generic Sheet Rules */
@import url(https://fonts.googleapis.com/css?family=Ubuntu);
.cs.sheet,
.cs.sheet * {
box-sizing: border-box;
}
.cs.sheet {
align-content: flex-start;
border: 0;
box-shadow: 1px 1px 15px #eeeeee, -1px -1px 15px #eeeeee;
display: flex;
flex-flow: row wrap;
height: 11in;
width: 8.5in;
padding: .25in;
margin: .5in auto;
}
.cs.sheet > .row > * {
margin: 5px;
}
.cs.sheet .row,
.cs.sheet .col {
display: flex;
}
.cs.sheet .row {
align-items: flex-start;
align-content: flex-start;
flex: 1 1 calc(90%);
flex-flow: row wrap;
}
.cs.sheet .col {
flex: 1 1 calc(20%);
flex-flow: column wrap;
}
.cs.sheet .col.c-2 {
flex: 1 1 calc(50%);
}
.cs.sheet .col.c-3 {
flex: 1 1 auto;
}
/* Silcore Specific Rules */
.cs.silcore .row .header {
border-width: 0 0 1px 0;
-webkit-border-image: linear-gradient(left, #003366, #2eccfa 40%, #ffffff) 100% 1;
-khtml-border-image: linear-gradient(left, #003366, #2eccfa 40%, #ffffff) 100% 1;
-moz-border-image: linear-gradient(left, #003366, #2eccfa 40%, #ffffff) 100% 1;
-o-border-image: linear-gradient(left, #003366, #2eccfa 40%, #ffffff) 100% 1;
border-image: linear-gradient(left, #003366, #2eccfa 40%, #ffffff) 100% 1;
color: #333;
flex: 1 1 100%;
font-family: Ubuntu;
font-size: 0.8rem;
font-weight: bold;
height: 30px;
min-height: 30px;
max-height: 30px;
padding: 8px 0 8px 0;
text-align: left;
text-shadow: 2px 1px #ddd;
}
.cs.silcore .row .header.row {
border-width: 0 0 3px 0;
font-size: 1.1rem;
margin: 0 0 8px 0;
}
.cs.silcore .row:not(.two-up) > .entry:not(.header):nth-child(even) {
background-color: #f0f9f9;
}
.cs.silcore .row.title {
border-bottom: 1px solid;
font-size: 1.5rem;
font-weight: bold;
justify-content: flex-end;
padding: 8px;
}
.cs.silcore .picture {
border: 20px solid #eee;
box-shadow: -1px -1px 0 0 rgba(0, 0, 0, 0.7), 1px 1px 0 0 rgba(0, 0, 0, 0.7), 1px -1px 0 0 rgba(0, 0, 0, 0.7), -1px 1px 0 0 rgba(0, 0, 0, 0.7),...