Re-theme test

This commit is contained in:
2026-08-07 09:36:12 -05:00
parent 5531d83994
commit 44f5a39d0c
3 changed files with 277 additions and 382 deletions

Binary file not shown.

View File

@@ -10,83 +10,74 @@
<body data-model="app_data"> <body data-model="app_data">
<div id="header"> <div id="header">
<h1>Critterfolio</h1> <div class="header-title-group">
<h1>Critterfolio</h1>
<!-- <span class="header-tag">Field Registry</span> -->
</div>
<button id="new-critter-btn" data-event-click="is_add_critter_dialog_open = true"><div>+</div></button> <button id="new-critter-btn" data-event-click="is_add_critter_dialog_open = true"><div>+</div></button>
</div> </div>
<!-- Critter Cards --> <!-- Critter Cards / Drawer Rows -->
<div class="critter-list"> <div class="critter-list">
<button data-for="entry : critters" class="critter-card"> <button data-for="entry : critters" class="critter-card">
<div class="critter-card-header">
<span class="critter-id">ID: #{{entry.key}}</span>
<button class="btn-delete" data-event-click="delete_critter(entry.key)">X</button>
</div>
<div class="critter-card-body"> <div class="critter-card-body">
<img class="critter-thumb" <div class="thumb-frame">
src="images/icon.tga" /> <img class="critter-thumb" src="images/icon.tga" />
</div>
<div class="critter-info"> <div class="critter-info">
<h3 class="critter-name">{{entry.value.name}}</h3> <div class="critter-card-header">
<p><strong>Species:</strong> {{entry.value.species}}</p> <h3 class="critter-name">{{entry.value.name}}</h3>
<p><strong>Gender:</strong> {{entry.value.gender}}</p> <span class="critter-id">#{{entry.key}}</span>
</div>
<div class="info-pills">
<span class="pill"><strong>Sp:</strong> {{entry.value.species}}</span>
<span class="pill"><strong>Sex:</strong> {{entry.value.gender}}</span>
</div>
</div> </div>
</div> </div>
</button>
<button class="btn-delete" data-event-click="delete_critter(entry.key)">X</button>
</button>
</div> </div>
<!-- Modals -->
<!-- Add Critter Modal Dialog Overlay -->
<div class="modal-overlay" data-visible="is_add_critter_dialog_open"> <div class="modal-overlay" data-visible="is_add_critter_dialog_open">
<div class="modal-content"> <div class="modal-content">
<h2>Add New Critter</h2> <div class="modal-header">
<h2>Add New Critter</h2>
<p class="error" data-visible="error_message != ''">{{error_message}}</p> </div>
<div class="modal-body">
<label>Name:</label> <p class="error" data-visible="error_message != ''">{{error_message}}</p>
<input type="text" data-value="new_critter_form.name" /> <div class="form-group"><label>Name:</label><input type="text" data-value="new_critter_form.name" /></div>
<div class="form-row">
<label>Species:</label> <div class="form-group half"><label>Species:</label><input type="text" data-value="new_critter_form.species" /></div>
<input type="text" data-value="new_critter_form.species" /> <div class="form-group half"><label>Gender (M/F):</label><input type="text" data-value="new_critter_form.gender" /></div>
</div>
<label>Gender (M/F):</label> <div class="form-row">
<input type="text" data-value="new_critter_form.gender" /> <div class="form-group half"><label>Mother ID (Optional):</label><input type="text" data-value="new_critter_form.mother_id" /></div>
<div class="form-group half"><label>Father ID (Optional):</label><input type="text" data-value="new_critter_form.father_id" /></div>
<label>Mother ID (Optional):</label> </div>
<input type="text" data-value="new_critter_form.mother_id" /> <div class="form-group"><label>Notes:</label><textarea data-value="new_critter_form.notes"></textarea></div>
</div>
<label>Father ID (Optional):</label>
<input type="text" data-value="new_critter_form.father_id" />
<label>Notes:</label>
<textarea data-value="new_critter_form.notes"></textarea>
<div class="modal-buttons"> <div class="modal-buttons">
<button data-event-click="is_add_critter_dialog_open = false">Cancel</button> <button class="btn-cancel" data-event-click="is_add_critter_dialog_open = false">Cancel</button>
<button data-event-click="submit_add_critter">Save</button> <button class="btn-submit" data-event-click="submit_add_critter">Save</button>
</div> </div>
</div> </div>
</div> </div>
<!-- Confirmation Dialog -->
<div class="modal-overlay" data-visible="is_confirmation_dialog_open"> <div class="modal-overlay" data-visible="is_confirmation_dialog_open">
<div class="modal-content"> <div class="modal-content modal-content-small">
<h2>Confirmation</h2> <div class="modal-header"><h2>Confirmation</h2></div>
<div class="modal-body"><p class="dialog-text">{{confirmation_dialog_text}}</p></div>
<p class="dialog-text">{{confirmation_dialog_text}}</p>
<div class="modal-buttons"> <div class="modal-buttons">
<button data-event-click="confirm_dialog_no">Cancel</button> <button class="btn-cancel" data-event-click="confirm_dialog_no">Cancel</button>
<button data-event-click="confirm_dialog_yes">Yes</button> <button class="btn-submit" data-event-click="confirm_dialog_yes">Yes</button>
</div> </div>
</div> </div>
</div> </div>
</body> </body>
</rml> </rml>

