mirror of
				https://github.com/ZetaKebab/kesper.git
				synced 2025-11-04 08:09:49 +00:00 
			
		
		
		
	Responsive images (#505)
This commit is contained in:
		@@ -12,7 +12,7 @@
 | 
			
		||||
            <div class="author-card">
 | 
			
		||||
                <div class="basic-info">
 | 
			
		||||
                    {{#if profile_image}}
 | 
			
		||||
                        <img class="author-profile-image" src="{{profile_image}}" alt="{{name}}" />
 | 
			
		||||
                        <img class="author-profile-image" src="{{img_url profile_image size="xs"}}" alt="{{name}}" />
 | 
			
		||||
                    {{else}}
 | 
			
		||||
                        <div class="author-profile-image">{{> "icons/avatar"}}</div>
 | 
			
		||||
                    {{/if}}
 | 
			
		||||
@@ -29,7 +29,9 @@
 | 
			
		||||
            </div>
 | 
			
		||||
 | 
			
		||||
            {{#if profile_image}}
 | 
			
		||||
                <a href="{{url}}" class="moving-avatar"><img class="author-profile-image" src="{{profile_image}}" alt="{{name}}" /></a>
 | 
			
		||||
                <a href="{{url}}" class="moving-avatar">
 | 
			
		||||
                    <img class="author-profile-image" src="{{img_url profile_image size="xs"}}" alt="{{name}}" />
 | 
			
		||||
                </a>
 | 
			
		||||
            {{else}}
 | 
			
		||||
                <a href="{{url}}" class="moving-avatar author-profile-image">{{> "icons/avatar"}}</a>
 | 
			
		||||
            {{/if}}
 | 
			
		||||
 
 | 
			
		||||
@@ -3,7 +3,7 @@
 | 
			
		||||
 | 
			
		||||
<section class="author-card">
 | 
			
		||||
    {{#if profile_image}}
 | 
			
		||||
        <img class="author-profile-image" src="{{profile_image}}" alt="{{name}}" />
 | 
			
		||||
        <img class="author-profile-image" src="{{img_url profile_image size="xs"}}" alt="{{name}}" />
 | 
			
		||||
    {{else}}
 | 
			
		||||
        <span class="avatar-wrapper">{{> "icons/avatar"}}</span>
 | 
			
		||||
    {{/if}}
 | 
			
		||||
 
 | 
			
		||||
@@ -2,7 +2,7 @@
 | 
			
		||||
    <div class="floating-header-logo">
 | 
			
		||||
        <a href="{{@blog.url}}">
 | 
			
		||||
            {{#if @blog.icon}}
 | 
			
		||||
                <img src="{{@blog.icon}}" alt="{{@blog.title}} icon" />
 | 
			
		||||
                <img src="{{img_url @blog.icon size="xxs"}}" alt="{{@blog.title}} icon" />
 | 
			
		||||
            {{/if}}
 | 
			
		||||
            <span>{{@blog.title}}</span>
 | 
			
		||||
        </a>
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										51
									
								
								partials/header.hbs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										51
									
								
								partials/header.hbs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,51 @@
 | 
			
		||||
{{!--
 | 
			
		||||
Wow what the hell is going on in here even?
 | 
			
		||||
 | 
			
		||||
Ok so, several templates use this big header with a giant BG image. Nice idea, but big images
 | 
			
		||||
have a heavy impact on performance, so it's a good idea to make them responsive. Because we
 | 
			
		||||
can only get the image dynamically using Handlebars, and we can only set the image to properly
 | 
			
		||||
be a background image using CSS, we end up with a handful of inline styles.
 | 
			
		||||
 | 
			
		||||
If the template in question has a background image, then we render responsive image styles
 | 
			
		||||
for it, and apply those styles to the <header> tag. Else, we just output a <header> tag
 | 
			
		||||
with a `no-image` class so we can style it accordingly.
 | 
			
		||||
--}}
 | 
			
		||||
 | 
			
		||||
{{#if background}}
 | 
			
		||||
 | 
			
		||||
<style type="text/css">
 | 
			
		||||
.responsive-header-img {
 | 
			
		||||
    background-image: url({{img_url background size='xl'}});
 | 
			
		||||
}
 | 
			
		||||
@media(max-width: 1000px) {
 | 
			
		||||
.responsive-header-img {
 | 
			
		||||
    background-image: url({{img_url background size='l'}});
 | 
			
		||||
    background-image: -webkit-image-set(
 | 
			
		||||
        url({{img_url background size='l'}}) 1x,
 | 
			
		||||
        url({{img_url background size='xl'}}) 2x
 | 
			
		||||
    );
 | 
			
		||||
    background-image: image-set(
 | 
			
		||||
        url({{img_url background size='l'}}) 1x,
 | 
			
		||||
        url({{img_url background size='xl'}}) 2x
 | 
			
		||||
    );
 | 
			
		||||
}
 | 
			
		||||
@media(max-width: 600px) {
 | 
			
		||||
.responsive-header-img {
 | 
			
		||||
    background-image: url({{img_url background size='m'}});
 | 
			
		||||
    background-image: -webkit-image-set(
 | 
			
		||||
        url({{img_url background size='m'}}) 1x,
 | 
			
		||||
        url({{img_url background size='l'}}) 2x
 | 
			
		||||
    );
 | 
			
		||||
    background-image: image-set(
 | 
			
		||||
        url({{img_url background size='m'}}) 1x,
 | 
			
		||||
        url({{img_url background size='l'}}) 2x
 | 
			
		||||
    );
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
<header class="site-header outer responsive-header-img">
 | 
			
		||||
 | 
			
		||||
{{else}}
 | 
			
		||||
 | 
			
		||||
<header class="site-header outer no-image">
 | 
			
		||||
 | 
			
		||||
{{/if}}
 | 
			
		||||
@@ -1,21 +1,38 @@
 | 
			
		||||
<article class="post-card {{post_class}}{{#unless feature_image}} no-image{{/unless}}">
 | 
			
		||||
<article class="post-card {{post_class}} {{#unless feature_image}}no-image{{else}}{{#is "home"}}{{#has index="nth:6"}}post-card-large{{/has}}{{/is}}{{/unless}}">
 | 
			
		||||
 | 
			
		||||
    {{#if feature_image}}
 | 
			
		||||
        <a class="post-card-image-link" href="{{url}}">
 | 
			
		||||
            <div class="post-card-image" style="background-image: url({{feature_image}})"></div>
 | 
			
		||||
        </a>
 | 
			
		||||
    <a class="post-card-image-link" href="{{url}}">
 | 
			
		||||
        {{!-- This is a responsive image, it loads different sizes depending on device
 | 
			
		||||
        https://medium.freecodecamp.org/a-guide-to-responsive-images-with-ready-to-use-templates-c400bd65c433 --}}
 | 
			
		||||
        <img class="post-card-image"
 | 
			
		||||
            srcset="{{img_url feature_image size="s"}} 300w,
 | 
			
		||||
                    {{img_url feature_image size="m"}} 600w,
 | 
			
		||||
                    {{img_url feature_image size="l"}} 1000w,
 | 
			
		||||
                    {{img_url feature_image size="xl"}} 2000w"
 | 
			
		||||
            sizes="(max-width: 1000px) 400px, 700px"
 | 
			
		||||
            src="{{img_url feature_image size="m"}}"
 | 
			
		||||
            alt="{{title}}"
 | 
			
		||||
        />
 | 
			
		||||
    </a>
 | 
			
		||||
    {{/if}}
 | 
			
		||||
 | 
			
		||||
    <div class="post-card-content">
 | 
			
		||||
 | 
			
		||||
        <a class="post-card-content-link" href="{{url}}">
 | 
			
		||||
 | 
			
		||||
            <header class="post-card-header">
 | 
			
		||||
                {{#if primary_tag}}
 | 
			
		||||
                    <span class="post-card-tags">{{primary_tag.name}}</span>
 | 
			
		||||
                {{/if}}
 | 
			
		||||
                <h2 class="post-card-title">{{title}}</h2>
 | 
			
		||||
            </header>
 | 
			
		||||
 | 
			
		||||
            <section class="post-card-excerpt">
 | 
			
		||||
                <p>{{excerpt words="33"}}</p>
 | 
			
		||||
            </section>
 | 
			
		||||
 | 
			
		||||
        </a>
 | 
			
		||||
 | 
			
		||||
        <footer class="post-card-meta">
 | 
			
		||||
 | 
			
		||||
            <ul class="author-list">
 | 
			
		||||
@@ -27,7 +44,9 @@
 | 
			
		||||
                    </div>
 | 
			
		||||
 | 
			
		||||
                    {{#if profile_image}}
 | 
			
		||||
                        <a href="{{url}}" class="static-avatar"><img class="author-profile-image" src="{{profile_image}}" alt="{{name}}" /></a>
 | 
			
		||||
                        <a href="{{url}}" class="static-avatar">
 | 
			
		||||
                            <img class="author-profile-image" src="{{img_url profile_image size="xs"}}" alt="{{name}}" />
 | 
			
		||||
                        </a>
 | 
			
		||||
                    {{else}}
 | 
			
		||||
                        <a href="{{url}}" class="static-avatar author-profile-image">{{> "icons/avatar"}}</a>
 | 
			
		||||
                    {{/if}}
 | 
			
		||||
@@ -38,5 +57,7 @@
 | 
			
		||||
            <span class="reading-time">{{reading_time}}</span>
 | 
			
		||||
 | 
			
		||||
        </footer>
 | 
			
		||||
    </div>
 | 
			
		||||
 | 
			
		||||
    </div>{{!--/.post-card-content--}}
 | 
			
		||||
 | 
			
		||||
</article>
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user