MediaWiki:Gadget-AerofoilDesigner.css: Difference between revisions

From Aodhán Gallagher
No edit summary
No edit summary
 
(3 intermediate revisions by the same user not shown)
Line 16: Line 16:
.aerofoil-control {
.aerofoil-control {
     display: grid;
     display: grid;
     grid-template-columns: 35px minmax(100px, 1fr) 70px;
     grid-template-columns: 150px minmax(120px, 1fr) 84px 68px;
     align-items: center;
     align-items: center;
     gap: 0.4rem;
     gap: 0.55rem;
}
}


Line 34: Line 34:
}
}


.aerofoil-value {
    text-align: right;
    font-variant-numeric: tabular-nums;
    color: #54595d;
}


.aerofoil-actions {
.aerofoil-actions {
Line 158: Line 153:
         display: none;
         display: none;
     }
     }
}
.aerofoil-subplot-title {
    margin: 0.8rem 0 0.35rem;
    font-weight: 700;
    font-size: 1rem;
}
.aerofoil-construction-wrap {
    margin-top: 0;
}
.aerofoil-thickness-curve {
    fill: none;
    stroke: #36c;
    stroke-width: 2.2;
}
.aerofoil-camber-curve {
    fill: none;
    stroke: #14866d;
    stroke-width: 2.2;
}
.aerofoil-thickness-control {
    stroke: #36c;
    stroke-width: 1.1;
    stroke-dasharray: 4 4;
}
.aerofoil-camber-control {
    stroke: #14866d;
    stroke-width: 1.1;
    stroke-dasharray: 4 4;
}
.aerofoil-thickness-point {
    fill: #fff;
    stroke: #36c;
    stroke-width: 2;
}
.aerofoil-camber-point {
    fill: #fff;
    stroke: #14866d;
    stroke-width: 2;
}
.aerofoil-control-point-label {
    fill: #202122;
    font-size: 11px;
    font-family: sans-serif;
    paint-order: stroke;
    stroke: #fff;
    stroke-width: 3px;
    stroke-linejoin: round;
}
.aerofoil-legend-text {
    fill: #54595d;
    font-size: 12px;
    font-family: sans-serif;
}
}

Latest revision as of 10:26, 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-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;
    }
}

.aerofoil-subplot-title {
    margin: 0.8rem 0 0.35rem;
    font-weight: 700;
    font-size: 1rem;
}

.aerofoil-construction-wrap {
    margin-top: 0;
}

.aerofoil-thickness-curve {
    fill: none;
    stroke: #36c;
    stroke-width: 2.2;
}

.aerofoil-camber-curve {
    fill: none;
    stroke: #14866d;
    stroke-width: 2.2;
}

.aerofoil-thickness-control {
    stroke: #36c;
    stroke-width: 1.1;
    stroke-dasharray: 4 4;
}

.aerofoil-camber-control {
    stroke: #14866d;
    stroke-width: 1.1;
    stroke-dasharray: 4 4;
}

.aerofoil-thickness-point {
    fill: #fff;
    stroke: #36c;
    stroke-width: 2;
}

.aerofoil-camber-point {
    fill: #fff;
    stroke: #14866d;
    stroke-width: 2;
}

.aerofoil-control-point-label {
    fill: #202122;
    font-size: 11px;
    font-family: sans-serif;
    paint-order: stroke;
    stroke: #fff;
    stroke-width: 3px;
    stroke-linejoin: round;
}

.aerofoil-legend-text {
    fill: #54595d;
    font-size: 12px;
    font-family: sans-serif;
}