Skip to content

Instantly share code, notes, and snippets.

@chepetime
Last active September 19, 2018 05:14
Show Gist options
  • Save chepetime/1a4c7fb8facf884dee630f3a138da7b4 to your computer and use it in GitHub Desktop.
Save chepetime/1a4c7fb8facf884dee630f3a138da7b4 to your computer and use it in GitHub Desktop.
Make any image a pixelated version of itself
<template>
<div class="Home">
<div class="Grid">
<div
v-for="i in (tiles*tiles)"
v-bind:key="i">
</div>
</div>
</div>
</template>
<script>
export default {
name: 'Pixel Grid',
data: () => ({
tiles: 10,
}),
props: {
msg: String,
},
};
</script>
<style lang="scss">
.Home {
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
background: linear-gradient(
135deg,
darken(#29323c, 10%),
darken(#2b5876, 10%),
darken(#4e4376, 10%));
}
$grid-columns: 10;
$grid-size: 16px;
$grid-bg-size: 100 / $grid-columns;
.Grid {
display: grid;
max-width: $grid-size * $grid-columns + $grid-size;
margin: 0 auto;
grid-gap: 1px;
grid-template-columns: repeat($grid-columns, 1fr);
}
.Grid div {
width: $grid-size;
height: $grid-size;
}
.Grid div {
background-image: url('/img/beer.jpg');
background-size: $grid-size * $grid-columns;
@for $j from 0 through $grid-columns - 1 {
@for $i from 0 through $grid-columns - 1 {
$left: $i * $grid-bg-size;
$top: $j * $grid-bg-size;
&:nth-of-type(#{$i + 1 + ($j * $grid-columns)}) {
background-position: $left*1% $top*1%;
}
}
}
}
</style>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment