diff --git a/passmate.css b/passmate.css index 63223cb..a486016 100644 --- a/passmate.css +++ b/passmate.css @@ -152,10 +152,41 @@ overview,product { font-weight: normal; } + button.selectable::before { + display: inline-block; + height: 0.75em; + width: 1.15em; + background-image: url("data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzMwMHB4JyB3aWR0aD0nMzAwcHgnICBmaWxsPSIjMDAwMDAwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGRhdGEtbmFtZT0iTGF5ZXIgMSIgdmlld0JveD0iMCAwIDEwMCAxMDAiIHg9IjBweCIgeT0iMHB4Ij48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6bm9uZTtzdHJva2U6IzAwMDAwMDtzdHJva2UtbWl0ZXJsaW1pdDoxMDtzdHJva2Utd2lkdGg6Ny4wMXB4O308L3N0eWxlPjwvZGVmcz48dGl0bGU+QXJ0Ym9hcmQgMTA1PC90aXRsZT48cmVjdCBjbGFzcz0iY2xzLTEiIHg9IjkuNjciIHk9IjkuNjciIHdpZHRoPSI4MC42NyIgaGVpZ2h0PSI4MC42NyIgcng9IjQwLjMzIiByeT0iNDAuMzMiPjwvcmVjdD48L3N2Zz4="); + background-size: contain; + background-repeat: no-repeat; + background-position: left 0.05em; + content: ""; + } + button.selected { font-weight: bold; } + button.selected::before { + background-image: url("data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzMwMHB4JyB3aWR0aD0nMzAwcHgnICBmaWxsPSIjMDAwMDAwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGRhdGEtbmFtZT0iTGF5ZXIgMSIgdmlld0JveD0iMCAwIDEwMCAxMDAiIHg9IjBweCIgeT0iMHB4Ij48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6bm9uZTtzdHJva2U6IzAwMDAwMDtzdHJva2UtbWl0ZXJsaW1pdDoxMDtzdHJva2Utd2lkdGg6Ny4wMXB4O308L3N0eWxlPjwvZGVmcz48dGl0bGU+QXJ0Ym9hcmQgMTAzPC90aXRsZT48cmVjdCBjbGFzcz0iY2xzLTEiIHg9IjkuNjciIHk9IjkuNjciIHdpZHRoPSI4MC42NyIgaGVpZ2h0PSI4MC42NyIgcng9IjQwLjMzIiByeT0iNDAuMzMiPjwvcmVjdD48cmVjdCB4PSIyNC4zMyIgeT0iMjQuMzMiIHdpZHRoPSI1MS4zNCIgaGVpZ2h0PSI1MS4zNCIgcng9IjI1LjY3IiByeT0iMjUuNjciPjwvcmVjdD48L3N2Zz4="); + } + + ul { + list-style-type: none; + padding-inline-start: 25px; + } + + ul.checklist li::before { + display: inline-block; + height: 0.75em; + width: 1.15em; + background-image: url("data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzMwMHB4JyB3aWR0aD0nMzAwcHgnICBmaWxsPSIjMDAwMDAwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGRhdGEtbmFtZT0iTGF5ZXIgMSIgdmlld0JveD0iMCAwIDEwMCAxMDAiIHg9IjBweCIgeT0iMHB4Ij48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6IzAwMDAwMDt9LmNscy0ye2ZpbGw6bm9uZTtzdHJva2U6IzAwMDAwMDtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoxMDtzdHJva2Utd2lkdGg6My40N3B4O308L3N0eWxlPjwvZGVmcz48dGl0bGU+QXJ0Ym9hcmQgOTwvdGl0bGU+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMjMsNTEuMjNDMjkuNjksNTgsMzkuMjEsNzAuNjYsNDQuMTUsODAuNTRBMjU2LDI1NiwwLDAsMSw4My40OCwxOS42bC0zLjYxLTQuMDhjLTEwLjc0LDEwLjYzLTI3LjQ1LDMwLjc4LTM2LjExLDQ3QTk5LDk5LDAsMCwwLDI5LjQxLDQ0TDIzLDUxLjIzWiI+PC9wYXRoPjxwYXRoIGNsYXNzPSJjbHMtMiIgZD0iTTc0LjI2LDQ3LjgzbDAsMzcuODdhMS42NywxLjY3LDAsMCwxLTEuNjcsMS42N0gxOC4xOWExLjY3LDEuNjcsMCwwLDEtMS42Ny0xLjY3VjMxLjMxYTEuNjcsMS42NywwLDAsMSwxLjY3LTEuNjdINTAuNzYiPjwvcGF0aD48L3N2Zz4="); + background-size: contain; + background-repeat: no-repeat; + background-position: left 0.05em; + content: ""; + } + ol { box-sizing: border-box; max-width: 40em; diff --git a/passmate.js b/passmate.js index 2629a31..62708e5 100644 --- a/passmate.js +++ b/passmate.js @@ -56,7 +56,7 @@ class PassMate { }); let formatStep = this.addElement('li', instr, 'Choose your preferred password format (both provide approximately the same security):'); - let formats = this.addElement('ul', formatStep); + let formats = this.addElement('ul', formatStep, null, ['select']); let format = new Select((key) => { this.product.classList.remove('passwords-short'); this.product.classList.remove('passwords-pronounceable'); @@ -71,7 +71,7 @@ class PassMate { format.add('readable', this.addElement('button', readableItem, 'Readable: LeasedBarneyPlays565 (too long for some websites)')); let indexStep = this.addElement('li', instr, 'Choose your preferred index format:'); - let indexes = this.addElement('ul', indexStep); + let indexes = this.addElement('ul', indexStep, null, ['select']); let index = new Select((key) => { this.product.classList.remove('index-letters'); this.product.classList.remove('index-none'); @@ -83,7 +83,7 @@ class PassMate { index.add('none', this.addElement('button', indexNoneItem, 'None: Use passwords from the beginning')); let sidedStep = this.addElement('li', instr, 'Choose your preferred printing format:'); - let sides = this.addElement('ul', sidedStep); + let sides = this.addElement('ul', sidedStep, null, ['select']); let side = new Select((key) => { this.overview.classList.remove('side-one'); this.overview.classList.remove('side-two'); @@ -100,10 +100,10 @@ class PassMate { let twoSideStep = this.addElement('li', instr, 'Check that your printer supports two-sided printing.', ['side-two']); let printReqStep = this.addElement('li', instr, 'You\'ll need to print with the following settings:'); - let printreqs = this.addElement('ul', printReqStep); - this.addElement('li', printreqs, 'Paper size: Letter'); - this.addElement('li', printreqs, 'Layout/Orientation: Landscape'); - this.addElement('li', printreqs, 'Two-sided: Long edge (or just enabled)', ['side-two']); + let printReqs = this.addElement('ul', printReqStep, null, ['checklist']); + this.addElement('li', printReqs, 'Paper size: Letter'); + this.addElement('li', printReqs, 'Layout/Orientation: Landscape'); + this.addElement('li', printReqs, 'Two-sided: Long edge (or just enabled)', ['side-two']); let printStep = this.addElement('li', instr); let print = this.addElement('button', printStep, 'Click here to print the book!');