An app for logging board climbs
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

feat: add icon

+105 -79
+1 -1
civility.json
··· 5 5 "outdir": "./www/dist", 6 6 "static": "./www/static", 7 7 "icon": { 8 - "source": "./www/static/icon.png", 8 + "source": "./www/static/brand/icon.png", 9 9 "output": "./www/dist/icons" 10 10 } 11 11 }
+2 -2
www/manifest.json
··· 29 29 ], 30 30 "start_url": "/", 31 31 "display": "standalone", 32 - "theme_color": "#797ed2", 33 - "background_color": "#1a202c" 32 + "theme_color": "#797ED2", 33 + "background_color": "#fff" 34 34 }
+102 -76
www/routes/settings.ts
··· 73 73 <h2>About</h2> 74 74 <ui-pwa-version></ui-pwa-version> 75 75 <ui-pwa-install></ui-pwa-install> 76 - </section> 77 - <section> 78 - <h2>Board Setup</h2> 79 - <p>Select which Board setup you are using.</p> 80 - <div role="radiogroup" aria-label="Board setup"> 81 - ${BOARD_OPTIONS.map((opt) => { 82 - const key = optionKey(opt.boardId, opt.angle) 83 - return html` 84 - <label> 85 - <input 86 - type="radio" 87 - name="board-angle" 88 - value="${key}" 89 - ?checked="${this.selectedKey === key}" 90 - @change="${() => 91 - app.updatePreferences({ 92 - boardId: opt.boardId, 93 - angle: opt.angle, 94 - })}" 95 - > 96 - <span>${opt.label}</span> 97 - </label> 98 - ` 99 - })} 100 - </div> 101 - </section> 102 - 103 - <section> 104 - <h2>Grade Scale</h2> 105 - <p>Choose how grades are displayed throughout the app.</p> 106 - <div role="radiogroup" aria-label="Grade scale"> 107 - ${GRADE_SCALE_OPTIONS.map((opt) => 108 - html` 109 - <label> 110 - <input 111 - type="radio" 112 - name="grade_scale" 113 - value="${opt.value}" 114 - ?checked="${this.gradeScale === opt.value}" 115 - @change="${() => 116 - app.updatePreferences({ 117 - gradeScale: opt.value as GradeScale, 118 - })}" 119 - > 120 - <div> 76 + <p style="padding-top: var(--s3);"> 77 + <a 78 + href="https://ko-fi.com/O5O21ETSMZ" 79 + target="_blank" 80 + style="cursor: pointer;" 81 + > 82 + <img 83 + height="36" 84 + style="border:0px;height:36px;" 85 + src="https://storage.ko-fi.com/cdn/kofi5.png?v=6" 86 + border="0" 87 + alt="Buy Me a Coffee at ko-fi.com" 88 + ></a> 89 + </p> 90 + <p> 91 + <a 92 + href="https://www.flaticon.com/free-icons/climbing" 93 + title="climbing icons" 94 + >Icon created by gruffystudio - Flaticon</a> 95 + </p> 96 + <p> 97 + <a 98 + href="https://apps.bpev.me" 99 + title="Apps by BPEV" 100 + >More Apps</a> 101 + </p> 102 + </section> 103 + <section> 104 + <h2>Board Setup</h2> 105 + <p>Select which Board setup you are using.</p> 106 + <div role="radiogroup" aria-label="Board setup"> 107 + ${BOARD_OPTIONS.map((opt) => { 108 + const key = optionKey(opt.boardId, opt.angle) 109 + return html` 110 + <label> 111 + <input 112 + type="radio" 113 + name="board-angle" 114 + value="${key}" 115 + ?checked="${this.selectedKey === key}" 116 + @change="${() => 117 + app.updatePreferences({ 118 + boardId: opt.boardId, 119 + angle: opt.angle, 120 + })}" 121 + > 121 122 <span>${opt.label}</span> 122 - <small>${opt.example}</small> 123 - </div> 124 - </label> 125 - ` 126 - )} 127 - </div> 128 - </section> 123 + </label> 124 + ` 125 + })} 126 + </div> 127 + </section> 128 + 129 + <section> 130 + <h2>Grade Scale</h2> 131 + <p>Choose how grades are displayed throughout the app.</p> 132 + <div role="radiogroup" aria-label="Grade scale"> 133 + ${GRADE_SCALE_OPTIONS.map((opt) => 134 + html` 135 + <label> 136 + <input 137 + type="radio" 138 + name="grade_scale" 139 + value="${opt.value}" 140 + ?checked="${this.gradeScale === opt.value}" 141 + @change="${() => 142 + app.updatePreferences({ 143 + gradeScale: opt.value as GradeScale, 144 + })}" 145 + > 146 + <div> 147 + <span>${opt.label}</span> 148 + <small>${opt.example}</small> 149 + </div> 150 + </label> 151 + ` 152 + )} 153 + </div> 154 + </section> 129 155 130 - <section> 131 - <h2>Sync</h2> 132 - <p> 133 - Sync your progress across devices. Connect to a Civility server and 134 - authenticate with an API token from the server dashboard. 135 - </p> 136 - <ui-sync 137 - storage-key="moonboard-sync" 138 - .synced="${app.synced}" 139 - ></ui-sync> 140 - </section> 156 + <section> 157 + <h2>Sync</h2> 158 + <p> 159 + Sync your progress across devices. Connect to a Civility server and 160 + authenticate with an API token from the server dashboard. 161 + </p> 162 + <ui-sync 163 + storage-key="moonboard-sync" 164 + .synced="${app.synced}" 165 + ></ui-sync> 166 + </section> 141 167 142 - <section> 143 - <h2>Data</h2> 144 - <ui-data-actions 145 - .methods="${{ 146 - exportData: () => app.exportStore(), 147 - importData: () => app.importStore(), 148 - deleteAllData: () => app.deleteAllData(), 149 - } as UiDataActionMethods}" 150 - ></ui-data-actions> 151 - </section> 152 - ` 168 + <section> 169 + <h2>Data</h2> 170 + <ui-data-actions 171 + .methods="${{ 172 + exportData: () => app.exportStore(), 173 + importData: () => app.importStore(), 174 + deleteAllData: () => app.deleteAllData(), 175 + } as UiDataActionMethods}" 176 + ></ui-data-actions> 177 + </section> 178 + ` 179 + } 153 180 } 154 - } 155 181 156 - customElements.define('settings-page', SettingsPage) 182 + customElements.define('settings-page', SettingsPage)
www/static/brand/design.afdesign

This is a binary file and will not be displayed.

www/static/brand/icon.png

This is a binary file and will not be displayed.