mirror of
https://github.com/Nighthawk42/roll20-character-sheets.git
synced 2026-08-30 19:52:29 +00:00
- Implemented full script to generate the Roll20 character sheet. - Added functions to generate Spruchlisten HTML, compile Sass to CSS, and combine HTML and JS files into a final output. - Included logic to update the version in the JSON file if HTML or CSS files have changed.
569 lines
11 KiB
Sass
569 lines
11 KiB
Sass
.charsheet
|
|
|
|
.container
|
|
width: 870px
|
|
padding: 0
|
|
margin: 0
|
|
margin-left: -10px
|
|
|
|
input
|
|
background: transparent
|
|
width: 100%
|
|
border: 1px solid #ddd
|
|
border-radius: 3px
|
|
|
|
select
|
|
background: transparent
|
|
width: 100%
|
|
border: 1px solid #ddd
|
|
border-radius: 3px
|
|
|
|
input[type=number]
|
|
text-align: center
|
|
-moz-appearance: textfield
|
|
-webkit-appearance: textfield
|
|
|
|
input[type=checkbox]
|
|
width: auto
|
|
|
|
textarea
|
|
background: transparent
|
|
margin: 0
|
|
width: 100%
|
|
height: 65px
|
|
resize: vertical
|
|
box-sizing: border-box
|
|
border: 1px solid #ddd
|
|
border-radius: 3px
|
|
|
|
select
|
|
margin: 0
|
|
|
|
span
|
|
text-transform: uppercase
|
|
|
|
label
|
|
padding: 0
|
|
|
|
label.title
|
|
width: auto
|
|
display: block
|
|
margin-top: -19px
|
|
margin-bottom: 0px
|
|
font-weight: normal
|
|
padding-left: 5px
|
|
font-size: 15px
|
|
|
|
div.title
|
|
padding-left: 5px
|
|
|
|
.input_label
|
|
cursor: pointer
|
|
|
|
.redbg
|
|
background-color: red
|
|
color: white
|
|
font-weight: bold
|
|
|
|
strong
|
|
font-weight: 900
|
|
|
|
.textcenter
|
|
text-align: center
|
|
|
|
.float
|
|
float: left
|
|
box-sizing: border-box
|
|
width: 99%
|
|
margin: 10px 5px 10px 0
|
|
|
|
.noborder
|
|
border: none
|
|
|
|
.half
|
|
max-width: 49%
|
|
|
|
.twice
|
|
display: grid
|
|
grid-template-columns: 49% 49%
|
|
grid-gap: 5px
|
|
|
|
.clear
|
|
clear: both
|
|
overflow: auto
|
|
|
|
.row
|
|
padding-top: 30px
|
|
margin-right: 0
|
|
margin-left: 0
|
|
|
|
&.twice::before,
|
|
&.twice::after
|
|
display: none
|
|
|
|
&.small
|
|
padding-top: 10px
|
|
|
|
&:first-child
|
|
padding-top: 0px
|
|
|
|
.options-flag,
|
|
.options-flag+span
|
|
position: absolute
|
|
top: -10px
|
|
left: -10px
|
|
|
|
.options-flag
|
|
opacity: 0
|
|
width: 16px !important
|
|
min-height: 16px
|
|
z-index: 2
|
|
|
|
&+span
|
|
white-space: nowrap
|
|
width: 16px
|
|
height: 16px
|
|
font-size: 16px
|
|
font-family: pictos
|
|
color: #bbb
|
|
cursor: pointer
|
|
margin-top: 0
|
|
display: none
|
|
text-transform: lowercase
|
|
|
|
~textarea
|
|
display: none
|
|
|
|
&:checked~textarea
|
|
display: inherit
|
|
|
|
.grid,
|
|
.items,
|
|
.repcontainer .repitem
|
|
display: grid
|
|
grid-gap: 5px
|
|
|
|
.items,
|
|
.repcontainer .repitem
|
|
margin-top: 5px
|
|
|
|
.grid>div
|
|
background-color: #f00
|
|
color: #FFF
|
|
font-weight: bold
|
|
text-align: center
|
|
|
|
.items input,
|
|
.items select,
|
|
.items button,
|
|
.repcontainer .repitem input,
|
|
.repcontainer .repitem select,
|
|
.repcontainer .repitem button
|
|
width: -webkit-fill-available
|
|
width: -moz-available
|
|
|
|
.repcontainer .repitem button.repcontrol_del
|
|
width: auto
|
|
|
|
.items div,
|
|
.repcontainer .repitem div
|
|
margin: auto 0
|
|
text-align: center
|
|
|
|
.switch
|
|
position: relative
|
|
display: inline-block
|
|
width: 40px
|
|
height: 24px
|
|
margin-top: -19px
|
|
margin-bottom: 0px
|
|
font-weight: normal
|
|
padding: 0px
|
|
font-size: 15px
|
|
|
|
.switch input
|
|
opacity: 0
|
|
width: 0
|
|
height: 0
|
|
|
|
.slider
|
|
position: absolute
|
|
cursor: pointer
|
|
top: 0
|
|
left: 0
|
|
right: 0
|
|
bottom: 0
|
|
background-color: #ccc
|
|
-webkit-transition: .4s
|
|
transition: .4s
|
|
|
|
.slider:before
|
|
position: absolute
|
|
content: ""
|
|
height: 16px
|
|
width: 16px
|
|
left: 4px
|
|
bottom: 4px
|
|
background-color: white
|
|
-webkit-transition: .4s
|
|
transition: .4s
|
|
|
|
input:checked+.slider
|
|
background-color: #f00
|
|
|
|
input:focus+.slider
|
|
box-shadow: 0 0 1px #f00
|
|
|
|
input:checked+.slider:before
|
|
-webkit-transform: translateX(16px)
|
|
-ms-transform: translateX(16px)
|
|
transform: translateX(16px)
|
|
|
|
.main
|
|
|
|
.ep
|
|
width: 190px
|
|
float: left
|
|
|
|
input,
|
|
label
|
|
float: left
|
|
margin-right: 5px
|
|
|
|
input:last-child,
|
|
label:last-child
|
|
margin-right: 0px
|
|
|
|
input
|
|
width: 50px
|
|
height: 40px
|
|
|
|
label[for="Stufe"],
|
|
label[for="AP"]
|
|
width: 50px
|
|
text-align: center
|
|
|
|
input[name="attr_ep"],
|
|
label[for="attr_ep"]
|
|
width: 80px
|
|
text-align: center
|
|
|
|
.vermoegen
|
|
width: 210px
|
|
float: right
|
|
padding-top: 0
|
|
|
|
div
|
|
width: 100%
|
|
|
|
input,
|
|
label
|
|
float: left
|
|
margin-left: 5px
|
|
|
|
input:first-child,
|
|
label:first-child
|
|
margin-left: 0px
|
|
|
|
input
|
|
width: 40px
|
|
height: 40px
|
|
|
|
label[for="attr_tt"],
|
|
label[for="attr_kl"],
|
|
label[for="attr_mu"]
|
|
width: 40px
|
|
text-align: center
|
|
|
|
input[name="attr_gf"],
|
|
label[for="attr_gf"]
|
|
width: 70px
|
|
text-align: center
|
|
|
|
.stats
|
|
float: left
|
|
|
|
>input,
|
|
>label,
|
|
>div
|
|
float: left
|
|
margin-right: 10px
|
|
|
|
input:last-child,
|
|
label:last-child,
|
|
div:last-child
|
|
margin-right: 0px
|
|
|
|
input
|
|
width: 50px
|
|
height: 40px
|
|
|
|
.moreleft
|
|
margin-left: -4px
|
|
|
|
.bewegung
|
|
position: relative
|
|
|
|
input
|
|
width: 80px
|
|
|
|
.suffix
|
|
position: absolute
|
|
right: 10px
|
|
top: 12px
|
|
|
|
.gmroll
|
|
width: 175px
|
|
float: right
|
|
|
|
select
|
|
float: right
|
|
width: 175px
|
|
|
|
.beruf
|
|
|
|
select[name=attr_beruf]
|
|
display: none
|
|
|
|
.switch
|
|
float: right
|
|
position: relative
|
|
height: 17px
|
|
border: 1px solid #ccc
|
|
|
|
& .slider
|
|
box-shadow: none
|
|
|
|
& .slider:before
|
|
height: 13px
|
|
bottom: 2px
|
|
|
|
input[name=attr_toggle_beruf]
|
|
|
|
&:checked
|
|
|
|
~input
|
|
display: none
|
|
|
|
~select
|
|
display: inherit
|
|
|
|
.settings
|
|
padding-top: 10px
|
|
display: grid
|
|
grid-template-columns: 49% 49%
|
|
grid-gap: 5px
|
|
|
|
&::before,
|
|
&::after
|
|
display: none
|
|
|
|
.attribut
|
|
|
|
.grid,
|
|
.items
|
|
grid-template-columns: 150px 70px 70px 22px 42px 50px
|
|
|
|
.arrow
|
|
border-top: 10px solid transparent
|
|
border-bottom: 10px solid transparent
|
|
border-left: 20px solid #f00
|
|
width: auto
|
|
height: auto
|
|
margin: 6px 0
|
|
margin-right: 60px
|
|
|
|
label
|
|
position: relative
|
|
left: -95px
|
|
top: 7px
|
|
|
|
.gott
|
|
text-align: center
|
|
|
|
label
|
|
text-align: center
|
|
margin: 0
|
|
|
|
input
|
|
width: auto
|
|
margin-left: 10px
|
|
|
|
.mana
|
|
padding-top: 20px
|
|
|
|
.items
|
|
grid-template-columns: 40% 60%
|
|
|
|
input
|
|
width: 100px
|
|
height: 40px
|
|
|
|
.magie
|
|
padding-top: 15px
|
|
|
|
.grid,
|
|
.items
|
|
grid-template-columns: 150px 70px 70px 70px 50px
|
|
|
|
.float.tabmenu
|
|
margin: 0
|
|
display: grid
|
|
grid-gap: 5px
|
|
|
|
&.physisch
|
|
grid-template-columns: auto auto
|
|
|
|
&.magisch
|
|
grid-template-columns: auto auto auto auto auto auto auto auto auto
|
|
|
|
label
|
|
text-align: center
|
|
display: inline-block
|
|
width: 100%
|
|
height: 20px
|
|
cursor: pointer
|
|
|
|
#selection-fertigkeiten,
|
|
#selection-kampf,
|
|
#selection-weissemagie,
|
|
#selection-schwarzemagie,
|
|
#selection-wildemagie,
|
|
#selection-elementaremagie,
|
|
#selection-freiemagie,
|
|
#selection-zeichenmagie,
|
|
#selection-wundermagie,
|
|
#selection-bardenmagie,
|
|
#selection-schamanenmagie
|
|
display: none
|
|
|
|
input#fertigkeiten:checked ~ #selection-fertigkeiten,
|
|
input#kampf:checked ~ #selection-kampf,
|
|
input#weissemagie:checked ~ #selection-weissemagie,
|
|
input#schwarzemagie:checked ~ #selection-schwarzemagie,
|
|
input#wildemagie:checked ~ #selection-wildemagie,
|
|
input#elementaremagie:checked ~ #selection-elementaremagie,
|
|
input#freiemagie:checked ~ #selection-freiemagie,
|
|
input#zeichenmagie:checked ~ #selection-zeichenmagie,
|
|
input#wundermagie:checked ~ #selection-wundermagie,
|
|
input#bardenmagie:checked ~ #selection-bardenmagie,
|
|
input#schamanenmagie:checked ~ #selection-schamanenmagie
|
|
display: block
|
|
|
|
input#fertigkeiten:checked ~ div #label-fertigkeiten,
|
|
input#kampf:checked ~ div #label-kampf,
|
|
input#weissemagie:checked ~ div #label-weissemagie,
|
|
input#schwarzemagie:checked ~ div #label-schwarzemagie,
|
|
input#wildemagie:checked ~ div #label-wildemagie,
|
|
input#elementaremagie:checked ~ div #label-elementaremagie,
|
|
input#freiemagie:checked ~ div #label-freiemagie,
|
|
input#zeichenmagie:checked ~ div #label-zeichenmagie,
|
|
input#wundermagie:checked ~ div #label-wundermagie,
|
|
input#bardenmagie:checked ~ div #label-bardenmagie,
|
|
input#schamanenmagie:checked ~ div #label-schamanenmagie
|
|
background-color: firebrick
|
|
|
|
.fertigkeiten
|
|
|
|
.grid,
|
|
.items,
|
|
.repcontainer .repitem
|
|
grid-template-columns: 150px 70px 70px 70px 50px
|
|
|
|
.kampf
|
|
|
|
.grid,
|
|
.repcontainer .repitem
|
|
grid-template-columns: 303px 70px 140px 70px 70px 70px 50px 50px
|
|
|
|
.spruchliste
|
|
|
|
.grid,
|
|
.items,
|
|
.repcontainer .repitem
|
|
grid-template-columns: 50px 70px 140px 528px 50px
|
|
border-bottom: 1px dotted
|
|
|
|
div
|
|
margin: 0
|
|
|
|
.grid
|
|
border: none
|
|
|
|
.inventar
|
|
display: inherit
|
|
|
|
input[name=attr_ruestung1],
|
|
input[name=attr_ruestung2],
|
|
input[name=attr_name]
|
|
width: 250px
|
|
|
|
input
|
|
width: 84px
|
|
|
|
.inventar,
|
|
.notes
|
|
display: inherit
|
|
|
|
.switch
|
|
float: right
|
|
position: relative
|
|
top: 19px
|
|
height: 17px
|
|
border: 1px solid #ccc
|
|
|
|
& .slider
|
|
box-shadow: none
|
|
|
|
& .slider:before
|
|
height: 13px
|
|
bottom: 2px
|
|
|
|
input[name=attr_show_inventar]
|
|
|
|
~div
|
|
textarea
|
|
display: none
|
|
|
|
&:checked
|
|
~div
|
|
textarea
|
|
display: inline-block
|
|
|
|
input[name=attr_show_notes]
|
|
|
|
~div
|
|
textarea
|
|
display: none
|
|
|
|
&:checked
|
|
~div
|
|
textarea
|
|
display: inline-block
|
|
|
|
.notes-row:hover .options-flag+span,
|
|
.inventar-row:hover .options-flag+span
|
|
display: block
|
|
|
|
body.sheet-darkmode
|
|
|
|
button,
|
|
input,
|
|
optgroup,
|
|
select,
|
|
textarea,
|
|
.charsheet
|
|
color: #eee
|
|
|
|
.sheetform
|
|
background-color: transparent
|
|
|
|
.btn,
|
|
.btn.btn-default
|
|
color: rgb(200, 195, 188)
|
|
text-shadow: rgba(24, 26, 27, 0.75) 0px 1px 1px
|
|
background-color: rgb(30, 32, 33)
|
|
background-image: linear-gradient(rgb(24, 26, 27), rgb(38, 41, 43))
|
|
border-color: rgb(62, 68, 70) rgb(62, 68, 70) rgb(67, 73, 76)
|
|
box-shadow: rgba(24, 26, 27, 0.2) 0px 1px 0px inset, rgba(0, 0, 0, 0.05) 0px 1px 2px
|