feat: enhance language selection and boundary falloff features

- Added a language dropdown selector to replace the previous button-based language toggle.
- Integrated boundary falloff settings into the preview material, allowing for smoother transitions between masked and unmasked areas.
- Updated shaders to utilize boundary falloff attributes for improved visual fidelity in bump-only previews.
- Refactored related CSS styles for the new dropdown and adjusted layout for better usability.
- Introduced new functions for computing boundary attributes and managing edge data textures.
This commit is contained in:
CNCKitchen
2026-04-07 09:48:45 +02:00
parent 72f6e67127
commit 498581d8cf
6 changed files with 1709 additions and 318 deletions
+20 -11
View File
@@ -47,31 +47,31 @@
flex-shrink: 0;
}
.lang-btn {
.lang-dropdown {
height: 28px;
padding: 0 10px;
padding: 0 24px 0 10px; /* Add right padding for default select arrow if present */
background: var(--surface2);
border: none;
border-radius: 0;
color: var(--text-muted);
font-size: 11px;
font-weight: 600;
letter-spacing: 0.05em;
cursor: pointer;
appearance: none; /* Attempt to remove default styling */
-moz-appearance: none;
-webkit-appearance: none;
background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='5' viewBox='0 0 8 5'%3E%3Cpath fill='%2366667a' d='M0 0l4 4 4-4H0z'/%3E%3C/svg%3E"); /* Custom arrow */
background-repeat: no-repeat;
background-position: right 8px center;
transition: background 0.15s, color 0.15s;
}
.lang-btn:not(:last-child) {
border-right: 1px solid var(--border);
}
.lang-btn:hover {
.lang-dropdown:hover {
color: var(--accent);
}
.lang-btn.active {
background: var(--accent);
color: #fff;
.lang-dropdown:focus {
outline: none;
}
/* ── Theme toggle button ─────────────────────────────────────────────── */
@@ -391,6 +391,15 @@ main {
margin-bottom: 10px;
}
.panel-subsection-heading {
font-size: 9px;
font-weight: 600;
text-transform: uppercase;
letter-spacing: 0.06em;
color: var(--text-muted);
margin: 14px 0 8px;
}
/* ── Preset grid ─────────────────────────────────────────────────────── */
.preset-grid {
display: grid;