View File

@@ -1,25 +1,29 @@
/* ========================================================================== /* ==========================================================================
RCSS User Agent Defaults (Plain HTML Style) RCSS User Agent Defaults (Collector's Pinboard Theme)
========================================================================== */ ========================================================================== */
* { * {
box-sizing: border-box; box-sizing: border-box;
font-family: "Hubballi"; font-family: "Hubballi";
--background-color: #54703f; --background-color: #1d3557;
--foreground-color: #000000; --foreground-color: #1d3557;
--accent-green: #e63946;
--accent-gold: #f4a261;
--accent-clay: #d62828;
--card-bg: #f1faee;
--border-dark: #0f1c2e;
} }
body { body {
display: block; display: block;
width: 100vw; width: 100vw;
height: 100vh; height: 100vh;
/* font-family: "rmlui-debugger-font"; */
font-size: 15pt; font-size: 15pt;
background-color: var(--background-color); background-color: var(--background-color);
color: var(--foreground-color); color: var(--foreground-color);
margin: 0px; margin: 0px;
padding: 20px; padding: 24px;
} }
/* Generic Structural Layout Defaults */ /* Generic Structural Layout Defaults */
@@ -35,434 +39,334 @@ span, em, strong, a {
/* Typographic Defaults */ /* Typographic Defaults */
p { p {
display: block; display: block;
margin: 1em 0px; margin: 0px;
} }
h1, h2, h3, h4, h5, h6 { h1, h2, h3, h4, h5, h6 {
display: block; display: block;
font-weight: bold; font-weight: bold;
margin: 0.83em 0px; margin: 0px;
} }
h1 { font-size: 2em; } h1 { font-size: 2em; }
h2 { font-size: 1.5em; } h2 { font-size: 1.5em; }
h3 { font-size: 1.17em; } h3 { font-size: 1.17em; }
h4 { font-size: 1em; }
h5 { font-size: 0.83em; }
h6 { font-size: 0.67em; }
em { em { font-style: italic; }
font-style: italic; strong { font-weight: bold; }
}
strong {
font-weight: bold;
}
a {
color: #0000ee;
text-decoration: underline;
}
a:hover {
color: #551a8b;
}
blockquote {
display: block;
margin: 1em 40px;
padding-left: 10px;
border-left: 2px #cccccc;
color: #555555;
}
code, pre {
font-family: "rmlui-debugger-font";
background-color: #606060;
color: #000000;
padding: 3px;
font-style: italic;
}
pre {
display: block;
white-space: pre;
margin: 1em 0px;
padding: 8px;
}
/* Lists */
ul, ol {
display: block;
margin: 1em 0px;
padding-left: 40px;
}
li {
display: block;
}
/* ==========================================================================
Tables
========================================================================== */
table {
display: table;
}
tr {
display: table-row;
}
td, th {
display: table-cell;
padding: 4px 8px;
text-align: left;
}
th {
font-weight: bold;
background-color: #eaeaea;
}
col {
display: table-column;
}
colgroup {
display: table-column-group;
}
thead, tbody, tfoot {
display: table-row-group;
}
/* ========================================================================== /* ==========================================================================
Form Inputs & Interactive UI Components Form Inputs & Interactive UI Components
========================================================================== */ ========================================================================== */
button, input, select, textarea { button, input, select, textarea {
display: inline-block; display: inline-block;
font-family: "rmlui-debugger-font"; font-family: "Hubballi";
font-size: 14px; font-size: 14pt;
margin: 2px; margin: 0px;
vertical-align: middle; vertical-align: middle;
} }
button, input[type="submit"], input[type="button"] { button {
padding: 4px 12px; padding: 6px 16px;
min-width: 40px; background-color: var(--accent-gold);
background-color: transparent; color: var(--border-dark);
color: var(--foreground-color); border: 3px var(--border-dark);
border: 1px var(--foreground-color); border-radius: 6px;
text-align: center; text-align: center;
font-weight: bold;
} }
button:hover, input[type="submit"]:hover, input[type="button"]:hover { button:hover {
background-color: transparent; background-color: #f3be58;
border: 2px var(--foreground-color);
} }
button:active, input[type="submit"]:active, input[type="button"]:active { button:active {
background-color: #b5b5b5; background-color: var(--accent-clay);
border: 2px var(--foreground-color);
} }
/* Standard text field styling */ input[type="text"], textarea {
input[type="text"], input[type="password"], textarea { padding: 8px 12px;
padding: 4px; background-color: #ffffff;
background-color: transparent;
color: var(--foreground-color); color: var(--foreground-color);
border: 1px var(--foreground-color); border: 3px var(--border-dark);
border-radius: 6px;
width: 100%;
} }
input[type="text"]:focus, input[type="password"]:focus, textarea:focus { input[type="text"]:focus, textarea:focus {
/* border: 1px #005aff; */ background-color: #fffde8;
border-width: 2px; border-color: var(--accent-green);
} }
textarea { textarea {
display: block; display: block;
/* white-space: pre-wrap; */ height: 90px;
width: 300px;
height: 100px;
} }
/* Select Box & Dropdowns */
select {
padding: 4px;
background-color: #ffffff;
color: #000000;
border: 1px #767676;
text-align: left;
}
/* ==========================================================================
RmlUi Specific Elements (Tabsets, Progress Bars, etc.)
========================================================================== */
tabset {
display: block;
}
tabset tabs {
display: block;
border-bottom: 1px #cccccc;
}
/* Simple default layout style for built-in tabs */
tab {
display: inline-block;
padding: 6px 12px;
background-color: #f0f0f0;
border: 1px #cccccc;
margin-right: 2px;
}
tab:selected {
background-color: #ffffff;
border-bottom: 1px #ffffff; /* Overlap the bottom border line */
font-weight: bold;
}
panel {
display: block;
padding: 10px;
background-color: #ffffff;
}
/* Standard HTML5 / RmlUi Progress Bar Fallback */
progress {
display: inline-block;
width: 160px;
height: 20px;
background-color: #e6e6e6;
border: 1px #b0b0b0;
}
progress-value {
display: block;
height: 100%;
background-color: #0078d7; /* Classic Windows Blue fill */
}
/* ==========================================================================
Utility & Modern Layout Helpers
========================================================================== */
.flex {
display: flex;
}
.flex-row {
flex-direction: row;
}
.flex-col {
flex-direction: column;
}
.justify-center {
justify-content: center;
}
.align-center {
align-items: center;
}
.hidden {
display: none;
}
/* =================================== /* ===================================
Specific app stuff App Header
=================================== */ =================================== */
#header { #header {
display: flex; display: flex;
flex-direction: row; flex-direction: row;
align-items: center; align-items: center;
gap: 50px; justify-content: space-between;
padding: 12px 20px;
background-color: var(--accent-gold);
border: 3px var(--border-dark);
border-radius: 8px;
margin-bottom: 24px;
}
.header-title-group {
display: flex;
flex-direction: row;
align-items: baseline;
gap: 16px;
}
#header h1 {
font-size: 2.5em;
color: var(--border-dark);
letter-spacing: 1px;
}
.header-tag {
font-size: 12pt;
font-weight: bold;
background-color: var(--border-dark);
color: #ffffff;
padding: 2px 10px;
border-radius: 12px;
} }
#new-critter-btn { #new-critter-btn {
height: 50px; height: 48px;
width: 50px; width: 48px;
border-radius: 10px; border-radius: 8px;
font-size: 30pt; font-size: 28pt;
display: flex; display: flex;
text-align: center;
align-items: center; align-items: center;
border-width: 2px; justify-content: center;
border-color: var(--foreground-color); border: 3px var(--border-dark);
background-color: transparent; background-color: var(--accent-green);
color: var(--foreground-color); color: #ffffff;
transition: border-width 0.2s linear-in-out; padding: 0px;
}
#new-critter-btn:hover {
border-width: 4px;
} }
/* Critter Cards Container */ #new-critter-btn:hover {
background-color: var(--accent-clay);
}
/* ===================================
Pinboard Grid Layout
=================================== */
/* Drawer List Specific Styles */
.critter-list { .critter-list {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
flex-wrap: wrap; gap: 10px;
padding: 10px;
} }
/* Interactive Card Base */
.critter-card { .critter-card {
display: block; display: flex;
width: 50%; flex-direction: row;
margin: 10px; align-items: center;
padding: 10px; justify-content: space-between;
background-color: transparent; width: 100%;
padding: 8px 14px;
background-color: var(--card-bg);
color: var(--foreground-color); color: var(--foreground-color);
border: 2px var(--foreground-color); border: 3px var(--border-dark);
border-left: 10px var(--accent-green);
border-radius: 6px;
text-align: left; text-align: left;
border-radius: 10px;
} }
.critter-card:hover { .critter-card:hover {
border: 3px var(--foreground-color); background-color: #ffffff;
border-left-color: var(--accent-gold);
} }
.critter-card:active {
background-color: #222222;
}
/* Header with Small ID & Delete Button */
.critter-card-header {
display: flex;
justify-content: space-between;
align-items: center;
border-bottom: 1px var(--foreground-color);
padding-bottom: 4px;
margin-bottom: 8px;
}
.critter-id {
font-size: 12pt;
color: var(--foreground-color);
}
.btn-delete {
padding: 2px 6px;
min-width: 0px;
font-size: 10px;
background-color: #aa2222;
color: #ffffff;
border: 0px;
}
.btn-delete:hover {
background-color: #ff3333;
}
/* Body & Thumbnail */
.critter-card-body { .critter-card-body {
display: flex; display: flex;
flex-direction: row;
align-items: center; align-items: center;
} gap: 14px;
.critter-thumb {
width: 100px;
height: 100px;
margin-right: 10px;
background-color: transparent;
border: 1px var(--foreground-color);
}
.critter-info {
flex: 1; flex: 1;
} }
.thumb-frame {
background-color: var(--accent-gold);
border: 2px var(--border-dark);
border-radius: 4px;
padding: 2px;
}
.critter-thumb {
width: 50px;
height: 50px;
}
.critter-info {
display: flex;
flex-direction: column;
gap: 2px;
flex: 1;
}
.critter-card-header {
display: flex;
align-items: baseline;
gap: 12px;
}
.critter-name { .critter-name {
margin: 0px 0px 4px 0px;
font-size: 20pt;
color: var(--foreground-color);
}
.critter-info p {
margin: 2px 0px;
font-size: 18pt; font-size: 18pt;
color: var(--foreground-color); margin: 0px;
} }
/* Modals */ .critter-id {
font-size: 11pt;
font-weight: bold;
color: #666666;
}
.info-pills {
display: flex;
flex-direction: row;
gap: 8px;
}
.pill {
font-size: 12pt;
background-color: #e8e2cf;
border: 1px var(--border-dark);
padding: 1px 8px;
border-radius: 4px;
}
.btn-delete {
padding: 4px 10px;
font-size: 11pt;
font-weight: bold;
background-color: var(--accent-clay);
color: #ffffff;
border: 2px var(--border-dark);
border-radius: 4px;
}
/* ===================================
Modals Layout
=================================== */
.modal-overlay { .modal-overlay {
position: absolute; position: absolute;
top: 0px; top: 0px;
left: 0px; left: 0px;
width: 100%; width: 100%;
height: 100%; height: 100%;
background-color: var(--background-color); background-color: #222222aa;
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
} }
.modal-content { .modal-content {
background-color: transparent; background-color: var(--card-bg);
color: var(--foreground-color); color: var(--foreground-color);
border-color: var(--foreground-color); border: 4px var(--border-dark);
border-width: 2px;
padding: 20px;
border-radius: 10px; border-radius: 10px;
width: 80%; width: 600px;
height: 80%; padding: 0px;
display: flex;
flex-direction: column;
} }
.modal-content h2 { .modal-content-small {
position: relative; width: 450px;
top: -65px; }
background-color: var(--background-color);
text-align: center; .modal-header {
padding: 0px; background-color: var(--accent-green);
max-width: 300px; color: #ffffff;
padding: 12px 20px;
border-bottom: 3px var(--border-dark);
}
.modal-header h2 {
font-size: 20pt;
color: #ffffff;
}
.modal-body {
padding: 18px 20px;
display: flex;
flex-direction: column;
gap: 12px;
}
.form-group {
display: flex;
flex-direction: column;
gap: 4px;
}
.form-row {
display: flex;
flex-direction: row;
gap: 12px;
}
.form-group.half {
width: 50%;
} }
.modal-content label { .modal-content label {
display: block; font-size: 14pt;
margin-top: 8px; font-weight: bold;
font-size: 20pt; color: var(--border-dark);
}
.modal-content input {
width: 100%;
margin-bottom: 8px;
background-color: transparent;
font-size: 15pt;
}
.modal-content textarea {
width: 100%;
} }
.error { .error {
color: #ff5555; color: #ffffff;
font-weight: bold; font-weight: bold;
padding: 8px;
border: 2px var(--border-dark);
background-color: var(--accent-clay);
border-radius: 4px;
} }
.dialog-text { .dialog-text {
font-size: 25pt; font-size: 18pt;
/* font-style: italic; */ color: var(--border-dark);
padding: 10px 0px;
} }
.modal-buttons { .modal-buttons {
margin-top: 15px; padding: 14px 20px;
background-color: #eee7d5;
border-top: 3px var(--border-dark);
display: flex; display: flex;
flex-direction: row; flex-direction: row;
gap: 20px; gap: 12px;
/* justify-content: space-between; */ justify-content: flex-end;
align-items: center;
justify-content: center;
font-size: 18pt;
width: 100%;
} }
.modal-buttons button { .modal-buttons button {
width: 50%; min-width: 120px;
height: 50px; height: 42px;
font-size: 20pt; font-size: 16pt;
line-height: 50px; }
.btn-cancel {
background-color: #d1c7b2;
}
.btn-submit {
background-color: var(--accent-green);
color: #ffffff;
}
.btn-submit:hover {
background-color: #1e4232;
} }