commit 0daa07afa1a8b5d0dcf28bc3c971b0be9f8e8790
parent 9deff18ebbd3e3d801bf16d1a34ef3ffc9733724
Author: George Francis <georgedoescode@gmail.com>
Date: Thu, 2 Jul 2020 08:05:59 +0100
finish up first pass of header, add social sharing options
Diffstat:
11 files changed, 185 insertions(+), 20 deletions(-)
diff --git a/package-lock.json b/package-lock.json
@@ -1,5 +1,5 @@
{
- "name": "squircle-land",
+ "name": "squircle",
"version": "1.0.0",
"lockfileVersion": 1,
"requires": true,
@@ -10163,6 +10163,15 @@
"integrity": "sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q=",
"dev": true
},
+ "svg-to-vue": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/svg-to-vue/-/svg-to-vue-0.7.0.tgz",
+ "integrity": "sha512-Tg2nMmf3BQorYCAjxbtTkYyWPVSeox5AZUFvfy4MoWK/5tuQlnA/h3LAlTjV3sEvOC5FtUNovRSj3p784l4KOA==",
+ "dev": true,
+ "requires": {
+ "svgo": "^1.3.2"
+ }
+ },
"svgo": {
"version": "1.3.2",
"resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz",
@@ -10903,6 +10912,11 @@
"vue-style-loader": "^4.1.0"
}
},
+ "vue-social-sharing": {
+ "version": "3.0.0-beta.11",
+ "resolved": "https://registry.npmjs.org/vue-social-sharing/-/vue-social-sharing-3.0.0-beta.11.tgz",
+ "integrity": "sha512-jIATgcKcBGQveAbU4sKjHcsGN7gI/bq/T9fm/5qowtBuZe0I+5CZRWcAGDd6G64HzQfFEyNBLC02GYjMtaovhA=="
+ },
"vue-style-loader": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/vue-style-loader/-/vue-style-loader-4.1.2.tgz",
@@ -10913,6 +10927,16 @@
"loader-utils": "^1.0.2"
}
},
+ "vue-svg-loader": {
+ "version": "0.16.0",
+ "resolved": "https://registry.npmjs.org/vue-svg-loader/-/vue-svg-loader-0.16.0.tgz",
+ "integrity": "sha512-2RtFXlTCYWm8YAEO2qAOZ2SuIF2NvLutB5muc3KDYoZq5ZeCHf8ggzSan3ksbbca7CJ/Aw57ZnDF4B7W/AkGtw==",
+ "dev": true,
+ "requires": {
+ "loader-utils": "^1.2.3",
+ "svg-to-vue": "^0.7.0"
+ }
+ },
"vue-template-compiler": {
"version": "2.6.11",
"resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.6.11.tgz",
diff --git a/package.json b/package.json
@@ -37,6 +37,7 @@
"stylelint-webpack-plugin": "^2.1.0",
"vue-loader": "^15.9.3",
"vue-style-loader": "^4.1.2",
+ "vue-svg-loader": "^0.16.0",
"vue-template-compiler": "^2.6.11",
"webpack": "^4.43.0",
"webpack-cli": "^3.3.12",
@@ -45,6 +46,7 @@
"dependencies": {
"normalize.css": "^8.0.1",
"vue": "^2.6.11",
+ "vue-social-sharing": "^3.0.0-beta.11",
"vuex": "^3.5.1"
}
}
diff --git a/public/index.html b/public/index.html
@@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
- <title>Generator | Squircle App</title>
+ <title>Squircley | Squircle Maker</title>
<meta
name="description"
content="Create and export beautiful SVG squircles to use in your designs."
diff --git a/src/App.vue b/src/App.vue
@@ -1,11 +1,14 @@
<script>
+ import TheHeader from './components/TheHeader.vue';
+
export default {
name: 'App',
+ components: {
+ TheHeader,
+ },
};
</script>
<template>
- <main>
- <h1>Let's Squircle!</h1>
- </main>
+ <TheHeader />
</template>
diff --git a/src/assets/img/social-icons/reddit-alien.svg b/src/assets/img/social-icons/reddit-alien.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M440.3 203.5c-15 0-28.2 6.2-37.9 15.9-35.7-24.7-83.8-40.6-137.1-42.3L293 52.3l88.2 19.8c0 21.6 17.6 39.2 39.2 39.2 22 0 39.7-18.1 39.7-39.7s-17.6-39.7-39.7-39.7c-15.4 0-28.7 9.3-35.3 22l-97.4-21.6c-4.9-1.3-9.7 2.2-11 7.1L246.3 177c-52.9 2.2-100.5 18.1-136.3 42.8-9.7-10.1-23.4-16.3-38.4-16.3-55.6 0-73.8 74.6-22.9 100.1-1.8 7.9-2.6 16.3-2.6 24.7 0 83.8 94.4 151.7 210.3 151.7 116.4 0 210.8-67.9 210.8-151.7 0-8.4-.9-17.2-3.1-25.1 49.9-25.6 31.5-99.7-23.8-99.7zM129.4 308.9c0-22 17.6-39.7 39.7-39.7 21.6 0 39.2 17.6 39.2 39.7 0 21.6-17.6 39.2-39.2 39.2-22 .1-39.7-17.6-39.7-39.2zm214.3 93.5c-36.4 36.4-139.1 36.4-175.5 0-4-3.5-4-9.7 0-13.7 3.5-3.5 9.7-3.5 13.2 0 27.8 28.5 120 29 149 0 3.5-3.5 9.7-3.5 13.2 0 4.1 4 4.1 10.2.1 13.7zm-.8-54.2c-21.6 0-39.2-17.6-39.2-39.2 0-22 17.6-39.7 39.2-39.7 22 0 39.7 17.6 39.7 39.7-.1 21.5-17.7 39.2-39.7 39.2z"/></svg>
+\ No newline at end of file
diff --git a/src/assets/img/social-icons/twitter.svg b/src/assets/img/social-icons/twitter.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z"/></svg>
+\ No newline at end of file
diff --git a/src/assets/styles/app.css b/src/assets/styles/app.css
@@ -91,20 +91,20 @@ table {
/* Spacing */
--spacing-0: 0.25rem;
--spacing-1: 0.5rem;
- --spacing-3: 0.75rem;
- --spacing-4: 1rem;
- --spacing-5: 1.5rem;
- --spacing-6: 2rem;
- --spacing-7: 3rem;
- --spacing-8: 4rem;
- --spacing-9: 6rem;
- --spacing-10: 8rem;
- --spacing-11: 12rem;
- --spacing-12: 16rem;
- --spacing-13: 24rem;
- --spacing-14: 32rem;
- --spacing-15: 40rem;
- --spacing-16: 48rem;
+ --spacing-2: 0.75rem;
+ --spacing-3: 1rem;
+ --spacing-4: 1.5rem;
+ --spacing-5: 2rem;
+ --spacing-6: 3rem;
+ --spacing-7: 4rem;
+ --spacing-8: 6rem;
+ --spacing-9: 8rem;
+ --spacing-10: 12rem;
+ --spacing-11: 16rem;
+ --spacing-12: 24rem;
+ --spacing-13: 32rem;
+ --spacing-14: 40rem;
+ --spacing-15: 48rem;
/* Colors - Grey */
--grey-900: #1f2933;
@@ -127,4 +127,5 @@ body {
color: var(--grey-900);
-webkit-font-smoothing: antialiased;
-moz-osx-font-smothing: grayscale;
+ background: var(--grey-000);
}
diff --git a/src/components/SocialSharing.vue b/src/components/SocialSharing.vue
@@ -0,0 +1,73 @@
+<script>
+ import RedditLogo from '@/assets/img/social-icons/reddit-alien.svg';
+ import TwitterLogo from '@/assets/img/social-icons/twitter.svg';
+
+ export default {
+ name: 'SocialSharing',
+ components: {
+ RedditLogo,
+ TwitterLogo,
+ },
+ data() {
+ return {
+ sharingOptions: {
+ url: 'https://www.squircley.app',
+ title: 'Squircley | Squircle Maker',
+ },
+ };
+ },
+ };
+</script>
+
+<template>
+ <div class="social-sharing">
+ <ShareNetwork
+ class="social-sharing__icon"
+ network="reddit"
+ v-bind="sharingOptions"
+ >
+ <RedditLogo />
+ </ShareNetwork>
+ <ShareNetwork
+ class="social-sharing__icon"
+ network="twitter"
+ v-bind="sharingOptions"
+ hashtags="squircle, design, shapes, icons, logos"
+ >
+ <TwitterLogo />
+ </ShareNetwork>
+ </div>
+</template>
+
+<style scoped>
+ .social-sharing {
+ width: 100%;
+ height: 100%;
+ display: flex;
+ align-items: center;
+ }
+
+ .social-sharing__icon {
+ display: block;
+ width: var(--spacing-4);
+ height: var(--spacing-4);
+ margin-left: var(--spacing-4);
+ cursor: pointer;
+ transition: transform 125ms ease-in-out;
+ }
+
+ .social-sharing__icon svg {
+ width: 100%;
+ height: 100%;
+ fill: var(--grey-900);
+ transition: fill 125ms ease-in-out;
+ }
+
+ .social-sharing__icon:hover svg {
+ fill: var(--grey-600);
+ }
+
+ .social-sharing__icon:active {
+ transform: scale(0.875);
+ }
+</style>
diff --git a/src/components/TheHeader.vue b/src/components/TheHeader.vue
@@ -0,0 +1,51 @@
+<script>
+ import SocialSharing from './SocialSharing.vue';
+
+ export default {
+ name: 'TheHeader',
+ components: {
+ SocialSharing,
+ },
+ };
+</script>
+
+<template>
+ <header class="header">
+ <div class="header__logo"></div>
+ <h1 class="header__title">Squircle Maker</h1>
+ <div class="header__social">
+ <SocialSharing />
+ </div>
+ </header>
+</template>
+
+<style scoped>
+ .header {
+ display: grid;
+ grid-template-columns: 1fr 1fr 1fr;
+ align-items: center;
+ padding: var(--spacing-4);
+ }
+
+ .header__logo {
+ grid-column: 1;
+ justify-self: start;
+ width: var(--spacing-6);
+ height: var(--spacing-6);
+ background: var(--grey-900);
+ border-radius: 16px;
+ }
+
+ .header__title {
+ grid-column: 2;
+ justify-self: center;
+ font-size: var(--font-size-7);
+ font-weight: 900;
+ text-align: center;
+ }
+
+ .header__social {
+ grid-column: 3;
+ justify-self: end;
+ }
+</style>
diff --git a/src/main.js b/src/main.js
@@ -2,6 +2,9 @@ import './assets/styles/app.css';
import Vue from 'vue';
import App from './App.vue';
+import VueSocialSharing from 'vue-social-sharing';
+
+Vue.use(VueSocialSharing);
Vue.config.productionTip = false;
diff --git a/webpack.config.js b/webpack.config.js
@@ -78,7 +78,7 @@ module.exports = (env, argv) => {
],
},
{
- test: /\.(png|jpe?g|gif|svg)$/i,
+ test: /\.(png|jpe?g|gif)$/i,
use: [
{
loader: 'file-loader',
@@ -89,6 +89,10 @@ module.exports = (env, argv) => {
},
],
},
+ {
+ test: /\.svg$/,
+ use: ['babel-loader', 'vue-svg-loader'],
+ },
],
},
plugins: [