UX: Use aspect ratio to calculate width and height precisely
Followup on 1da265d
This commit is contained in:
parent
c388cacb81
commit
5db50d6cdc
|
@ -6,5 +6,12 @@ export default Ember.Component.extend({
|
||||||
@computed("src")
|
@computed("src")
|
||||||
cdnSrc(src) {
|
cdnSrc(src) {
|
||||||
return Discourse.getURLWithCDN(src);
|
return Discourse.getURLWithCDN(src);
|
||||||
|
},
|
||||||
|
|
||||||
|
@computed("width", "height")
|
||||||
|
style(width, height) {
|
||||||
|
if (width && height) {
|
||||||
|
return Ember.String.htmlSafe(`--aspect-ratio: ${width / height};`);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
{{#if src}}
|
{{#if src}}
|
||||||
<img src={{cdnSrc}} class={{class}} width={{width}} height={{height}}>
|
<div class="{{class}} aspect-image" style={{style}}>
|
||||||
|
<img src={{cdnSrc}} width={{width}} height={{height}}>
|
||||||
|
</div>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
|
@ -41,13 +41,21 @@
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.logo {
|
.logo.aspect-image img {
|
||||||
display: block;
|
display: block;
|
||||||
width: auto;
|
width: auto;
|
||||||
height: 40px;
|
height: 40px;
|
||||||
margin: 0 auto 1em auto;
|
margin: 0 auto 1em auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@supports (--custom: property) {
|
||||||
|
.logo.aspect-image img {
|
||||||
|
--height: 40px;
|
||||||
|
width: calc(var(--height) * var(--aspect-ratio));
|
||||||
|
max-width: 100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
h3 .fa {
|
h3 .fa {
|
||||||
color: $primary;
|
color: $primary;
|
||||||
}
|
}
|
||||||
|
|
|
@ -221,11 +221,31 @@ button.dismiss-read {
|
||||||
clear: both;
|
clear: both;
|
||||||
}
|
}
|
||||||
|
|
||||||
.category-logo {
|
.category-logo.aspect-image {
|
||||||
width: auto;
|
|
||||||
max-height: 150px;
|
|
||||||
float: left;
|
float: left;
|
||||||
margin: 0.25em 1em 0.5em 0;
|
margin: 0.25em 1em 0.5em 0;
|
||||||
|
|
||||||
|
img {
|
||||||
|
width: auto;
|
||||||
|
max-height: 150px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@supports (--custom: property) {
|
||||||
|
.category-logo.aspect-image {
|
||||||
|
--max-height: 150px;
|
||||||
|
max-height: var(--max-height);
|
||||||
|
width: calc(var(--max-height) * var(--aspect-ratio));
|
||||||
|
max-width: 25%;
|
||||||
|
height: auto;
|
||||||
|
|
||||||
|
img {
|
||||||
|
width: 100%;
|
||||||
|
height: inherit;
|
||||||
|
max-width: initial;
|
||||||
|
max-height: initial;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Tablet (portrait) ----------- */
|
/* Tablet (portrait) ----------- */
|
||||||
|
|
|
@ -478,12 +478,32 @@ ol.category-breadcrumb {
|
||||||
padding-top: 10px;
|
padding-top: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.category-logo {
|
.category-logo.aspect-image {
|
||||||
display: block;
|
display: block;
|
||||||
|
margin: 8px 0;
|
||||||
|
|
||||||
|
img {
|
||||||
width: auto;
|
width: auto;
|
||||||
max-width: 100%;
|
max-width: 100%;
|
||||||
max-height: 150px;
|
max-height: 150px;
|
||||||
padding: 8px 0;
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@supports (--custom: property) {
|
||||||
|
.category-logo.aspect-image {
|
||||||
|
--max-height: 150px;
|
||||||
|
max-height: var(--max-height);
|
||||||
|
width: calc(var(--max-height) * var(--aspect-ratio));
|
||||||
|
max-width: 100%;
|
||||||
|
height: auto;
|
||||||
|
|
||||||
|
img {
|
||||||
|
width: 100%;
|
||||||
|
height: inherit;
|
||||||
|
max-width: initial;
|
||||||
|
max-height: initial;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
button.dismiss-read {
|
button.dismiss-read {
|
||||||
|
|
Loading…
Reference in New Issue