MediaWiki:Gadget-AerofoilDesigner.css: Difference between revisions
From Aodhán Gallagher
Created blank page |
No edit summary |
||
| Line 1: | Line 1: | ||
/* Interactive Bezier aerofoil designer */ | |||
#aerofoil-tool { | |||
width: 100%; | |||
max-width: 1200px; | |||
margin: 1rem 0; | |||
font-size: 0.95rem; | |||
} | |||
.aerofoil-controls { | |||
display: grid; | |||
grid-template-columns: repeat(auto-fit, minmax(360px, 1fr)); | |||
gap: 0.55rem 1rem; | |||
margin-bottom: 0.8rem; | |||
} | |||
.aerofoil-control { | |||
display: grid; | |||
grid-template-columns: 150px minmax(120px, 1fr) 84px 68px; | |||
align-items: center; | |||
gap: 0.55rem; | |||
} | |||
.aerofoil-control-label { | |||
font-weight: 600; | |||
} | |||
.aerofoil-control input[type='range'] { | |||
width: 100%; | |||
} | |||
.aerofoil-number { | |||
width: 100%; | |||
box-sizing: border-box; | |||
} | |||
.aerofoil-value { | |||
text-align: right; | |||
font-variant-numeric: tabular-nums; | |||
color: #54595d; | |||
} | |||
.aerofoil-actions { | |||
display: flex; | |||
justify-content: flex-end; | |||
margin: 0.6rem 0; | |||
} | |||
.aerofoil-plot-wrap { | |||
width: 100%; | |||
overflow: hidden; | |||
border: 1px solid #a2a9b1; | |||
background: #fff; | |||
} | |||
.aerofoil-plot-wrap svg { | |||
display: block; | |||
width: 100%; | |||
height: auto; | |||
} | |||
.aerofoil-grid { | |||
stroke: #eaecf0; | |||
stroke-width: 1; | |||
} | |||
.aerofoil-axis { | |||
stroke: #72777d; | |||
stroke-width: 1.2; | |||
} | |||
.aerofoil-profile { | |||
fill: none; | |||
stroke: #202122; | |||
stroke-width: 1.8; | |||
stroke-linejoin: round; | |||
stroke-linecap: round; | |||
} | |||
.aerofoil-upper, | |||
.aerofoil-lower { | |||
fill: none; | |||
stroke: #36c; | |||
stroke-width: 2.4; | |||
stroke-linejoin: round; | |||
stroke-linecap: round; | |||
} | |||
.aerofoil-camber { | |||
fill: none; | |||
stroke: #72777d; | |||
stroke-width: 1.3; | |||
stroke-dasharray: 6 5; | |||
} | |||
.aerofoil-tick, | |||
.aerofoil-axis-label { | |||
fill: #54595d; | |||
font-size: 13px; | |||
font-family: sans-serif; | |||
} | |||
.aerofoil-empty { | |||
fill: #a2a9b1; | |||
font-size: 20px; | |||
font-family: sans-serif; | |||
} | |||
.aerofoil-status { | |||
margin-top: 0.7rem; | |||
padding: 0.6rem 0.8rem; | |||
border-left: 4px solid; | |||
font-weight: 700; | |||
} | |||
.aerofoil-status.is-valid { | |||
border-left-color: #14866d; | |||
background: #f1fff8; | |||
} | |||
.aerofoil-status.is-invalid { | |||
border-left-color: #b32424; | |||
background: #fff4f4; | |||
} | |||
.aerofoil-checks { | |||
display: flex; | |||
flex-wrap: wrap; | |||
gap: 0.45rem 1rem; | |||
margin-top: 0.6rem; | |||
font-size: 0.9rem; | |||
} | |||
.aerofoil-checks .pass { | |||
color: #14866d; | |||
} | |||
.aerofoil-checks .fail { | |||
color: #b32424; | |||
font-weight: 700; | |||
} | |||
.aerofoil-note { | |||
margin-top: 0.7rem; | |||
color: #72777d; | |||
font-size: 0.85rem; | |||
} | |||
@media (max-width: 700px) { | |||
.aerofoil-controls { | |||
grid-template-columns: 1fr; | |||
} | |||
.aerofoil-control { | |||
grid-template-columns: 120px 1fr 78px; | |||
} | |||
.aerofoil-value { | |||
display: none; | |||
} | |||
} | |||
Revision as of 09:48, 23 September 2026
/* Interactive Bezier aerofoil designer */
#aerofoil-tool {
width: 100%;
max-width: 1200px;
margin: 1rem 0;
font-size: 0.95rem;
}
.aerofoil-controls {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(360px, 1fr));
gap: 0.55rem 1rem;
margin-bottom: 0.8rem;
}
.aerofoil-control {
display: grid;
grid-template-columns: 150px minmax(120px, 1fr) 84px 68px;
align-items: center;
gap: 0.55rem;
}
.aerofoil-control-label {
font-weight: 600;
}
.aerofoil-control input[type='range'] {
width: 100%;
}
.aerofoil-number {
width: 100%;
box-sizing: border-box;
}
.aerofoil-value {
text-align: right;
font-variant-numeric: tabular-nums;
color: #54595d;
}
.aerofoil-actions {
display: flex;
justify-content: flex-end;
margin: 0.6rem 0;
}
.aerofoil-plot-wrap {
width: 100%;
overflow: hidden;
border: 1px solid #a2a9b1;
background: #fff;
}
.aerofoil-plot-wrap svg {
display: block;
width: 100%;
height: auto;
}
.aerofoil-grid {
stroke: #eaecf0;
stroke-width: 1;
}
.aerofoil-axis {
stroke: #72777d;
stroke-width: 1.2;
}
.aerofoil-profile {
fill: none;
stroke: #202122;
stroke-width: 1.8;
stroke-linejoin: round;
stroke-linecap: round;
}
.aerofoil-upper,
.aerofoil-lower {
fill: none;
stroke: #36c;
stroke-width: 2.4;
stroke-linejoin: round;
stroke-linecap: round;
}
.aerofoil-camber {
fill: none;
stroke: #72777d;
stroke-width: 1.3;
stroke-dasharray: 6 5;
}
.aerofoil-tick,
.aerofoil-axis-label {
fill: #54595d;
font-size: 13px;
font-family: sans-serif;
}
.aerofoil-empty {
fill: #a2a9b1;
font-size: 20px;
font-family: sans-serif;
}
.aerofoil-status {
margin-top: 0.7rem;
padding: 0.6rem 0.8rem;
border-left: 4px solid;
font-weight: 700;
}
.aerofoil-status.is-valid {
border-left-color: #14866d;
background: #f1fff8;
}
.aerofoil-status.is-invalid {
border-left-color: #b32424;
background: #fff4f4;
}
.aerofoil-checks {
display: flex;
flex-wrap: wrap;
gap: 0.45rem 1rem;
margin-top: 0.6rem;
font-size: 0.9rem;
}
.aerofoil-checks .pass {
color: #14866d;
}
.aerofoil-checks .fail {
color: #b32424;
font-weight: 700;
}
.aerofoil-note {
margin-top: 0.7rem;
color: #72777d;
font-size: 0.85rem;
}
@media (max-width: 700px) {
.aerofoil-controls {
grid-template-columns: 1fr;
}
.aerofoil-control {
grid-template-columns: 120px 1fr 78px;
}
.aerofoil-value {
display: none;
}
}