diff --git a/DonjonsEtChatons/donjonsetchatons.css b/DonjonsEtChatons/donjonsetchatons.css new file mode 100644 index 0000000000..9971f42183 --- /dev/null +++ b/DonjonsEtChatons/donjonsetchatons.css @@ -0,0 +1,1143 @@ +/* +SPECIAL DARK MODE +*/ +body.sheet-darkmode span, +body.sheet-darkmode h1, +body.sheet-darkmode h2, +body.sheet-darkmode h3, +body.sheet-darkmode b, +body.sheet-darkmode p { + color: RGB(179, 179, 179) !important; + letter-spacing: 1px !important; +} +body.sheet-darkmode input, +body.sheet-darkmode select, +body.sheet-darkmode textarea { + color: RGB(179, 179, 179) !important; +} +body.sheet-darkmode input option, +body.sheet-darkmode select option, +body.sheet-darkmode textarea option { + background: RGB(50, 47, 31) !important; +} +body.sheet-darkmode div.charsheet { + background: RGB(50, 47, 31) !important; +} +body.sheet-darkmode div.col label.name { + background: RGB(31, 31, 31) !important; +} +body.sheet-darkmode div.col div.identite, body.sheet-darkmode div.col div.don, body.sheet-darkmode div.col div.experience { + background: RGB(31, 31, 31) !important; +} +body.sheet-darkmode div.qualites div.input img { + filter: brightness(80%); +} +body.sheet-darkmode div.qualites div.input input { + color: black !important; +} +body.sheet-darkmode div.valeurs div.coeur img, body.sheet-darkmode div.valeurs div.amitie img { + filter: brightness(80%); +} +body.sheet-darkmode div.valeurs div.coeur input, body.sheet-darkmode div.valeurs div.amitie input { + color: black !important; +} +body.sheet-darkmode div.config { + background: RGB(31, 31, 31) !important; + border-color: RGB(207, 161, 120) !important; +} +body.sheet-darkmode div.menu input[type=hidden][value="1"] ~ button:nth-of-type(1) { + filter: brightness(80%); +} +body.sheet-darkmode div.menu input[type=hidden][value="1"] ~ button:nth-of-type(1) span { + color: black !important; +} +body.sheet-darkmode div.menu input[type=hidden][value="2"] ~ button:nth-of-type(2) { + filter: brightness(80%); +} +body.sheet-darkmode div.menu input[type=hidden][value="2"] ~ button:nth-of-type(2) span { + color: black !important; +} +body.sheet-darkmode div.menu input[type=hidden][value="3"] ~ button:nth-of-type(3) { + filter: brightness(80%); +} +body.sheet-darkmode div.menu input[type=hidden][value="3"] ~ button:nth-of-type(3) span { + color: black !important; +} +body.sheet-darkmode div.tab2 div.repitem, body.sheet-darkmode div.tab3 div.repitem { + background: RGB(31, 31, 31) !important; +} +body.sheet-darkmode label.config span::before { + color: RGB(179, 179, 179) !important; +} + +div.charsheet { + background: RGB(250, 247, 231); +} +div.charsheet > div.content { + display: flex; + flex-wrap: wrap; + min-width: 700px; + justify-content: space-between; + /* + /////////////////// + ZONES AUTOEXPENSIBLES + /////////////////// + */ + /*CORPS GENERAL*/ + /*MENU*/ +} +div.charsheet > div.content select { + margin-bottom: 0px; + border-radius: 0px; + color: black; +} +div.charsheet > div.content input[type=number]::-webkit-outer-spin-button, +div.charsheet > div.content input[type=number]::-webkit-inner-spin-button { + -webkit-appearance: none; + appearance: none; + margin: 0; +} +div.charsheet > div.content input[type=number], +div.charsheet > div.content input[type=text] { + -moz-appearance: textfield; + appearance: textfield; + border-radius: 0px; + color: black; +} +div.charsheet > div.content input[disabled] { + background-color: transparent; + cursor: not-allowed; +} +div.charsheet > div.content input:focus-visible, +div.charsheet > div.content textarea:focus-visible { + z-index: 99; +} +div.charsheet > div.content textarea { + border: none; + width: 100%; + padding: 0px; + text-align: justify; + border-radius: 0px; + color: black; + margin: 0px; +} +div.charsheet > div.content label { + margin: 0px; + padding: 0px; +} +div.charsheet > div.content input, +div.charsheet > div.content select, +div.charsheet > div.content textarea { + background: transparent; + font-family: "patrick hand"; + letter-spacing: 1px; +} +div.charsheet > div.content span { + font-family: "patrick hand"; +} +div.charsheet > div.content div.autoex { + line-height: 1.4em; + min-height: 1.4em; + cursor: text; + text-align: left; + position: relative; + width: 100%; + font-family: "patrick hand"; + letter-spacing: 1px; +} +div.charsheet > div.content div.autoex > span { + visibility: hidden; + display: block; + font-family: inherit; + font-size: inherit; + line-height: inherit; + white-space: pre-wrap; + text-align: inherit; + min-height: inherit; + height: 100%; + word-wrap: anywhere; + padding-left: 2px; +} +div.charsheet > div.content div.autoex > textarea { + display: block; + z-index: 1; + position: absolute; + top: 0; + left: 0; + height: 100%; + width: calc(100% - 4px); + overflow: hidden; + font-family: inherit; + font-size: inherit; + line-height: inherit; + white-space: pre-wrap; + text-align: inherit; + min-height: inherit; + resize: none; + padding-right: 2px; + padding-left: 2px; +} +div.charsheet > div.content div.autoex > textarea::placeholder { + font-family: "Contrail One"; + color: rgba(87, 89, 87, 0.8549019608); + text-transform: capitalize; + font-style: italic; + text-align: center; + font-size: 95%; + font-weight: normal; +} +div.charsheet > div.content div.autoex22 { + min-height: 22px; +} +div.charsheet > div.content div.autoex28 { + min-height: 28px; +} +div.charsheet > div.content div.autoex40 { + min-height: 40px; +} +div.charsheet > div.content div.autoex100 { + min-height: 100px; +} +div.charsheet > div.content div.itemcontrol { + z-index: 999; +} +div.charsheet > div.content div.body { + display: none; + width: 100%; + flex-wrap: wrap; + justify-content: space-between; + min-width: 700px; +} +div.charsheet > div.content div.header { + /* + ///PARAMETRES EXISTANTS\\\ + */ + display: flex; + width: 100%; + justify-content: space-between; + flex-wrap: wrap; +} +div.charsheet > div.content div.header h1.titre { + width: 100%; + align-content: baseline; + background: transparent; + font-variant: small-caps; + color: black; + line-height: 45px; + min-height: 39px; + justify-content: center; + display: flex; + text-align: center; + font-size: 39px; + font-family: "Patrick Hand"; +} +div.charsheet > div.content div.header label.config { + position: absolute; + width: 23px; + height: 23px; + right: 15px; +} +div.charsheet > div.content div.header label.config span { + width: 23px; + height: 23px; +} +div.charsheet > div.content div.header label.config span::before { + content: "y"; + color: black; + font-family: "pictos"; + font-variant: initial; + font-size: 26px; + line-height: 23px; + height: 23px; + width: 23px; + display: block; + text-align: center; + opacity: 0.5; +} +div.charsheet > div.content div.header label.config input[type=checkbox] { + position: absolute; + width: 23px; + height: 23px; + opacity: 0; + z-index: 999; +} +div.charsheet > div.content div.header label.config input[type=checkbox]:checked ~ span::before { + opacity: 1; +} +div.charsheet > div.content div.header input[type=hidden][value="1"] ~ div.config { + display: flex; +} +div.charsheet > div.content div.header div.config { + display: none; + position: absolute; + justify-content: space-between; + flex-wrap: wrap; + width: 180px; + padding: 5px; + background: RGB(250, 247, 231); + border: 1px solid black; + border-radius: 5px; + right: 15px; + z-index: 9999; + margin-right: 13px; + margin-top: 13px; +} +div.charsheet > div.content div.header div.config div.full { + width: 100%; +} +div.charsheet > div.content div.header div.config div.half { + width: calc(50% - 4px); +} +div.charsheet > div.content div.header div.config div { + flex-grow: 1; + align-items: center; + padding: 2px; + font-size: 10px; + min-height: 24px; + line-height: 20px; +} +div.charsheet > div.content div.header div.config div label { + display: flex; + margin: 0; + padding: 0; + width: auto; + font: inherit; + justify-content: space-between; +} +div.charsheet > div.content div.header div.config div label span { + font: inherit; +} +div.charsheet > div.content div.header div.config div label select { + width: 80px; + margin: 0 0 0 0; + padding-top: 0; + padding-right: 0; + padding-bottom: 0; + padding-left: 5px; + height: 20px; +} +div.charsheet > div.content div.header div.config div label input[type=checkbox] { + margin-right: 5px; + width: 20px; + height: 20px; +} +div.charsheet > div.content div.header div.config div label.plainText span { + width: 100%; + font-weight: bold; + justify-content: center; +} +div.charsheet > div.content div.header div.config div label.plainText span:nth-of-type(2) { + font-variant: small-caps; +} +div.charsheet > div.content div.header div.config div label.plainText textarea { + height: 50px; + border-top: 1px solid black; + border-left: 1px solid black; + border-right: 1px solid black; +} +div.charsheet > div.content div.header div.config div label.plainText button[type=action] { + width: 100%; + padding: 0px; + justify-content: center; + font-variant: small-caps; + border: 1px solid black; + font-weight: bold; +} +div.charsheet > div.content div.header div.config div.textarea { + width: 100%; + flex-wrap: wrap; +} +div.charsheet > div.content div.header div.config div.textarea label { + display: flex; + flex-wrap: wrap; + width: 100%; +} +div.charsheet > div.content div.header div.config div.textarea label span { + display: flex; + width: 100%; + justify-content: center; +} +div.charsheet > div.content div.header div.config div.textarea label span:first-of-type { + font-weight: bold; +} +div.charsheet > div.content div.header div.config div.textarea label span:last-of-type { + font-weight: normal; + font-variant: small-caps; +} +div.charsheet > div.content div.header div.config div.textarea label textarea { + height: 50px; + border-top: 1px solid black; + border-right: 1px solid black; + border-left: 1px solid black; + border-bottom: 0px; +} +div.charsheet > div.content div.header div.config div.textarea button[type=action] { + width: 100%; + padding: 0px; + justify-content: center; + font-variant: small-caps; + border: 1px solid black; + font-weight: bold; +} +div.charsheet > div.content div.header label.name { + display: flex; + align-content: center; + align-items: center; + width: 100%; + background: white; + border: 2px solid RGB(207, 161, 120); + border-radius: 25px; + padding: 5px; + padding-right: 10px; +} +div.charsheet > div.content div.header label.name span { + width: max-content; + font-size: 16px; + font-family: "patrick hand"; +} +div.charsheet > div.content div.header label.name input { + width: 100%; + border: 0px; + padding-left: 5px; + font-size: 16px; + font-family: "patrick hand"; +} +div.charsheet > div.content div.header div.line { + display: flex; + width: 100%; + justify-content: space-between; +} +div.charsheet > div.content div.header div.col { + position: relative; + display: flex; + flex-wrap: wrap; + width: calc(50% - 10px); + align-items: flex-start; + align-content: flex-start; +} +div.charsheet > div.content div.header div.identite { + display: flex; + width: 100%; + justify-content: space-between; + flex-wrap: wrap; + background: white; + padding: 5px; + padding-right: 10px; + border: 2px solid RGB(207, 161, 120); + border-radius: 25px; + margin-top: 5px; +} +div.charsheet > div.content div.header div.identite label { + display: flex; + align-content: center; + align-items: center; + width: 100%; +} +div.charsheet > div.content div.header div.identite label span { + width: max-content; + font-size: 16px; +} +div.charsheet > div.content div.header div.identite label input { + width: 100%; + border: 0px; + padding-left: 5px; + font-size: 16px; +} +div.charsheet > div.content div.header div.don { + display: flex; + width: 100%; + justify-content: space-between; + flex-wrap: wrap; + background: white; + padding: 10px; + border: 2px solid RGB(207, 161, 120); + border-radius: 25px; + font-family: "patrick hand"; + font-size: 14px; +} +div.charsheet > div.content div.header div.don > span { + width: max-content; + font-size: 16px; + font-weight: bold; + font-family: "patrick hand"; +} +div.charsheet > div.content div.header div.experience { + display: flex; + width: 100%; + justify-content: space-between; + background: white; + padding: 5px; + padding-right: 10px; + border: 2px solid RGB(207, 161, 120); + border-radius: 25px; + margin-top: 5px; + margin-bottom: 5px; + align-items: center; + align-content: center; +} +div.charsheet > div.content div.header div.experience > span { + display: flex; + width: 75px; + font-size: 16px; + font-weight: bold; + font-family: "patrick hand"; + text-align: center; +} +div.charsheet > div.content div.header div.experience div.double { + display: flex; + flex-wrap: wrap; + position: relative; + width: calc(100% - 75px); + align-items: center; + align-content: center; + position: relative; +} +div.charsheet > div.content div.header div.experience div.double input { + width: calc(50% - 7.5px); + border: 0px; + background: transparent; + text-align: center; + height: 49px; + font-size: 34px; + font-family: "Patrick Hand"; +} +div.charsheet > div.content div.header div.experience div.double input:first-of-type { + text-align: right; +} +div.charsheet > div.content div.header div.experience div.double input:last-of-type { + text-align: left; +} +div.charsheet > div.content div.header div.experience div.double > span.separateur { + display: block; + width: 15px; + text-align: center; + font-size: 33px; + font-weight: bold; + font-family: "patrick hand"; + line-height: 30px; + color: RGB(207, 161, 120); +} +div.charsheet > div.content div.header div.experience div.double > span.absoluteL, div.charsheet > div.content div.header div.experience div.double > span.absoluteR { + width: 50%; + position: absolute; + font-family: "patrick hand"; + bottom: -3px; +} +div.charsheet > div.content div.header div.experience div.double > span.absoluteL { + text-align: center; +} +div.charsheet > div.content div.header div.experience div.double > span.absoluteR { + text-align: center; + right: 0px; +} +div.charsheet > div.content div.header div.qualites { + display: flex; + width: 390px; + justify-content: space-between; + align-items: flex-end; + align-content: flex-end; + flex-wrap: wrap; +} +div.charsheet > div.content div.header div.qualites button[type=roll].rollDice, +div.charsheet > div.content div.header div.qualites button[type=action].rollDice { + background: url(https://imgsrv.roll20.net/?src=https%3A//cdn.pixabay.com/photo/2014/04/03/11/56/dice-312621_960_720.png); + background-color: white; + background-size: contain; + background-position: center; + background-repeat: no-repeat; + width: 28px; + height: 28px; + padding: 0px; + margin: 0px; + border: 0px; + background-repeat: no-repeat; + background-size: contain; + background-position: center; + z-index: 50; + margin-left: auto; + box-shadow: none; +} +div.charsheet > div.content div.header div.qualites button[type=roll].rollDice::before, +div.charsheet > div.content div.header div.qualites button[type=action].rollDice::before { + content: ""; +} +div.charsheet > div.content div.header div.qualites button[type=roll].rollDice:hover, +div.charsheet > div.content div.header div.qualites button[type=action].rollDice:hover { + box-shadow: inset 0px 0px 5px; +} +div.charsheet > div.content div.header div.qualites div.blockInput { + display: flex; + flex-wrap: wrap; + position: relative; + height: 157px; + width: 125px; +} +div.charsheet > div.content div.header div.qualites div.blockInput label { + display: flex; + width: 100%; + justify-content: center; + cursor: pointer; +} +div.charsheet > div.content div.header div.qualites div.blockInput label span { + display: block; + width: max-content; + margin-left: 2px; + text-align: center; + font-size: 18px; + font-weight: bold; + font-family: "patrick hand"; + line-height: 30px; +} +div.charsheet > div.content div.header div.qualites div.blockInput label button.rollDice { + margin: 0px; + border: 1px solid black; +} +div.charsheet > div.content div.header div.qualites div.input { + display: flex; + position: relative; + height: 127px; + width: 100%; +} +div.charsheet > div.content div.header div.qualites div.input input { + position: absolute; + border-radius: 50%; + border: 0px; + background: transparent; + text-align: center; + top: calc(50% - 30px); + height: 74px; + width: 74px; + left: calc(50% - 37px); + font-size: 34px; + font-family: "Patrick Hand"; +} +div.charsheet > div.content div.header div.valeurs { + display: flex; + width: 343px; + justify-content: space-between; + align-items: end; + flex-wrap: wrap; +} +div.charsheet > div.content div.header div.valeurs div.coeur { + display: flex; + flex-wrap: wrap; + position: relative; + height: 175px; + width: 164px; +} +div.charsheet > div.content div.header div.valeurs div.coeur div.blockInput { + position: absolute; + display: flex; + justify-content: center; + top: calc(50% - 45px); + width: 100%; +} +div.charsheet > div.content div.header div.valeurs div.coeur > span { + display: block; + width: 100%; + text-align: center; + font-size: 18px; + font-weight: bold; + font-family: "patrick hand"; + line-height: 30px; +} +div.charsheet > div.content div.header div.valeurs div.amitie { + display: flex; + flex-wrap: wrap; + position: relative; + height: 205px; + width: 164px; +} +div.charsheet > div.content div.header div.valeurs div.amitie div.blockInput { + position: absolute; + display: flex; + justify-content: center; + top: calc(75% - 57px); + width: 100%; +} +div.charsheet > div.content div.header div.valeurs div.amitie > span { + display: block; + width: 100%; + text-align: center; + font-size: 18px; + font-weight: bold; + font-family: "patrick hand"; + line-height: 30px; +} +div.charsheet > div.content div.header div.valeurs div.blockInput span { + height: 49px; + width: 15px; + font-size: 34px; + font-family: "Patrick Hand"; +} +div.charsheet > div.content div.header div.valeurs div input { + border-radius: 50%; + border: 0px; + background: transparent; + text-align: center; + height: 49px; + width: 37px; + font-size: 34px; + font-family: "Patrick Hand"; +} +div.charsheet > div.content div.header div.valeurs div input:first-of-type { + text-align: right; +} +div.charsheet > div.content div.header div.valeurs div input:last-of-type { + text-align: left; +} +div.charsheet > div.content div.menu { + display: flex; + width: 100%; + justify-content: space-evenly; + align-content: end; + align-items: end; + flex-wrap: wrap; + padding-bottom: 5px; + margin-bottom: 5px; + margin-top: 5px; + min-width: 700px; + /*div { + &.buttons { + display: flex; + width: 100%; + justify-content: space-evenly; + align-content: end; + align-items: end; + flex-wrap: wrap; + + & > label { + display:flex; + width:130px; + margin-bottom:2px; + + & > input[type="radio"] { + position:absolute; + width:130px; + height:27px; + opacity:0; + border-radius:10px; + + & + span { + display:inline-block; + width:100%; + + &::before { + content:attr(title); + display:inline-block; + width:calc(100% - 4px); + height:23px; + text-align:center; + background-color:black; + text-shadow: 2px 2px 2px #555555; + font-size:15px; + line-height:23px; + border:2px solid black; + border-radius:10px; + } + } + } + + &:nth-of-type(1) { + & > input[type="radio"] { + & + span { + &::before { + color:$color1; + } + } + + &:checked + span::before + { + background:$background1; + } + } + } + + &:nth-of-type(2) { + & > input[type="radio"] { + & + span { + &::before { + color:$color2; + } + } + + &:checked + span::before + { + background:$background2; + } + } + } + + &:nth-of-type(3) { + & > input[type="radio"] { + & + span { + &::before { + color:$color3; + } + } + + &:checked + span::before + { + background:$background3; + } + } + } + } + } + }*/ +} +div.charsheet > div.content div.menu button { + display: flex; + justify-content: center; + width: 130px; + margin-bottom: 2px; + border: 2px solid black; + border-radius: 10px; + background-color: black; + text-shadow: 2px 2px 2px #555555; + font-size: 15px; + line-height: 23px; + height: 23px; + text-align: center; +} +div.charsheet > div.content div.menu button:nth-of-type(1) { + color: white; +} +div.charsheet > div.content div.menu button:nth-of-type(2) { + color: white; +} +div.charsheet > div.content div.menu button:nth-of-type(3) { + color: white; +} +div.charsheet > div.content div.menu input[type=hidden][value="1"] ~ button:nth-of-type(1) { + background-color: RGB(242, 120, 102); + font-weight: bold; + letter-spacing: 1px; +} +div.charsheet > div.content div.menu input[type=hidden][value="2"] ~ button:nth-of-type(2) { + background-color: RGB(99, 142, 199); + font-weight: bold; + letter-spacing: 1px; +} +div.charsheet > div.content div.menu input[type=hidden][value="3"] ~ button:nth-of-type(3) { + background-color: RGB(109, 192, 114); + font-weight: bold; + letter-spacing: 1px; +} +div.charsheet > div.content input[type=hidden].tabExtend[value="1"] ~ div.tab1, +div.charsheet > div.content input[type=hidden].tabExtend[value="2"] ~ div.tab2, +div.charsheet > div.content input[type=hidden].tabExtend[value="3"] ~ div.tab3 { + display: flex; +} +div.charsheet > div.content div.tab1 div.col { + display: flex; + flex-wrap: wrap; + align-items: flex-start; + align-content: flex-start; + width: calc(33.3333333333% - 10px); +} +div.charsheet > div.content div.tab1 div.col button[type=roll].rollDice, +div.charsheet > div.content div.tab1 div.col button[type=action].rollDice { + background: url(https://imgsrv.roll20.net/?src=https%3A//cdn.pixabay.com/photo/2014/04/03/11/56/dice-312621_960_720.png); + background-color: white; + background-size: contain; + background-position: center; + background-repeat: no-repeat; + width: 28px; + height: 28px; + padding: 0px; + margin: 0px; + border: 0px; + background-repeat: no-repeat; + background-size: contain; + background-position: center; + z-index: 50; + margin-left: auto; + box-shadow: none; +} +div.charsheet > div.content div.tab1 div.col button[type=roll].rollDice::before, +div.charsheet > div.content div.tab1 div.col button[type=action].rollDice::before { + content: ""; +} +div.charsheet > div.content div.tab1 div.col button[type=roll].rollDice:hover, +div.charsheet > div.content div.tab1 div.col button[type=action].rollDice:hover { + box-shadow: inset 0px 0px 5px; +} +div.charsheet > div.content div.tab1 div.col div { + display: flex; + width: 100%; + flex-wrap: wrap; +} +div.charsheet > div.content div.tab1 div.col div label { + display: flex; + width: 100%; + margin-top: 5px; +} +div.charsheet > div.content div.tab1 div.col div label input[type=checkbox] { + /* Add if not using autoprefixer */ + -webkit-appearance: none; + appearance: none; + /* For iOS < 15 to remove gradient background */ + background-color: #fff; + /* Not removed via appearance */ + margin: 0; + font: inherit; + color: currentColor; + width: 1.15em; + height: 1.15em; + border: 0.15em solid currentColor; + border-radius: 0.15em; + transform: translateY(-0.075em); + display: grid; + place-content: center; +} +div.charsheet > div.content div.tab1 div.col div label input[type=checkbox]::before { + content: ""; + width: 0.65em; + height: 0.65em; + transform: scale(0); + transition: 120ms transform ease-in-out; + box-shadow: inset 1em 1em black; + transform-origin: bottom left; + clip-path: polygon(14% 44%, 0 65%, 50% 100%, 100% 16%, 80% 0%, 43% 62%); +} +div.charsheet > div.content div.tab1 div.col div label input[type=checkbox]:checked::before { + transform: scale(2); + margin-left: -6px; +} +div.charsheet > div.content div.tab1 div.col div label span { + margin-left: 5px; +} +div.charsheet > div.content div.tab1 div.col div select { + display: none; + width: calc(100% - 30px); + border: 1px dashed; + margin: 0px; + padding: 0px; + padding-left: 5px; + padding-right: 5px; + font-size: 14px; + height: 30px; + line-height: 30px; +} +div.charsheet > div.content div.tab1 div.col div button[type=action].rollDice { + display: none; +} +div.charsheet > div.content div.tab1 div.col div input[type=hidden][value=on] ~ select { + display: inline-block; +} +div.charsheet > div.content div.tab1 div.col div input[type=hidden][value=on] ~ button[type=action].rollDice { + display: inline-block; + border: 1px solid black; +} +div.charsheet > div.content div.tab1 div.full { + display: flex; + flex-wrap: wrap; + align-items: flex-start; + align-content: flex-start; + width: 100%; + margin-top: 5px; +} +div.charsheet > div.content div.tab1 div.full p { + width: 100%; + text-align: justify; + margin: 0px; + font-family: "patrick hand"; + font-size: 15px; +} +div.charsheet > div.content div.tab2 { + flex-wrap: wrap; +} +div.charsheet > div.content div.tab2 div.repcontainer { + display: flex; + width: 100%; + justify-content: space-between; + align-items: flex-start; + align-content: flex-start; + flex-wrap: wrap; +} +div.charsheet > div.content div.tab2 div.repcontainer div.repitem { + display: flex; + width: calc(50% - 10px); + flex-wrap: wrap; + background: white; + border-radius: 10px; +} +div.charsheet > div.content div.tab2 div.repcontainer div.repitem input { + width: 100%; + border-top: 0px; + border-left: 0px; + border-right: 0px; + margin: 0px; + padding: 0px; + text-align: center; + border-bottom: 2px solid RGB(207, 161, 120); +} +div.charsheet > div.content div.tab2 div.repcontainer div.repitem:nth-of-type(1n+3) { + margin-top: 5px; +} +div.charsheet > div.content div.tab2 div.repcontainer.editmode div.repitem { + width: 100%; +} +div.charsheet > div.content div.tab2 div.repcontainer.editmode div.repitem:nth-of-type(2) { + margin-top: 5px; +} +div.charsheet > div.content div.tab2 div.repcontrol { + width: 100%; +} +div.charsheet > div.content div.tab3 { + flex-wrap: wrap; +} +div.charsheet > div.content div.tab3 div.repcontainer { + display: flex; + width: 100%; + justify-content: space-between; + align-items: flex-start; + align-content: flex-start; + flex-wrap: wrap; +} +div.charsheet > div.content div.tab3 div.repcontainer div.repitem { + display: flex; + width: calc(50% - 10px); + flex-wrap: wrap; + background: white; + border-radius: 10px; + border: 2px solid RGB(207, 161, 120); +} +div.charsheet > div.content div.tab3 div.repcontainer div.repitem:nth-of-type(1n+3) { + margin-top: 5px; +} +div.charsheet > div.content div.tab3 div.repcontainer div.itemcontrol button.btn, +div.charsheet > div.content div.tab3 div.repcontainer div.itemcontrol a.btn { + padding-top: 0px; + padding-bottom: 2px; +} +div.charsheet > div.content div.tab3 div.repcontainer.editmode div.repitem { + width: 100%; +} +div.charsheet > div.content div.tab3 div.repcontainer.editmode div.repitem:nth-of-type(2) { + margin-top: 5px; +} +div.charsheet > div.content div.tab3 div.repcontrol { + width: 100%; +} +div.charsheet > div.content div.tab3 div.full p { + font-family: "patrick hand"; + text-align: justify; + font-size: 15px; +} +div.charsheet > div.content span.costaud { + color: RGB(242, 120, 102); +} +div.charsheet > div.content span.malin { + color: RGB(99, 142, 199); +} +div.charsheet > div.content span.mignon { + color: RGB(109, 192, 114); +} +div.charsheet > div.content span.coeur { + color: RGB(194, 138, 188); +} +div.charsheet > div.content span.amitie { + color: RGB(209, 156, 69); +} + +.sheet-rolltemplate-simple { + display: flex; + flex-wrap: wrap; + width: 100%; + background: RGB(250, 247, 231); + border-radius: 15px; + padding-top: 10px; + padding-bottom: 10px; +} +.sheet-rolltemplate-simple h1, +.sheet-rolltemplate-simple h2 { + width: 100%; + font-family: "Patrick Hand"; + margin: 0px; + padding: 0px; + text-align: center; +} +.sheet-rolltemplate-simple h2 { + font-size: 14px; + line-height: 20px; +} +.sheet-rolltemplate-simple div.sheet-container { + display: flex; + justify-content: space-between; + width: 100%; + align-items: center; + align-content: center; +} +.sheet-rolltemplate-simple div.sheet-container > span { + display: flex; + width: 50%; + font-family: "Patrick Hand"; +} +.sheet-rolltemplate-simple div.sheet-container > span:first-of-type { + padding-left: 5px; +} +.sheet-rolltemplate-simple div.sheet-container > span:last-of-type { + justify-content: center; +} +.sheet-rolltemplate-simple .inlinerollresult, +.sheet-rolltemplate-simple .inlinerollresult.fullcrit, +.sheet-rolltemplate-simple .inlinerollresult.fullfail, +.sheet-rolltemplate-simple .inlinerollresult.importantroll { + display: flex; + border: 0px; + background: 0px; + padding: 0px; + margin: 0px; + align-items: center; + align-content: center; +} +.sheet-rolltemplate-simple a { + margin-left: auto !important; + margin-right: auto !important; + border: 2px solid black !important; + padding: 5px !important; + background: black !important; + color: white !important; + font-family: "Patrick Hand" !important; + letter-spacing: 1px !important; + border-radius: 15px !important; +} +.sheet-rolltemplate-simple a:hover { + text-decoration: none !important; + background: RGB(242, 120, 102) !important; + text-shadow: 2px 2px 2px #555555 !important; +} + +.sheet-rolltemplate-darkmode { + background: RGB(50, 47, 31) !important; +} +.sheet-rolltemplate-darkmode h1, +.sheet-rolltemplate-darkmode h2, +.sheet-rolltemplate-darkmode span { + letter-spacing: 1px !important; + color: RGB(179, 179, 179) !important; +} +.sheet-rolltemplate-darkmode a { + background-color: RGB(31, 31, 31) !important; + color: RGB(179, 179, 179) !important; +} +.sheet-rolltemplate-darkmode a:hover { + filter: brightness(80%); + color: black !important; + font-weight: bold !important; +} +.sheet-rolltemplate-darkmode .inlinerollresult, +.sheet-rolltemplate-darkmode .inlinerollresult.fullcrit, +.sheet-rolltemplate-darkmode .inlinerollresult.fullfail, +.sheet-rolltemplate-darkmode .inlinerollresult.importantroll { + display: flex; + background: 0px; + padding: 0px; + margin: 0px; + align-items: center; + align-content: center; + background-color: transparent !important; + border: 0px !important; +} \ No newline at end of file diff --git a/DonjonsEtChatons/donjonsetchatons.html b/DonjonsEtChatons/donjonsetchatons.html new file mode 100644 index 0000000000..4ca2bc76b6 --- /dev/null +++ b/DonjonsEtChatons/donjonsetchatons.html @@ -0,0 +1,696 @@ + + +
+
+ +
+
+ + +
+
+ +
+
+ + +
+
+ +
+
+ +
+ + / + +
+ Coeur +
+
+ +
+ + / + +
+ Amitié +
+
+ + +
+
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+
+

Agir : lancer 3d6, chaque résultat inférieur ou égal au score de la Qualité est un succès.

+

Seuil de difficulté : facile 1, moyen 2, difficile 3, légendaire 4.

+

Talent : Donne un Avantage. Avantage : Lancer 4d6. Désavantage : Lancer 2d6.

+

Objets : Si utile, relancer 1d6 dont le résultat ne convient pas.

+

Caractère : Si positif, gagner 1 Avantage / Si négatif, offrir un point d'Amitié.

+
+
+
+ +
+ + +
+
+
+
+
+ + +
+
+ +
+

Une couverture en laine, un couteau de poche, une cuillère en bois, un petit caquelon de fonte, une grande gourde en cuir, un briquet à amadou, des morceaux de chandelle, un morceau de savon, une brosse, un paquet de croquette de route.

+
+
+ +

{{name}}

+ +

{{subname}}

+ + {{#rollTotal() type 3}} +

Jet Standard

+ {{/rollTotal() type 3}} + + {{#rollTotal() type 2}} +

Jet Avec Désavantage

+ {{/rollTotal() type 2}} + + {{#rollTotal() type 4}} +

Jet Avec Avantage

+ {{/rollTotal() type 4}} + +
+ Succès + {{roll}} {{button}} +
+
\ No newline at end of file diff --git a/DonjonsEtChatons/img/Amitié.png b/DonjonsEtChatons/img/Amitié.png new file mode 100644 index 0000000000..6959c04ccc Binary files /dev/null and b/DonjonsEtChatons/img/Amitié.png differ diff --git a/DonjonsEtChatons/img/Amour.png b/DonjonsEtChatons/img/Amour.png new file mode 100644 index 0000000000..801458afbb Binary files /dev/null and b/DonjonsEtChatons/img/Amour.png differ diff --git a/DonjonsEtChatons/img/ChatonCostaud.png b/DonjonsEtChatons/img/ChatonCostaud.png new file mode 100644 index 0000000000..b39b26c669 Binary files /dev/null and b/DonjonsEtChatons/img/ChatonCostaud.png differ diff --git a/DonjonsEtChatons/img/ChatonMalin.png b/DonjonsEtChatons/img/ChatonMalin.png new file mode 100644 index 0000000000..6ca7d14952 Binary files /dev/null and b/DonjonsEtChatons/img/ChatonMalin.png differ diff --git a/DonjonsEtChatons/img/ChatonMignon.png b/DonjonsEtChatons/img/ChatonMignon.png new file mode 100644 index 0000000000..f203bdf4df Binary files /dev/null and b/DonjonsEtChatons/img/ChatonMignon.png differ diff --git a/DonjonsEtChatons/pug/donjonsetchatons.pug b/DonjonsEtChatons/pug/donjonsetchatons.pug new file mode 100644 index 0000000000..e23be0cd31 --- /dev/null +++ b/DonjonsEtChatons/pug/donjonsetchatons.pug @@ -0,0 +1,21 @@ + + +div(class="content") + include html/header.html + include html/menu.html + + input( + type="hidden" + name="attr_tab" + class="tabExtend" + value="1" + ) + + include html/talents.html + include html/grimoire.html + include html/sac.html + +include templates/simple.html \ No newline at end of file diff --git a/DonjonsEtChatons/pug/html/grimoire.html b/DonjonsEtChatons/pug/html/grimoire.html new file mode 100644 index 0000000000..89b00ee288 --- /dev/null +++ b/DonjonsEtChatons/pug/html/grimoire.html @@ -0,0 +1,9 @@ +
+
+ +
+ + +
+
+
\ No newline at end of file diff --git a/DonjonsEtChatons/pug/html/header.html b/DonjonsEtChatons/pug/html/header.html new file mode 100644 index 0000000000..5d10a5db50 --- /dev/null +++ b/DonjonsEtChatons/pug/html/header.html @@ -0,0 +1,118 @@ + + + + \ No newline at end of file diff --git a/DonjonsEtChatons/pug/html/sac.html b/DonjonsEtChatons/pug/html/sac.html new file mode 100644 index 0000000000..97a06b73fd --- /dev/null +++ b/DonjonsEtChatons/pug/html/sac.html @@ -0,0 +1,12 @@ +
+
+
+ + +
+
+ +
+

Une couverture en laine, un couteau de poche, une cuillère en bois, un petit caquelon de fonte, une grande gourde en cuir, un briquet à amadou, des morceaux de chandelle, un morceau de savon, une brosse, un paquet de croquette de route.

+
+
\ No newline at end of file diff --git a/DonjonsEtChatons/pug/html/talents.html b/DonjonsEtChatons/pug/html/talents.html new file mode 100644 index 0000000000..d58ee541e0 --- /dev/null +++ b/DonjonsEtChatons/pug/html/talents.html @@ -0,0 +1,337 @@ +
+
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+
+

Agir : lancer 3d6, chaque résultat inférieur ou égal au score de la Qualité est un succès.

+

Seuil de difficulté : facile 1, moyen 2, difficile 3, légendaire 4.

+

Talent : Donne un Avantage. Avantage : Lancer 4d6. Désavantage : Lancer 2d6.

+

Objets ou Don : Si utile, relancer 1d6 dont le résultat ne convient pas.

+

Caractère : Si positif, gagner 1 Avantage / Si négatif, offrir un point d'Amitié.

+
+
\ No newline at end of file diff --git a/DonjonsEtChatons/pug/js/_library.js b/DonjonsEtChatons/pug/js/_library.js new file mode 100644 index 0000000000..f48b68f26a --- /dev/null +++ b/DonjonsEtChatons/pug/js/_library.js @@ -0,0 +1,60 @@ +function setActiveCharacterId(charId){ + var oldAcid=getActiveCharacterId(); + var ev = new CustomEvent("message"); + ev.data={"id":"0", "type":"setActiveCharacter", "data":charId}; + self.dispatchEvent(ev); + return oldAcid; +} + +var _sIn=setInterval; +setInterval=function(callback, timeout){ + var acid=getActiveCharacterId(); + _sIn( + function(){ + var prevAcid=setActiveCharacterId(acid); + callback(); + setActiveCharacterId(prevAcid); + } + ,timeout); +} + +var _sto=setTimeout +setTimeout=function(callback, timeout){ + var acid=getActiveCharacterId(); + _sto( + function(){ + var prevAcid=setActiveCharacterId(acid); + callback(); + setActiveCharacterId(prevAcid); + } + ,timeout); +} + +function getAttrsAsync(props){ + var acid=getActiveCharacterId(); //save the current activeCharacterID in case it has changed when the promise runs + var prevAcid=null; //local variable defined here, because it needs to be shared across the promise callbacks defined below + return new Promise((resolve,reject)=>{ + prevAcid=setActiveCharacterId(acid); //in case the activeCharacterId has changed, restore it to what we were expecting and save the current value to restore later + try{ + getAttrs(props,(values)=>{ resolve(values); }); + } + catch{ reject(); } + }).finally(()=>{ + setActiveCharacterId(prevAcid); //restore activeCharcterId to what it was when the promise first ran + }); +} + +//use the same pattern for each of the following... +function setAttrsAsync(propObj, options){ + var acid=getActiveCharacterId(); + var prevAcid=null; + return new Promise((resolve,reject)=>{ + prevAcid=setActiveCharacterId(acid); + try{ + setAttrs(propObj,options,(values)=>{ resolve(values); }); + } + catch{ reject(); } + }).finally(()=>{ + setActiveCharacterId(prevAcid); + }); +} \ No newline at end of file diff --git a/DonjonsEtChatons/pug/js/base.js b/DonjonsEtChatons/pug/js/base.js new file mode 100644 index 0000000000..877792f5f1 --- /dev/null +++ b/DonjonsEtChatons/pug/js/base.js @@ -0,0 +1,127 @@ +on('clicked:menu', async (menu) => { + const data = menu.htmlAttributes.value; + + await setAttrsAsync({ tab: data }); +}); + +const qualite = ['costaud', 'malin', 'mignon']; + +qualite.forEach(stat => { + on(`clicked:${stat}`, async (base) => { + const listAttrs = [ + `character_name`, + stat, + `jets` + ]; + const attrs = await getAttrsAsync(listAttrs); + const name = attrs['character_name']; + const jet = attrs[`jets`]; + const value = +attrs[stat]; + + let relance = ''; + + switch(stat) { + case 'costaud': + relance = 'relance_costaud'; + break; + + case 'malin': + relance = 'relance_malin'; + break; + + case 'mignon': + relance = 'relance_mignon'; + break; + } + + console.log(relance); + + const finalRoll = await startRoll(`${jet} &{template:simple} {{name=${name}}} {{subname=${getTranslationByKey(stat)}}} {{type=[[?{Type ?|Jet Standard, 3|Jet avec Avantage, 4|Jet avec Désavantage, 2}]]}} {{roll=[[?{Type ?|Jet Standard, 3|Jet avec Avantage, 4|Jet avec Désavantage, 2}D6<${value}]]}} {{button=[${getTranslationByKey('relance')}](~${relance})}}`); + + const computed = {}; + finishRoll(finalRoll.rollId, computed); + }); +}); + +const talents = [ + 'bougerpopotin', 'bricolertruc', 'connaitrelois', 'convaincrebaratiner', 'cueillirchasser', 'cuisiner', 'dessinerpeindre', 'fairemusique', + 'fairepoches', 'feulermenacer', 'griffer', 'herboriser', 'lireecrire', 'lireciel', 'observerfouiller', 'restercalme', + 'soccuperbetes', 'cacherombres', 'deplacerensilence', 'seduirecharmer', 'soignerblessures', 'trouverchemin', 'trouverinformation' +]; + +talents.forEach(talent => { + on(`clicked:${talent}`, async (base) => { + const listAttrs = [ + `character_name`, + `${talent}_select`, + `jets` + ]; + const attrs = await getAttrsAsync(listAttrs); + const name = attrs['character_name']; + const attribut = attrs[`${talent}_select`]; + const jet = attrs[`jets`]; + const value = await getAttrsAsync([attribut]); + + let relance = ''; + + switch(attribut) { + case 'costaud': + relance = 'relance_costaud'; + break; + + case 'malin': + relance = 'relance_malin'; + break; + + case 'mignon': + relance = 'relance_mignon'; + break; + } + + const finalRoll = await startRoll(`${jet} &{template:simple} {{name=${name}}} {{subname=${getTranslationByKey(talent)} - ${getTranslationByKey(attribut)}}} {{roll=[[4D6<${value[attribut]}]]}} {{button=[${getTranslationByKey('relance')}](~${relance})}}`); + + const computed = {}; + finishRoll(finalRoll.rollId, computed); + }); +}); + +const score = [ + 'amitie', + 'coeur' +]; + +score.forEach(valeur => { + on(`change:${valeur} change:costaud change:malin change:mignon sheet:opened`, async (base) => { + const listAttrs = [ + `${valeur}`, + 'costaud', + 'malin', + 'mignon' + ]; + const attrs = await getAttrsAsync(listAttrs); + + const costaud = +attrs['costaud']; + const malin = +attrs['malin']; + const mignon = +attrs['mignon']; + const value = +attrs[`${valeur}`]; + + let max = 0; + + switch(valeur) { + case 'amitie': + max = mignon; + break; + + case 'coeur': + max = costaud+malin; + break; + } + + const update = {}; + update[`${valeur}_max`] = max; + + if(value > max) update[`${valeur}`] = max; + + await setAttrsAsync(update); + }); +}); \ No newline at end of file diff --git a/DonjonsEtChatons/pug/templates/simple.html b/DonjonsEtChatons/pug/templates/simple.html new file mode 100644 index 0000000000..ad11de75b4 --- /dev/null +++ b/DonjonsEtChatons/pug/templates/simple.html @@ -0,0 +1,22 @@ + +

{{name}}

+ +

{{subname}}

+ + {{#rollTotal() type 3}} +

Jet Standard

+ {{/rollTotal() type 3}} + + {{#rollTotal() type 2}} +

Jet Avec Désavantage

+ {{/rollTotal() type 2}} + + {{#rollTotal() type 4}} +

Jet Avec Avantage

+ {{/rollTotal() type 4}} + +
+ Succès + {{roll}} {{button}} +
+
\ No newline at end of file diff --git a/DonjonsEtChatons/scss/donjonsetchatons.scss b/DonjonsEtChatons/scss/donjonsetchatons.scss new file mode 100644 index 0000000000..b067508fff --- /dev/null +++ b/DonjonsEtChatons/scss/donjonsetchatons.scss @@ -0,0 +1,221 @@ +$darkTemplate:var(--dark-surface2); + +$black:black; +$white:white; +$costaud:RGB(242, 120, 102); +$malin:RGB(099, 142, 199); +$mignon:RGB(109, 192, 114); +$coeur:RGB(194, 138, 188); +$amitie:RGB(209, 156, 069); +$background:RGB(250, 247, 231); +$borderBrown:RGB(207, 161, 120); +$title-background:linear-gradient(to bottom, rgb(211, 229, 245, 1), rgb(255, 255, 255)); +$dice:URL(https://imgsrv.roll20.net/?src=https%3A//cdn.pixabay.com/photo/2014/04/03/11/56/dice-312621_960_720.png); +$arcaneBubble:URL(https://zupimages.net/up/22/24/npp5.png); +$arcaneBubbleWhite:URL(https://zupimages.net/up/22/24/28bt.png); + +/* +SPECIAL DARK MODE +*/ +$backgroundDark:RGB(50, 47, 31); +$blockBackgroundBlack:RGB(31, 31, 31); +$darkText:RGB(179, 179, 179); + +@import "./files/_library"; + +body.sheet-darkmode { + span, + h1, + h2, + h3, + b, + p { + color:$darkText !important; + letter-spacing: 1px !important; + } + + input, + select, + textarea { + color:$darkText !important; + + option { + background:$backgroundDark !important; + } + } + + div { + &.charsheet { + background: $backgroundDark !important; + } + + &.col { + label { + &.name { + background: $blockBackgroundBlack !important; + } + } + + div { + &.identite, + &.don, + &.experience { + background: $blockBackgroundBlack !important; + } + } + } + + &.qualites { + div { + &.input { + img { + filter: brightness(80%); + } + input { + color:$black !important; + } + } + } + } + + &.valeurs { + div { + &.coeur, + &.amitie { + img { + filter: brightness(80%); + } + input { + color:$black !important; + } + } + } + } + + &.config { + background:$blockBackgroundBlack !important; + border-color:$borderBrown !important; + } + + &.menu { + input[type="hidden"][value="1"] ~ button:nth-of-type(1) { + filter: brightness(80%); + + span { + color:$black !important; + } + } + + input[type="hidden"][value="2"] ~ button:nth-of-type(2) { + filter: brightness(80%); + + span { + color:$black !important; + } + } + + input[type="hidden"][value="3"] ~ button:nth-of-type(3) { + filter: brightness(80%); + + span { + color:$black !important; + } + } + } + + &.tab2, + &.tab3 { + div.repitem { + background:$blockBackgroundBlack !important; + } + } + } + + label { + &.config { + span::before { + color:$darkText !important; + } + } + } +} + +div { + &.charsheet { + background:$background; + + & > div.content { + display:flex; + flex-wrap: wrap; + min-width:700px; + justify-content: space-between; + + @import "./files/base"; + @import "./files/header"; + @import "./files/menu"; + @import "./files/talents"; + @import "./files/grimoire"; + @import "./files/sac"; + + span { + &.costaud { + color:$costaud; + } + + &.malin { + color:$malin; + } + + &.mignon { + color:$mignon; + } + + &.coeur { + color:$coeur; + } + + &.amitie { + color:$amitie; + } + } + } + } +} + +@import "./files/templates"; + +.sheet-rolltemplate-darkmode { + background:$backgroundDark !important; + + h1, + h2, + span { + letter-spacing: 1px !important; + color:$darkText !important; + } + + a { + background-color:$blockBackgroundBlack !important; + color:$darkText !important; + + &:hover { + filter: brightness(80%); + color:$black !important; + font-weight:bold !important; + } + } + + .inlinerollresult, + .inlinerollresult.fullcrit, + .inlinerollresult.fullfail, + .inlinerollresult.importantroll { + display: flex; + background:0px; + padding:0px; + margin:0px; + align-items: center; + align-content: center; + background-color:transparent !important; + border:0px !important; + } +} \ No newline at end of file diff --git a/DonjonsEtChatons/scss/files/_library.scss b/DonjonsEtChatons/scss/files/_library.scss new file mode 100644 index 0000000000..5b0062c5dc --- /dev/null +++ b/DonjonsEtChatons/scss/files/_library.scss @@ -0,0 +1,1135 @@ +@use "sass:string"; +@use "sass:map"; + +@mixin col($widthMain, $widthCol, $class:col) { + justify-content: space-between; + align-items:flex-start; + align-content:flex-start; + width:$widthMain; + + div.#{$class} { + display:flex; + justify-content: space-between; + align-items:flex-start; + align-content:flex-start; + width:$widthCol; + flex-wrap:wrap; + position:relative; + } +} + +@mixin buttonOptions() { + label.bOptions { + width:15px; + height:15px; + margin-left:-15px; + + input[type="checkbox"] + { + width:15px; + height:15px; + position:absolute; + opacity:0; + z-index:99; + + & ~ span + { + width:100%; + height:15px; + + &::before + { + display: flex; + width: 100%; + height: 15px; + font-family: pictos; + content: "y"; + opacity: 0.5; + color: $clair; + font-size: 15px; + line-height: 15px; + } + } + + &:checked ~ span::before + { + opacity:1; + } + } + } + + div.Options { + display:none; + } + + input[type="hidden"][value="1"] ~ div.Options + { + display:flex; + height:min-content; + + @content; + } +} + +@mixin buttonRoll { + button[type="roll"].rollDice, + button[type="action"].rollDice { + background:$dice; + background-color:white; + background-size:contain; + background-position: center; + background-repeat: no-repeat; + width: 28px; + height: 28px; + padding: 0px; + margin: 0px; + border: 0px; + background-repeat: no-repeat; + background-size: contain; + background-position: center; + z-index: 50; + margin-left: auto; + box-shadow:none; + + &::before { + content:""; + } + + &:hover { + box-shadow: inset 0px 0px 5px; + } + + @content; + } +} + +@mixin options($color, $background) { + + label.config { + position:absolute; + width:23px; + height:23px; + right:15px; + + span { + width:23px; + height:23px; + + &::before { + content: "y"; + color:$color; + font-family: "pictos"; + font-variant: initial; + font-size: 26px; + line-height: 23px; + height: 23px; + width: 23px; + display: block; + text-align: center; + opacity:0.5; + } + } + + input[type="checkbox"] { + position:absolute; + width:23px; + height:23px; + opacity: 0; + z-index:999; + + &:checked ~ span::before { + opacity: 1; + } + } + } + + input[type="hidden"][value="1"] ~ div.config { + display:flex; + } + + div.config { + display:none; + position:absolute; + + justify-content: space-between; + flex-wrap: wrap; + width: 180px; + padding: 5px; + background: $background; + border: 1px solid $black; + border-radius: 5px; + right: 15px; + z-index:9999; + margin-right:13px; + margin-top:13px; + + div.full { + width:100%; + } + + div.half { + width: calc(50% - 4px); + } + + div { + flex-grow: 1; + align-items: center; + padding: 2px; + font-size: 10px; + min-height: 24px; + line-height: 20px; + + label { + display:flex; + margin: 0; + padding: 0; + width: auto; + font: inherit; + justify-content: space-between; + + span { + font:inherit; + } + + select { + width: 80px; + margin: 0 0 0 0; + padding-top: 0; + padding-right: 0; + padding-bottom: 0; + padding-left: 5px; + height: 20px; + } + + input[type="checkbox"] { + margin-right:5px; + width:20px; + height:20px; + } + + &.plainText { + span { + width: 100%; + font-weight: bold; + justify-content: center; + + &:nth-of-type(2) { + font-variant: small-caps; + } + } + + textarea { + height: 50px; + border-top: 1px solid $black; + border-left: 1px solid $black; + border-right: 1px solid $black; + } + + button[type="action"] { + width: 100%; + padding: 0px; + justify-content: center; + font-variant: small-caps; + border: 1px solid $black; + font-weight: bold; + } + } + } + } + + div.textarea { + width:100%; + flex-wrap: wrap; + + label { + display:flex; + flex-wrap: wrap; + width:100%; + + span { + display:flex; + width: 100%; + + justify-content: center; + + &:first-of-type { + font-weight: bold; + } + + &:last-of-type { + font-weight: normal; + font-variant: small-caps; + } + } + + textarea { + height: 50px; + border-top: 1px solid black; + border-right: 1px solid black; + border-left: 1px solid black; + border-bottom: 0px; + } + } + + button[type="action"] { + width: 100%; + padding: 0px; + justify-content: center; + font-variant: small-caps; + border: 1px solid black; + font-weight: bold; + } + } + } +} + +@mixin ficheSelector($color, $background) { + label.selector { + position:relative; + width: 130px; + height: 22px; + margin-right: auto; + + input[type="radio"] { + display:none; + width: 100%; + height: 22px; + position: absolute; + z-index: 99; + opacity: 0; + } + + span { + display:none; + width:100%; + + &::before { + display: flex; + width: 100%; + content: attr(title); + font-size: 14px; + font-weight: bold; + border: 1px solid black; + background: $background; + color: $color; + justify-content: center; + line-height: 20px; + } + } + + input[type="hidden"] { + &[value="0"] ~ .fichePJ, + &[value="1"] ~ .fichePNJ, + &[value="2"] ~ .ficheCreature, + &[value="3"] ~ .ficheBande, + &[value="4"] ~ .ficheVehicule { + display:block; + } + } + } +} + +@mixin menu($num, $params) { + div.menu + { + display:flex; + width:100%; + justify-content: space-evenly; + align-content: end; + align-items: end; + flex-wrap:wrap; + padding-bottom:5px; + margin-bottom:5px; + margin-top:5px; + min-width:700px; + + button { + display:flex; + justify-content: center; + width:130px; + margin-bottom:2px; + border:2px solid $black; + border-radius:10px; + background-color:$black; + text-shadow: 2px 2px 2px #555555; + font-size:15px; + line-height:23px; + height:23px; + text-align:center; + + &:nth-of-type(1) { + color:white; + } + + &:nth-of-type(2) { + color:white; + } + + &:nth-of-type(3) { + color:white; + } + } + + input[type="hidden"] { + @for $i from 1 through $num { + &[value="#{$i}"] { + & ~ button { + &:nth-of-type(#{$i}) { + background-color:map.get($params, "background", #{$i}); + font-weight: bold; + letter-spacing: 1px; + } + } + } + } + } + + /*div { + &.buttons { + display: flex; + width: 100%; + justify-content: space-evenly; + align-content: end; + align-items: end; + flex-wrap: wrap; + + & > label { + display:flex; + width:130px; + margin-bottom:2px; + + & > input[type="radio"] { + position:absolute; + width:130px; + height:27px; + opacity:0; + border-radius:10px; + + & + span { + display:inline-block; + width:100%; + + &::before { + content:attr(title); + display:inline-block; + width:calc(100% - 4px); + height:23px; + text-align:center; + background-color:black; + text-shadow: 2px 2px 2px #555555; + font-size:15px; + line-height:23px; + border:2px solid black; + border-radius:10px; + } + } + } + + &:nth-of-type(1) { + & > input[type="radio"] { + & + span { + &::before { + color:$color1; + } + } + + &:checked + span::before + { + background:$background1; + } + } + } + + &:nth-of-type(2) { + & > input[type="radio"] { + & + span { + &::before { + color:$color2; + } + } + + &:checked + span::before + { + background:$background2; + } + } + } + + &:nth-of-type(3) { + & > input[type="radio"] { + & + span { + &::before { + color:$color3; + } + } + + &:checked + span::before + { + background:$background3; + } + } + } + } + } + }*/ + } +} + +@mixin titre($color, $background:transparent, $params:false) { + /* + ///PARAMETRES EXISTANTS\\\ + */ + @if $params == false { + $params:(); + } + + h1.titre { + width: 100%; + align-content: baseline; + background: transparent; + font-variant: small-caps; + color: black; + line-height: 45px; + min-height: 39px; + justify-content: center; + display: flex; + text-align: center; + font-size: 39px; + font-family: "Patrick Hand"; + } +} + +@mixin oneLineIS($background, $color, $position:0px, $select:false, $input:false) { + background: $background; + align-content:center; + align-items:center; + position:relative; + + width:100%; + min-height: 28px; + + h1 { + position:absolute; + width: calc(100% - 2px); + align-content: baseline; + background: transparent; + color: $color; + line-height: 28px; + min-height: 28px; + justify-content: left; + font-size: 14px; + padding-left:2px; + } + + @if $select { + select { + position:absolute; + width: calc(50% - 28px); + text-align: center; + border-top: 0px; + border-bottom: 0px; + border-right: 0px; + padding: 0px; + right:$position; + } + } + + @if $input { + input[type="text"], + input[type="number"] { + position:absolute; + width: 30%; + height:28px; + text-align: center; + border-top: 0px; + border-bottom: 0px; + border-right: 0px; + border-left:1px solid $sombre; + padding: 0px; + right:$position; + } + } +} + +@mixin fakeButton($params) { + /* + ///PARAMETRES EXISTANTS\\\ + - label + - width : Width du label + - height : height du label + + - span + - color : La color + - background : Le background + - border : S'il y a une bordure (true/false) + - width : Width du span + - height : height du height + + - shadow : s'il y a une ombre (true/false) + */ + + label.fakeButton { + position:relative; + width: map.get($params, "label","width"); + height: map.get($params, "label","height"); + font-size: 14px; + align-self:center; + + input[type="checkbox"], + input[type="radio"] { + position:absolute; + width: 100%; + height: map.get($params, "label","height"); + opacity: 0; + z-index:9; + + @if map.get($params, "shadow") == null { + &:checked ~ span::before { + box-shadow: 0px 0px 7px 0px $black inset; + } + } @else if map.get($params, "shadow") { + &:checked ~ span::before { + box-shadow: 0px 0px 7px 0px $black inset; + } + } + } + + span { + display:flex; + height:map.get($params, "span","height"); + + &::before { + display: flex; + @if map.get($params, "span","width") { + width: map.get($params, "span","width"); + } @else { + width:calc(100% - 2px); + } + + line-height: map.get($params, "span","height"); + content: attr(title); + + @if map.get($params, "span","border") == null { + border: 0px; + } @else if map.get($params, "span","border") == true { + border: 1px solid $black; + } + + background: map.get($params, "span","background"); + color:map.get($params, "span","color");; + justify-content: center; + } + } + + @content; + } +} + +@mixin buttonSelect($width:100px, $marginTop:1px, $marginBottom:1px) { + div.button { + display:flex; + width:100%; + justify-content: space-evenly; + flex-wrap: wrap; + background:$clair; + + button[type="action"] { + display:flex; + width: $width; + height:26px; + + justify-content: center; + + font-size: 14px; + font-weight: bold; + border: 1px solid $black; + background: $sombre; + color: $white; + line-height: 25px; + padding:0px; + + z-index:9; + + margin-top:$marginTop; + margin-bottom:$marginBottom; + + @content; + } + } +} + +@mixin block($background, $borderColor:$sombre, $noBorder:false) { + flex-wrap: wrap; + width: 100%; + align-content: baseline; + background-color: $background; + @if $noBorder { + border:0px; + } @else { + border: 1px solid $borderColor; + } + +} + +@mixin extend { + details { + &[open] { + summary { + &::before { + content:"-"; + } + } + } + + summary { + &::before { + display:flex; + content: "+"; + width: 25px; + height: 27px; + background-color: $sombre; + justify-content: center; + line-height:21px; + font-size:25px; + color:$white; + cursor:pointer; + border-top:1px solid $clair; + } + } + } +} + +@mixin extendModules($wButtonArrow:true) { + button[type="action"].buttonPlus { + display: flex; + background:$sombre; + color:$white; + width: 27px; + font-size: 25px; + height: 28px; + line-height: 21px; + justify-content: center; + border-top:0px; + border-left:0px; + border-bottom:0px; + border-right:1px solid $clair; + padding:0px; + + span { + display:none; + width:100%; + font-size:25px; + justify-content: center; + line-height:23px; + font-weight:bold; + } + } + + @if($wButtonArrow) { + button[type="action"].buttonArrow { + content: "]"; + width:17px; + color: $white; + font-size: 20px; + font-weight: bold; + font-family: pictos; + line-height: 18px; + transform: rotate(90deg); + padding:0px; + background:transparent; + border:0px; + transition: transform 2s; + } + } +} + +@mixin subMenu($classMenu, $params) { + /* + ///PARAMETRES EXISTANTS\\\ + - justifyContent : règle la façon dont le contenu est justifié. + - width : width du div. + - color : Couleur du texte. + - background : Background des boutons + - borderColor : couleur de la bordure + - fontSize : font size du texte. + - fontBold : Si le font est Bold ou non (true/false) + - button + - width : width du bouton + - widthBL : width des boutons ayant une bordure à gauche. + - widthBLR : width des boutons ayant une bordure à gauche et à droite. + - height : height des boutons. + - lastLine : indique qu'il y a un bouton sur une seconde ligne (true / false) + */ + + >div.#{$classMenu} { + display:flex; + + @if map.get($params, "width") { + width:map.get($params, "width"); + } @else { + width:100%; + } + + + flex-wrap: wrap; + + @if map.get($params, "justifyContent") { + justify-content: map.get($params, "justifyContent"); + } @else { + justify-content: space-between; + } + + align-items: flex-end; + align-content: flex-end; + + button[type="action"] { + display:flex; + padding: 0px; + width: map.get($params, "button","width"); + height: map.get($params, "button","height"); + + justify-content: center; + line-height: map.get($params, "button","height"); + + font-size: map.get($params, "fontSize"); + + @if map.get($params, "fontBold") { + font-weight: bold; + } + + border-top:1px solid map.get($params, "borderColor"); + border-bottom:1px solid map.get($params, "borderColor"); + border-left:0px; + border-right:0px; + + background: map.get($params, "background"); + color: map.get($params, "color"); + } + + button[type="action"].BL { + width: map.get($params, "button", "widthBL"); + border-left:1px solid map.get($params, "borderColor"); + } + + button[type="action"].BR { + width: map.get($params, "button", "widthBL"); + border-right:1px solid map.get($params, "borderColor"); + } + + button[type="action"].BLR { + width: map.get($params, "button", "widthBLR"); + border-right:1px solid map.get($params, "borderColor"); + border-left:1px solid map.get($params, "borderColor"); + } + + @if map.get($params, "button", "lastLine") { + button[type="action"].BLRWLL { + width: map.get($params, "button", "widthBLR"); + border-right:1px solid map.get($params, "borderColor"); + border-left:1px solid map.get($params, "borderColor"); + margin-left:1px; + } + } + + button[type="action"].NBT { + border-top:0px; + } + } +} + +//POUR LES TEMPLATES +@mixin titreTemplate($color, $background:transparent, $params:false) { + /* + ///PARAMETRES EXISTANTS\\\ + - titre2 : S'il y a un second titre + - actif : Pour dire qu'il est actif. (true / false) + - background : pour définir le background (transparent par défaut) + - color : pour définir la couleur du texte (white par défaut) + - borderBottom : S'il y a une bordure en bas, et ses paramètres + + - titre3 : S'il y a un troisième titre + - actif : Pour dire qu'il est actif. (true / false) + - background : pour définir le background (transparent par défaut) + - color : pour définir la couleur du texte (white par défaut) + - borderBottom : S'il y a une bordure en bas, et ses paramètres + + - sousTitre : S'il y a un sous-titre + - actif : Pour dire qu'il est actif. (true / false) + - background : pour définir le background (transparent par défaut) + - color : pour définir la couleur du texte (white par défaut) + - borderBottom : S'il y a une bordure en bas, et ses paramètres + */ + @if $params == false { + $params:(); + } + + h1.sheet-titre { + display:flex; + width: 100%; + align-content: baseline; + background: $background; + color: $color; + line-height: 28px; + min-height: 28px; + justify-content: center; + font-size: 14px; + } + + @if map.get($params, "titre2", "actif") { + h2.sheet-titre2 { + display:flex; + width: 100%; + align-content: baseline; + + @if map.get($params, "titre2","background") != null { + background: map.get($params, "titre2","background"); + } @else { + background:transparent; + } + + @if map.get($params, "titre2", "color") != null { + color:map.get($params, "titre2","color"); + } @else { + color:$white; + } + + line-height: 28px; + min-height: 28px; + justify-content: center; + font-size: 14px; + + @if map.get($params, "titre2", "borderBottom") != null { + border-bottom:map.get($params, "titre2","borderBottom"); + } + } + } + + @if map.get($params, "titre3", "actif") { + h3.sheet-titre3 { + display:flex; + width: 100%; + align-content: baseline; + + @if map.get($params, "titre3","background") != null { + background: map.get($params, "titre3","background"); + } @else { + background:transparent; + } + + @if map.get($params, "titre3", "color") != null { + color:map.get($params, "titre3","color"); + } @else { + color:$white; + } + + line-height: 28px; + min-height: 28px; + justify-content: center; + font-size: 12px; + + @if map.get($params, "titre3", "borderBottom") != null { + border-bottom:map.get($params, "titre3","borderBottom"); + } + } + } + + @if map.get($params, "sousTitre", "actif") { + h4.sheet-sousTitre { + display:flex; + width: 100%; + align-content: baseline; + + @if map.get($params, "sousTitre","background") != null { + background: map.get($params, "sousTitre","background"); + } @else { + background:transparent; + } + + @if map.get($params, "sousTitre", "color") != null { + color:map.get($params, "sousTitre","color"); + } @else { + color:$white; + } + + line-height: 16px; + min-height: 16px; + justify-content: center; + font-size: 13px; + + @if map.get($params, "sousTitre", "borderBottom") != null { + border-bottom:map.get($params, "sousTitre","borderBottom"); + } + } + } +} + +@mixin block { + div.block { + display:flex; + width:100%; + flex-wrap: wrap; + border:0px; + + div.base { + display:flex; + width:100%; + justify-content: space-between; + + span.label { + display:flex; + width:140px; + color:$black; + justify-content: left; + font-weight:bold; + padding-left:2px; + font-size:12px; + padding-bottom: 0px; + padding-top: 0px; + padding-right: 0px; + align-items: flex-end; + } + + div.score { + display:flex; + width:calc(100% - 145px - 20px); + justify-content: space-between; + border-bottom:1px dotted $black; + + input { + width: calc(50% - 5px); + border: 0px; + padding-bottom: 0px; + padding-right: 0px; + padding-left: 0px; + text-align: center; + color: $black; + } + + span { + display:flex; + width:10px; + justify-content: center; + padding-bottom: 0px; + padding-top: 0px; + padding-right: 0px; + align-items: flex-end; + } + + &.full { + input { + width:100%; + } + } + } + + label { + display: flex; + height: 19px; + width: 19px; + margin-top: 4px; + z-index: 2; + + input[type="checkbox"] { + position: absolute; + height: 19px; + width: 19px; + opacity: 0; + + & ~ span { + width: 100%; + height: 19px; + display: block; + margin-top: -1px; + + &::before { + font-family: "pictos"; + content: "y"; + text-shadow: 2px 2px 2px $shadowT1; + color:$black; + font-size: 18px; + opacity:0; + } + } + + &:checked { + & ~ span { + &::before { + color:$cfBlue; + text-shadow: 2px 2px 2px $shadowT1; + opacity: 1; + } + } + } + } + } + + &:hover { + label { + input[type="checkbox"] { + & ~ span { + &::before { + opacity:1; + } + } + } + } + } + } + + label.options { + width:100%; + justify-content: space-between; + padding-right:19px; + padding-bottom:5px; + + + span { + display:flex; + width:140px; + color:$black; + justify-content: left; + font-weight:bold; + padding-left:2px; + font-size:12px; + padding-bottom: 0px; + padding-top: 0px; + padding-right: 0px; + align-items: flex-end; + } + + input { + width:calc(100% - 145px); + border-bottom:1px dotted $black; + border-top: 0px; + border-left: 0px; + border-right: 0px; + padding-bottom: 0px; + padding-right: 0px; + padding-left: 0px; + text-align: center; + color: $black; + } + } + + input[type="hidden"] { + &[value="0"] { + & ~ label.options { + display:none; + } + } + + &[value="1"] { + & ~ label.options { + display:flex; + margin-left:auto; + } + } + } + + &:not(:last-of-type) { + label.options { + border-bottom:1px solid $black; + } + } + } +} \ No newline at end of file diff --git a/DonjonsEtChatons/scss/files/base.scss b/DonjonsEtChatons/scss/files/base.scss new file mode 100644 index 0000000000..af85a52ba1 --- /dev/null +++ b/DonjonsEtChatons/scss/files/base.scss @@ -0,0 +1,163 @@ +select +{ + margin-bottom:0px; + border-radius:0px; + color:black; +} + +input[type=number]::-webkit-outer-spin-button, +input[type=number]::-webkit-inner-spin-button +{ + -webkit-appearance: none; + appearance: none; + margin: 0; +} + +input[type=number], +input[type=text] +{ + -moz-appearance:textfield; + appearance: textfield; + border-radius:0px; + color:black; +} + +input[disabled] +{ + background-color:transparent; + cursor:not-allowed; +} + +input:focus-visible, +textarea:focus-visible { + z-index: 99; +} + +textarea +{ + border:none; + width:100%; + padding:0px; + text-align:justify; + border-radius:0px; + color:black; + margin:0px; +} + +label +{ + margin:0px; + padding:0px; +} + +input, +select, +textarea { + background:transparent; + font-family: "patrick hand"; + letter-spacing: 1px; +} + +span { + font-family: "patrick hand"; +} + +/* +/////////////////// +ZONES AUTOEXPENSIBLES +/////////////////// +*/ + +div.autoex +{ + line-height: 1.4em; + min-height: 1.4em; + cursor: text; + text-align: left; + position:relative; + width:100%; + font-family: "patrick hand"; + letter-spacing: 1px; +} + +div.autoex > span +{ + visibility: hidden; + display: block; + font-family: inherit; + font-size: inherit; + line-height: inherit; + white-space: pre-wrap; + text-align: inherit; + min-height: inherit; + height:100%; + word-wrap:anywhere; + padding-left:2px; +} + +div.autoex > textarea +{ + display: block; + z-index: 1; + position: absolute; + top: 0; + left: 0; + height: 100%; + width: calc(100% - 4px); + overflow: hidden; + font-family: inherit; + font-size: inherit; + line-height: inherit; + white-space: pre-wrap; + text-align: inherit; + min-height: inherit; + resize: none; + padding-right:2px; + padding-left:2px; +} + +div.autoex > textarea::placeholder +{ + font-family:"Contrail One"; + color: #575957da; + text-transform: capitalize; + font-style: italic; + text-align: center; + font-size: 95%; + font-weight:normal; +} + +div.autoex22 +{ + min-height:22px; +} + +div.autoex28 +{ + min-height:28px; +} + +div.autoex40 +{ + min-height:40px; +} + +div.autoex100 +{ + min-height:100px; +} + +div.itemcontrol { + z-index:999; +} + +/*CORPS GENERAL*/ + +div.body +{ + display:none; + width:100%; + flex-wrap:wrap; + justify-content:space-between; + min-width:700px; +} \ No newline at end of file diff --git a/DonjonsEtChatons/scss/files/grimoire.scss b/DonjonsEtChatons/scss/files/grimoire.scss new file mode 100644 index 0000000000..7dd1672e55 --- /dev/null +++ b/DonjonsEtChatons/scss/files/grimoire.scss @@ -0,0 +1,53 @@ +div.tab2 { + flex-wrap: wrap; + + div { + &.repcontainer { + display:flex; + width:100%; + justify-content: space-between; + align-items: flex-start; + align-content: flex-start; + flex-wrap: wrap; + + div { + &.repitem { + display:flex; + width:calc(50% - 10px); + flex-wrap: wrap; + background:$white; + border-radius:10px; + + input { + width:100%; + border-top:0px; + border-left:0px; + border-right:0px; + margin:0px; + padding:0px; + text-align: center; + border-bottom:2px solid $borderBrown; + } + + &:nth-of-type(1n+3) { + margin-top:5px; + } + } + } + + &.editmode { + div.repitem { + width:100%; + + &:nth-of-type(2) { + margin-top:5px; + } + } + } + } + + &.repcontrol { + width:100%; + } + } +} \ No newline at end of file diff --git a/DonjonsEtChatons/scss/files/header.scss b/DonjonsEtChatons/scss/files/header.scss new file mode 100644 index 0000000000..0b417ac846 --- /dev/null +++ b/DonjonsEtChatons/scss/files/header.scss @@ -0,0 +1,345 @@ +div.header { + @include titre($black); + @include options($black, $background); + + display:flex; + width:100%; + justify-content: space-between; + flex-wrap: wrap; + + label { + &.name { + display:flex; + align-content: center; + align-items: center; + width:100%; + background:$white; + border:2px solid $borderBrown; + border-radius:25px; + padding:5px; + padding-right:10px; + + span { + width:max-content; + font-size: 16px; + font-family: "patrick hand"; + } + + input { + width:100%; + border:0px; + padding-left:5px; + font-size:16px; + font-family: "patrick hand"; + } + } + } + + div { + &.line { + display:flex; + width:100%; + justify-content: space-between; + } + + &.col { + position: relative; + display:flex; + flex-wrap: wrap; + width:calc(50% - 10px); + align-items: flex-start; + align-content: flex-start; + } + + &.identite { + display:flex; + width:100%; + justify-content: space-between; + flex-wrap: wrap; + background:$white; + padding:5px; + padding-right:10px; + border:2px solid $borderBrown; + border-radius:25px; + margin-top:5px; + + label { + display:flex; + align-content: center; + align-items: center; + width:100%; + + span { + width:max-content; + font-size: 16px; + } + + input { + width:100%; + border:0px; + padding-left:5px; + font-size:16px; + } + } + } + + &.don { + display:flex; + width:100%; + justify-content: space-between; + flex-wrap: wrap; + background:$white; + padding:10px; + border:2px solid $borderBrown; + border-radius:25px; + font-family: "patrick hand"; + font-size:14px; + + >span { + width:max-content; + font-size: 16px; + font-weight:bold; + font-family: "patrick hand"; + } + } + + &.experience { + display:flex; + width:100%; + justify-content: space-between; + background:$white; + padding:5px; + padding-right:10px; + border:2px solid $borderBrown; + border-radius:25px; + margin-top:5px; + margin-bottom:5px; + align-items: center; + align-content: center; + + >span { + display:flex; + width: 75px; + font-size: 16px; + font-weight: bold; + font-family: "patrick hand"; + text-align: center; + } + + div { + &.double { + display:flex; + flex-wrap: wrap; + position:relative; + width:calc(100% - 75px); + align-items: center; + align-content: center; + position:relative; + + input { + width:calc(50% - (15px / 2)); + border:0px; + background:transparent; + text-align: center; + height: 49px; + font-size: 34px; + font-family: "Patrick Hand"; + + &:first-of-type { + text-align: right; + } + + &:last-of-type { + text-align: left; + } + } + + >span { + &.separateur { + display: block; + width: 15px; + text-align: center; + font-size: 33px; + font-weight: bold; + font-family: "patrick hand"; + line-height: 30px; + color:$borderBrown; + } + + &.absoluteL, + &.absoluteR { + width:50%; + position:absolute; + font-family: "patrick hand"; + bottom:-3px; + } + + &.absoluteL { + text-align: center; + } + + &.absoluteR { + text-align: center; + right:0px; + } + } + } + } + } + + &.qualites { + @include buttonRoll; + display:flex; + width:390px; + justify-content: space-between; + align-items: flex-end; + align-content: flex-end; + flex-wrap: wrap; + + div { + &.blockInput { + display:flex; + flex-wrap: wrap; + position:relative; + height:157px; + width:125px; + + label { + display: flex; + width: 100%; + justify-content: center; + cursor:pointer; + + span { + display: block; + width: max-content; + margin-left:2px; + text-align: center; + font-size: 18px; + font-weight: bold; + font-family: "patrick hand"; + line-height: 30px; + } + + button.rollDice { + margin:0px; + border:1px solid $black; + } + } + } + + &.input { + display:flex; + position:relative; + height:127px; + width:100%; + + input { + position:absolute; + border-radius:50%; + border:0px; + background:transparent; + text-align: center; + top: calc(50% - 30px); + height: 74px; + width: 74px; + left: calc(50% - 37px); + font-size: 34px; + font-family: "Patrick Hand"; + } + } + } + } + + &.valeurs { + display:flex; + width:343px; + justify-content: space-between; + align-items: end; + flex-wrap: wrap; + + div { + + &.coeur { + display:flex; + flex-wrap: wrap; + position:relative; + height:175px; + width:164px; + + div.blockInput { + position:absolute; + display:flex; + justify-content: center; + top:calc(50% - 45px); + width:100%; + } + + >span { + display: block; + width: 100%; + text-align: center; + font-size: 18px; + font-weight: bold; + font-family: "patrick hand"; + line-height: 30px; + } + } + + &.amitie { + display:flex; + flex-wrap: wrap; + position:relative; + height:205px; + width:164px; + + div.blockInput { + position:absolute; + display:flex; + justify-content: center; + top:calc(75% - 57px); + width:100%; + } + + >span { + display: block; + width: 100%; + text-align: center; + font-size: 18px; + font-weight: bold; + font-family: "patrick hand"; + line-height: 30px; + } + } + + &.blockInput { + span { + height:49px; + width:15px; + font-size: 34px; + font-family: "Patrick Hand"; + } + } + + input { + border-radius:50%; + border:0px; + background:transparent; + text-align: center; + height: 49px; + width: 37px; + font-size: 34px; + font-family: "Patrick Hand"; + + &:first-of-type { + text-align: right; + } + + &:last-of-type { + text-align: left; + } + } + } + } + } +} \ No newline at end of file diff --git a/DonjonsEtChatons/scss/files/menu.scss b/DonjonsEtChatons/scss/files/menu.scss new file mode 100644 index 0000000000..437f377836 --- /dev/null +++ b/DonjonsEtChatons/scss/files/menu.scss @@ -0,0 +1,10 @@ +/*MENU*/ + +@include menu(3, ("background":("1":$costaud, "2":$malin, "3":$mignon))); + + +input[type="hidden"].tabExtend[value="1"] ~ div.tab1, +input[type="hidden"].tabExtend[value="2"] ~ div.tab2, +input[type="hidden"].tabExtend[value="3"] ~ div.tab3 { + display:flex; +} \ No newline at end of file diff --git a/DonjonsEtChatons/scss/files/sac.scss b/DonjonsEtChatons/scss/files/sac.scss new file mode 100644 index 0000000000..def98f957b --- /dev/null +++ b/DonjonsEtChatons/scss/files/sac.scss @@ -0,0 +1,59 @@ +div.tab3 { + flex-wrap: wrap; + + div { + &.repcontainer { + display:flex; + width:100%; + justify-content: space-between; + align-items: flex-start; + align-content: flex-start; + flex-wrap: wrap; + + div { + &.repitem { + display:flex; + width:calc(50% - 10px); + flex-wrap: wrap; + background:$white; + border-radius:10px; + border:2px solid $borderBrown; + + &:nth-of-type(1n+3) { + margin-top:5px; + } + } + + &.itemcontrol { + button.btn, + a.btn { + padding-top:0px; + padding-bottom:2px; + } + } + } + + &.editmode { + div.repitem { + width:100%; + + &:nth-of-type(2) { + margin-top:5px; + } + } + } + } + + &.repcontrol { + width:100%; + } + + &.full { + p { + font-family: "patrick hand"; + text-align: justify; + font-size:15px; + } + } + } +} \ No newline at end of file diff --git a/DonjonsEtChatons/scss/files/talents.scss b/DonjonsEtChatons/scss/files/talents.scss new file mode 100644 index 0000000000..c711f95de0 --- /dev/null +++ b/DonjonsEtChatons/scss/files/talents.scss @@ -0,0 +1,112 @@ +div.tab1 { + + div { + + &.col { + @include buttonRoll; + display:flex; + flex-wrap: wrap; + align-items: flex-start; + align-content: flex-start; + width:calc((100% / 3) - 10px); + + div { + display:flex; + width:100%; + flex-wrap: wrap; + + label { + display:flex; + width:100%; + margin-top:5px; + + input[type="checkbox"] { + /* Add if not using autoprefixer */ + -webkit-appearance: none; + appearance: none; + /* For iOS < 15 to remove gradient background */ + background-color: #fff; + /* Not removed via appearance */ + margin: 0; + + font: inherit; + color: currentColor; + width: 1.15em; + height: 1.15em; + border: 0.15em solid currentColor; + border-radius: 0.15em; + transform: translateY(-0.075em); + + display: grid; + place-content: center; + + &::before { + content: ""; + width: 0.65em; + height: 0.65em; + transform: scale(0); + transition: 120ms transform ease-in-out; + box-shadow: inset 1em 1em black; + transform-origin: bottom left; + clip-path: polygon(14% 44%, 0 65%, 50% 100%, 100% 16%, 80% 0%, 43% 62%); + } + + &:checked::before { + transform: scale(2); + margin-left: -6px; + } + } + + span { + margin-left:5px; + } + } + + select { + display:none; + width:calc(100% - 30px); + border:1px dashed; + margin:0px; + padding:0px; + padding-left:5px; + padding-right:5px; + font-size:14px; + height:30px; + line-height: 30px; + } + + button[type="action"].rollDice { + display:none; + } + + input[type="hidden"] { + &[value="on"] ~ select { + display:inline-block; + } + + &[value="on"] ~ button[type="action"].rollDice { + display:inline-block; + border:1px solid $black; + } + } + } + } + + &.full { + display:flex; + flex-wrap: wrap; + align-items: flex-start; + align-content: flex-start; + width:100%; + margin-top:5px; + + p { + width:100%; + text-align: justify; + margin:0px; + font-family: "patrick hand"; + font-size:15px; + } + } + } +} \ No newline at end of file diff --git a/DonjonsEtChatons/scss/files/templates.scss b/DonjonsEtChatons/scss/files/templates.scss new file mode 100644 index 0000000000..4077bf8fe1 --- /dev/null +++ b/DonjonsEtChatons/scss/files/templates.scss @@ -0,0 +1,78 @@ +.sheet-rolltemplate-simple { + display:flex; + flex-wrap: wrap; + width:100%; + background:$background; + border-radius:15px; + padding-top:10px; + padding-bottom:10px; + + h1, + h2 { + width:100%; + font-family: "Patrick Hand"; + margin:0px; + padding:0px; + text-align: center; + } + + h2 { + font-size:14px; + line-height: 20px; + } + + div { + &.sheet-container { + display:flex; + justify-content: space-between; + width:100%; + align-items: center; + align-content: center; + + >span { + display:flex; + width:50%; + font-family: "Patrick Hand"; + + &:first-of-type { + padding-left:5px; + } + + &:last-of-type { + justify-content: center; + } + } + } + } + + .inlinerollresult, + .inlinerollresult.fullcrit, + .inlinerollresult.fullfail, + .inlinerollresult.importantroll { + display: flex; + border:0px; + background:0px; + padding:0px; + margin:0px; + align-items: center; + align-content: center; + } + + a { + margin-left: auto !important; + margin-right: auto !important; + border: 2px solid black !important; + padding: 5px !important; + background: black !important; + color: white !important; + font-family: "Patrick Hand" !important; + letter-spacing: 1px !important; + border-radius: 15px !important; + + &:hover { + text-decoration: none !important; + background:$costaud !important; + text-shadow: 2px 2px 2px #555555 !important; + } + } +} \ No newline at end of file diff --git a/DonjonsEtChatons/translation.json b/DonjonsEtChatons/translation.json new file mode 100644 index 0000000000..0e01e10d40 --- /dev/null +++ b/DonjonsEtChatons/translation.json @@ -0,0 +1,62 @@ +{ + "":"", + "chaton":"Chaton", + "enfance":"Enfance", + "caractere":"Caractère", + "donDeNaissance":"Don de naissance", + "experience":"Expérience", + "actuelle":"Actuelle", + "totale":"Totale", + "qualites":"Qualités", + "costaud":"Costaud", + "malin":"Malin", + "mignon":"Mignon", + "coeur":"Coeur", + "amitie":"Amitié", + "talents":"Talents", + "grimoire":"Grimoire", + "sacDeVoyage":"Sac de voyage", + "bougerpopotin":"Bouger son popotin", + "bricolertruc":"Bricoler des trucs et des machins", + "connaitrelois":"Connaître les lois et les légendes", + "convaincrebaratiner":"Convaincre et baratiner", + "cueillirchasser":"Cueillir et chasser", + "cuisiner":"Cuisiner", + "dessinerpeindre":"Dessiner et peindre", + "fairemusique":"Faire de la musique", + "fairepoches":"Faire les poches", + "feulermenacer":"Feuler et menacer", + "griffer":"Griffer", + "herboriser":"Herboriser", + "lireecrire":"Lire et écrire", + "lireciel":"Lire le ciel et les étoiles", + "observerfouiller":"Observer et fouiller", + "restercalme":"Rester calme et impassible", + "soccuperbetes":"S'occuper des bêtes", + "cacherombres":"Se cacher dans les ombres", + "deplacerensilence":"Se déplacer en silence", + "seduirecharmer":"Séduire et charmer", + "soignerblessures":"Soigner blessures et maladies", + "trouverchemin":"Trouver son chemin", + "trouverinformation":"Trouver une information", + "contenusac":"Une couverture en laine, un couteau de poche, une cuillère en bois, un petit caquelon de fonte, une grande gourde en cuir, un briquet à amadou, des morceaux de chandelle, un morceau de savon, une brosse, un paquet de croquette de route.", + "agir":"Agir :", + "agirdetail":"lancer 3d6, chaque résultat inférieur ou égal au score de la Qualité est un succès.", + "seuildifficulte":"Seuil de difficulté :", + "seuildifficultedetail":"facile 1, moyen 2, difficile 3, légendaire 4.", + "talent":"Talent :", + "talentdetail":"Donne un Avantage.", + "avantage":"Avantage :", + "avantagedetail":"Lancer 4d6.", + "desavantage":"Désavantage :", + "desavantagedetail":"Lancer 2d6.", + "objets":"Objets ou Don :", + "objetsdetail":"Si utile, relancer 1d6 dont le résultat ne convient pas.", + "caracterest":"Caractère :", + "caracteredetail":"Si positif, gagner 1 Avantage / Si négatif, offrir un point d'Amitié.", + "succes":"Succès", + "relance":"Relance", + "jets":"Les jets sont", + "public":"public", + "prives":"privés" +} \ No newline at end of file