From 5f62c017d9690050986e77fa300f38c708b51681 Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Fri, 9 Mar 2018 16:22:23 +0100 Subject: [PATCH 001/200] NGF-18: theme setup with gulp sass --- .gitignore | 5 ++ css/style.css | 9 ++++ gulpfile.js | 54 ++++++++++++++++++++++ js_min/script.js | 0 package.json | 38 ++++++++++++++++ sass/base/_test.scss | 9 ++++ sass/components/_header.scss | 5 ++ sass/style.scss | 9 ++++ templates/page.html.twig | 88 ++++++++++++++++++++++++++++++++++++ 9 files changed, 217 insertions(+) create mode 100644 gulpfile.js create mode 100644 js_min/script.js create mode 100644 package.json create mode 100644 sass/base/_test.scss create mode 100644 sass/components/_header.scss create mode 100644 sass/style.scss create mode 100644 templates/page.html.twig diff --git a/.gitignore b/.gitignore index 57872d0..e9f3210 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,6 @@ /vendor/ +/node_modules/ +package-lock.json +composer.lock +npm-debug.log +css/style.css.map \ No newline at end of file diff --git a/css/style.css b/css/style.css index e69de29..c27cdc1 100644 --- a/css/style.css +++ b/css/style.css @@ -0,0 +1,9 @@ +body { + background: white; +} + +h1 { + color: green; +} + +/*# sourceMappingURL=style.css.map */ diff --git a/gulpfile.js b/gulpfile.js new file mode 100644 index 0000000..a7fd280 --- /dev/null +++ b/gulpfile.js @@ -0,0 +1,54 @@ +'use strict'; +var gulp = require('gulp'); +var sass = require('gulp-sass'); +var glob = require("glob"); +var sourcemaps = require('gulp-sourcemaps'); +var autoprefixer = require('gulp-autoprefixer'); +var nodeSassGlobbing = require('node-sass-globbing'); +var plumber = require('gulp-plumber'); +var browserSync = require('browser-sync').create(); +var uncss = require('gulp-uncss'); +var cssbeautify = require('gulp-cssbeautify'); +var stripCssComments = require('gulp-strip-css-comments'); +var uglify = require('gulp-uglify'); +var livereload = require('gulp-livereload'); +var sass_config = { + importer: nodeSassGlobbing, + includePaths: [ + 'node_modules/breakpoint-sass/stylesheets/', + 'node_modules/modularscale-sass/stylesheets', + 'node_modules/compass-mixins/lib/' + ] +}; + +//Uglifies javascript +gulp.task('uglify', function() { + return gulp.src('js/*.js') + .pipe(uglify()) + .pipe(gulp.dest('js_min')); +}); + +//Compiles sass +gulp.task('sass', function () { + return gulp.src('sass/**/*.scss') + .pipe(plumber()) + .pipe(sourcemaps.init()) + .pipe(sass(sass_config).on('error', sass.logError)) + .pipe(autoprefixer({ + browsers: ['last 2 version'] + })) + .pipe(stripCssComments({preserve: false})) + .pipe(sourcemaps.write('.')) + .pipe(cssbeautify()) + .pipe(gulp.dest('./css')); +}); + +//Type "gulp" on the command line to watch file changes +gulp.task('default', function(){ + livereload.listen(); + gulp.watch('sass/**/*.scss', ['sass']); + gulp.watch('js/*.js', ['uglify']); + gulp.watch(['css/style.css', './**/*.twig', './js_min/*.js'], function (files){ + livereload.changed(files) + }); +}); \ No newline at end of file diff --git a/js_min/script.js b/js_min/script.js new file mode 100644 index 0000000..e69de29 diff --git a/package.json b/package.json new file mode 100644 index 0000000..98f734f --- /dev/null +++ b/package.json @@ -0,0 +1,38 @@ +{ + "name": "funkywave", + "version": "1.0.0", + "description": "Funkywave theme", + "main": "gulpfile.js", + "repository": { + "type": "git", + "url": "git+https://github.com/cnect-web/funkywave.git" + }, + "author": "Peter Neyens", + "license": "ISC", + "bugs": { + "url": "https://github.com/cnect-web/funkywave/issues" + }, + "homepage": "https://github.com/cnect-web/funkywave#readme", + "dependencies": { + "glob": "^4.2.2", + "browser-sync": "^2.23.6", + "compass-mixins": "^0.12.10", + "gulp": "^3.9.1", + "gulp-autoprefixer": "^5.0.0", + "gulp-cssbeautify": "^1.0.0", + "gulp-cssmin": "^0.2.0", + "gulp-watch": "^5.0.0", + "gulp-sourcemaps": "^2.6.4", + "gulp-plumber": "^1.2.0", + "breakpoint-sass": "^2.7.1" + }, + "devDependencies": { + "gulp-livereload": "^3.8.1", + "gulp-sass": "^3.1.0", + "gulp-strip-css-comments": "^2.0.0", + "gulp-uglify": "^3.0.0", + "gulp-uncss": "^1.0.6", + "modularscale-sass": "^3.0.5", + "node-sass-globbing": "0.0.23" + } +} diff --git a/sass/base/_test.scss b/sass/base/_test.scss new file mode 100644 index 0000000..6f56fe6 --- /dev/null +++ b/sass/base/_test.scss @@ -0,0 +1,9 @@ +body { + background: white; +} + +h1 { + color: green; +} + + diff --git a/sass/components/_header.scss b/sass/components/_header.scss new file mode 100644 index 0000000..8e448c5 --- /dev/null +++ b/sass/components/_header.scss @@ -0,0 +1,5 @@ +body { + display: none; + background: red; + +} \ No newline at end of file diff --git a/sass/style.scss b/sass/style.scss new file mode 100644 index 0000000..4ca9ca3 --- /dev/null +++ b/sass/style.scss @@ -0,0 +1,9 @@ +// Import external libraries. +@import "compass"; +@import "modularscale"; +@import "breakpoint"; + +// Import sass partials +@import 'sass/base/test.scss'; +@import 'sass/base/**/*.scss'; +@import "sass/components/**/*.scss"; \ No newline at end of file diff --git a/templates/page.html.twig b/templates/page.html.twig new file mode 100644 index 0000000..613dc87 --- /dev/null +++ b/templates/page.html.twig @@ -0,0 +1,88 @@ +{# +/** + * @file + * Theme override to display a single page. + * + * The doctype, html, head and body tags are not in this template. Instead they + * can be found in the html.html.twig template in this directory. + * + * Available variables: + * + * General utility variables: + * - base_path: The base URL path of the Drupal installation. Will usually be + * "/" unless you have installed Drupal in a sub-directory. + * - is_front: A flag indicating if the current page is the front page. + * - logged_in: A flag indicating if the user is registered and signed in. + * - is_admin: A flag indicating if the user has permission to access + * administration pages. + * + * Site identity: + * - front_page: The URL of the front page. Use this instead of base_path when + * linking to the front page. This includes the language domain or prefix. + * + * Page content (in order of occurrence in the default page.html.twig): + * - node: Fully loaded node, if there is an automatically-loaded node + * associated with the page and the node ID is the second argument in the + * page's path (e.g. node/12345 and node/12345/revisions, but not + * comment/reply/12345). + * + * Regions: + * - page.header: Items for the header region. + * - page.primary_menu: Items for the primary menu region. + * - page.secondary_menu: Items for the secondary menu region. + * - page.highlighted: Items for the highlighted content region. + * - page.help: Dynamic help text, mostly for admin pages. + * - page.content: The main content of the current page. + * - page.sidebar_first: Items for the first sidebar. + * - page.sidebar_second: Items for the second sidebar. + * - page.footer: Items for the footer region. + * - page.breadcrumb: Items for the breadcrumb region. + * + * @see template_preprocess_page() + * @see html.html.twig + */ +#} +
+ +
+ {{ page.header }} +
+ + {{ page.primary_menu }} + {{ page.secondary_menu }} + + {{ page.breadcrumb }} + + {{ page.highlighted }} + + {{ page.help }} + +
+ + {# link is in html.html.twig #} + +
+ {{ page.content }} +
{# /.layout-content #} + + {% if page.sidebar_first %} + + {% endif %} + + {% if page.sidebar_second %} + + {% endif %} + +
+ + {% if page.footer %} +
+ {{ page.footer }} +
+ {% endif %} + +
{# /.layout-container #} From fd1ab095b003dbb89bb89503facac963127bb1cf Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Fri, 9 Mar 2018 16:34:59 +0100 Subject: [PATCH 002/200] NGF-18: changes to gulp.js --- css/style.css | 8 -------- gulpfile.js | 8 ++++---- sass/components/_header.scss | 1 - sass/style.scss | 1 - 4 files changed, 4 insertions(+), 14 deletions(-) diff --git a/css/style.css b/css/style.css index c27cdc1..1b3beb0 100644 --- a/css/style.css +++ b/css/style.css @@ -1,9 +1 @@ -body { - background: white; -} - -h1 { - color: green; -} - /*# sourceMappingURL=style.css.map */ diff --git a/gulpfile.js b/gulpfile.js index a7fd280..41b6dcf 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -30,7 +30,7 @@ gulp.task('uglify', function() { //Compiles sass gulp.task('sass', function () { - return gulp.src('sass/**/*.scss') + return gulp.src('./sass/style.scss') .pipe(plumber()) .pipe(sourcemaps.init()) .pipe(sass(sass_config).on('error', sass.logError)) @@ -46,9 +46,9 @@ gulp.task('sass', function () { //Type "gulp" on the command line to watch file changes gulp.task('default', function(){ livereload.listen(); - gulp.watch('sass/**/*.scss', ['sass']); - gulp.watch('js/*.js', ['uglify']); - gulp.watch(['css/style.css', './**/*.twig', './js_min/*.js'], function (files){ + gulp.watch('./sass/**/*.scss', ['sass']); + gulp.watch('./js/*.js', ['uglify']); + gulp.watch(['./css/style.css', './**/*.twig', './js_min/*.js'], function (files){ livereload.changed(files) }); }); \ No newline at end of file diff --git a/sass/components/_header.scss b/sass/components/_header.scss index 8e448c5..2bc2b1f 100644 --- a/sass/components/_header.scss +++ b/sass/components/_header.scss @@ -1,5 +1,4 @@ body { display: none; background: red; - } \ No newline at end of file diff --git a/sass/style.scss b/sass/style.scss index 4ca9ca3..f096e83 100644 --- a/sass/style.scss +++ b/sass/style.scss @@ -4,6 +4,5 @@ @import "breakpoint"; // Import sass partials -@import 'sass/base/test.scss'; @import 'sass/base/**/*.scss'; @import "sass/components/**/*.scss"; \ No newline at end of file From 2fe1b2742a8b60efc364c57e8daf608bb87f6581 Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Mon, 12 Mar 2018 16:46:39 +0100 Subject: [PATCH 003/200] NGF-18: fix for sass import globbing --- gulpfile.js | 10 ++++++---- sass/base/_base.scss | 3 +++ sass/base/_variables.scss | 0 sass/components/_buttons.scss | 0 sass/style.scss | 4 ++-- 5 files changed, 11 insertions(+), 6 deletions(-) create mode 100644 sass/base/_base.scss create mode 100644 sass/base/_variables.scss create mode 100644 sass/components/_buttons.scss diff --git a/gulpfile.js b/gulpfile.js index 41b6dcf..aa9b05d 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -1,7 +1,6 @@ 'use strict'; var gulp = require('gulp'); var sass = require('gulp-sass'); -var glob = require("glob"); var sourcemaps = require('gulp-sourcemaps'); var autoprefixer = require('gulp-autoprefixer'); var nodeSassGlobbing = require('node-sass-globbing'); @@ -30,16 +29,19 @@ gulp.task('uglify', function() { //Compiles sass gulp.task('sass', function () { - return gulp.src('./sass/style.scss') + return gulp.src('sass/style.scss') .pipe(plumber()) .pipe(sourcemaps.init()) .pipe(sass(sass_config).on('error', sass.logError)) .pipe(autoprefixer({ - browsers: ['last 2 version'] + browsers: ['last 2 versions'] })) .pipe(stripCssComments({preserve: false})) .pipe(sourcemaps.write('.')) - .pipe(cssbeautify()) + .pipe(cssbeautify({ + indent: ' ', + autosemicolon: false + })) .pipe(gulp.dest('./css')); }); diff --git a/sass/base/_base.scss b/sass/base/_base.scss new file mode 100644 index 0000000..b28b04f --- /dev/null +++ b/sass/base/_base.scss @@ -0,0 +1,3 @@ + + + diff --git a/sass/base/_variables.scss b/sass/base/_variables.scss new file mode 100644 index 0000000..e69de29 diff --git a/sass/components/_buttons.scss b/sass/components/_buttons.scss new file mode 100644 index 0000000..e69de29 diff --git a/sass/style.scss b/sass/style.scss index f096e83..679d101 100644 --- a/sass/style.scss +++ b/sass/style.scss @@ -4,5 +4,5 @@ @import "breakpoint"; // Import sass partials -@import 'sass/base/**/*.scss'; -@import "sass/components/**/*.scss"; \ No newline at end of file +@import "base/**/*.scss"; +@import "components/**/*.scss"; \ No newline at end of file From 27bd02cab5f1cf281b7d105ea13686d0d49ca815 Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Mon, 12 Mar 2018 16:54:34 +0100 Subject: [PATCH 004/200] NGF-18: remove sass test files --- sass/base/_test.scss | 9 --------- sass/components/_header.scss | 4 ---- 2 files changed, 13 deletions(-) delete mode 100644 sass/base/_test.scss delete mode 100644 sass/components/_header.scss diff --git a/sass/base/_test.scss b/sass/base/_test.scss deleted file mode 100644 index 6f56fe6..0000000 --- a/sass/base/_test.scss +++ /dev/null @@ -1,9 +0,0 @@ -body { - background: white; -} - -h1 { - color: green; -} - - diff --git a/sass/components/_header.scss b/sass/components/_header.scss deleted file mode 100644 index 2bc2b1f..0000000 --- a/sass/components/_header.scss +++ /dev/null @@ -1,4 +0,0 @@ -body { - display: none; - background: red; -} \ No newline at end of file From 7849fe8a2764de52c8e17a881f54f1c18da75050 Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Tue, 13 Mar 2018 10:38:58 +0100 Subject: [PATCH 005/200] NGF-19: README file created --- README.md | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 754f669..7076932 100644 --- a/README.md +++ b/README.md @@ -1 +1,30 @@ -# funkywave_theme \ No newline at end of file +# funkywave theme + +Drupal 8 theme with Sass and Gulp task runner + +## Development setup + +Requirements: +- [Node.js](https://nodejs.org/en/): `>= 8` +- Gulp + +### How to install node.js? +https://www.digitalocean.com/community/tutorials/how-to-install-node-js-on-ubuntu-16-04 + +### How to install Gulp? +``` +sudo npm install -g gulp +``` + +### Install the node dependencies: +``` +$ npm install +``` + +### Start watching your Sass and JS files: +``` +$ gulp +``` + + + From 7005a6d7ef302f72b2d71619ce55cd328506f8d5 Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Tue, 13 Mar 2018 10:56:09 +0100 Subject: [PATCH 006/200] NGF-19: README file changed --- README.md | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 7076932..7e1f122 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ -# funkywave theme +# Funkywave theme -Drupal 8 theme with Sass and Gulp task runner +Drupal 8 theme with Sass and Gulp task runner. ## Development setup @@ -9,14 +9,23 @@ Requirements: - Gulp ### How to install node.js? + +To find out if node is allready installed, open a terminal window and type: +``` +node -v +``` +If you see a see a version >=8, you are ok. If not install or update your node. https://www.digitalocean.com/community/tutorials/how-to-install-node-js-on-ubuntu-16-04 -### How to install Gulp? +### Install gulp globally ``` sudo npm install -g gulp ``` ### Install the node dependencies: +All packages in package.json will be installed. +Make sure you are in the theme folder before you enter the following command + ``` $ npm install ``` @@ -26,5 +35,7 @@ $ npm install $ gulp ``` +Watch your terminal to see what happens if you change sass and js files. + From d661ba815325027a47515baf013d7eae7e41c535 Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Tue, 13 Mar 2018 10:59:34 +0100 Subject: [PATCH 007/200] NGF-19: README file changed --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 7e1f122..a06f29f 100644 --- a/README.md +++ b/README.md @@ -8,21 +8,21 @@ Requirements: - [Node.js](https://nodejs.org/en/): `>= 8` - Gulp -### How to install node.js? +#### How to install node.js? To find out if node is allready installed, open a terminal window and type: ``` node -v ``` -If you see a see a version >=8, you are ok. If not install or update your node. +If you see a see a version >=8, you are ok. If not install or update your node. The following article is helpfull. https://www.digitalocean.com/community/tutorials/how-to-install-node-js-on-ubuntu-16-04 -### Install gulp globally +#### Install gulp globally ``` sudo npm install -g gulp ``` -### Install the node dependencies: +#### Install the node dependencies: All packages in package.json will be installed. Make sure you are in the theme folder before you enter the following command @@ -30,7 +30,7 @@ Make sure you are in the theme folder before you enter the following command $ npm install ``` -### Start watching your Sass and JS files: +#### Start watching your Sass and JS files: ``` $ gulp ``` From e190917f151ae4e3864a14554ccea0030800f22f Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Tue, 13 Mar 2018 14:34:42 +0100 Subject: [PATCH 008/200] Remove new lines --- README.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/README.md b/README.md index a06f29f..bfae03c 100644 --- a/README.md +++ b/README.md @@ -36,6 +36,3 @@ $ gulp ``` Watch your terminal to see what happens if you change sass and js files. - - - From edc5f407ad06b184c292a9974ffd4f2d9a481743 Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Tue, 13 Mar 2018 14:59:59 +0100 Subject: [PATCH 009/200] Add additional new lines --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index bfae03c..9556d33 100644 --- a/README.md +++ b/README.md @@ -18,6 +18,7 @@ If you see a see a version >=8, you are ok. If not install or update your node. https://www.digitalocean.com/community/tutorials/how-to-install-node-js-on-ubuntu-16-04 #### Install gulp globally + ``` sudo npm install -g gulp ``` @@ -31,6 +32,7 @@ $ npm install ``` #### Start watching your Sass and JS files: + ``` $ gulp ``` From e70480e809bf65f30b5f107f78d63ce423110e16 Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Tue, 13 Mar 2018 15:18:01 +0100 Subject: [PATCH 010/200] develop: change to readme file to test --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 9556d33..654c7ac 100644 --- a/README.md +++ b/README.md @@ -24,8 +24,8 @@ sudo npm install -g gulp ``` #### Install the node dependencies: -All packages in package.json will be installed. Make sure you are in the theme folder before you enter the following command +All packages in package.json will be installed. ``` $ npm install From 8f7f65cf2c0b7c865dfbd8c33da400f9eb28deaf Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Thu, 22 Mar 2018 18:36:24 +0100 Subject: [PATCH 011/200] NGF-22: button component added --- css/style.css | 8 ++++ gulpfile.js | 2 +- sass/patterns/button/_button.scss | 7 +++ sass/patterns/button/button.ui_patterns.yml | 14 ++++++ sass/patterns/button/pattern-button.html.twig | 7 +++ sass/patterns/image/image.ui_patterns.yml | 16 +++++++ sass/patterns/image/pattern-image.html.twig | 10 +++++ sass/style.scss | 5 ++- .../patterns-meta-information.html.twig | 33 ++++++++++++++ .../overview/patterns-overview-page.html.twig | 45 +++++++++++++++++++ .../overview/patterns-single-page.html.twig | 16 +++++++ templates/page.html.twig | 2 + 12 files changed, 162 insertions(+), 3 deletions(-) create mode 100644 sass/patterns/button/_button.scss create mode 100644 sass/patterns/button/button.ui_patterns.yml create mode 100644 sass/patterns/button/pattern-button.html.twig create mode 100644 sass/patterns/image/image.ui_patterns.yml create mode 100644 sass/patterns/image/pattern-image.html.twig create mode 100644 templates/overview/patterns-meta-information.html.twig create mode 100644 templates/overview/patterns-overview-page.html.twig create mode 100644 templates/overview/patterns-single-page.html.twig diff --git a/css/style.css b/css/style.css index 1b3beb0..b72afd5 100644 --- a/css/style.css +++ b/css/style.css @@ -1 +1,9 @@ +.btn { + background: green; + color: #fff; + padding: 10px; + display: inline-block; + margin: 0 0 10px 0; +} + /*# sourceMappingURL=style.css.map */ diff --git a/gulpfile.js b/gulpfile.js index aa9b05d..247d1e0 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -29,7 +29,7 @@ gulp.task('uglify', function() { //Compiles sass gulp.task('sass', function () { - return gulp.src('sass/style.scss') + return gulp.src('sass/*.scss') .pipe(plumber()) .pipe(sourcemaps.init()) .pipe(sass(sass_config).on('error', sass.logError)) diff --git a/sass/patterns/button/_button.scss b/sass/patterns/button/_button.scss new file mode 100644 index 0000000..75f64c5 --- /dev/null +++ b/sass/patterns/button/_button.scss @@ -0,0 +1,7 @@ +.btn { + background: green; + color: #fff; + padding: 10px; + display: inline-block; + margin: 0 0 10px 0; +} \ No newline at end of file diff --git a/sass/patterns/button/button.ui_patterns.yml b/sass/patterns/button/button.ui_patterns.yml new file mode 100644 index 0000000..bfcaad1 --- /dev/null +++ b/sass/patterns/button/button.ui_patterns.yml @@ -0,0 +1,14 @@ +button: + label: Button + description: A simple button. + fields: + title: + type: text + label: Label + description: The button label + preview: Submit + url: + type: text + label: URL + description: The button URL + preview: http://example.com diff --git a/sass/patterns/button/pattern-button.html.twig b/sass/patterns/button/pattern-button.html.twig new file mode 100644 index 0000000..84df300 --- /dev/null +++ b/sass/patterns/button/pattern-button.html.twig @@ -0,0 +1,7 @@ +{# +/** + * @file + * Button pattern. + */ +#} +{{ title }} diff --git a/sass/patterns/image/image.ui_patterns.yml b/sass/patterns/image/image.ui_patterns.yml new file mode 100644 index 0000000..600c744 --- /dev/null +++ b/sass/patterns/image/image.ui_patterns.yml @@ -0,0 +1,16 @@ +image: + label: Image + description: A simple image with caption. + fields: + image: + type: image + label: Image + description: The actual image. + preview: + theme: image + uri: 'http://lorempixel.com/350/250/nature/1' + caption: + type: text + label: Caption + description: The image caption. + preview: © 2017 John Smith photography \ No newline at end of file diff --git a/sass/patterns/image/pattern-image.html.twig b/sass/patterns/image/pattern-image.html.twig new file mode 100644 index 0000000..536ff9a --- /dev/null +++ b/sass/patterns/image/pattern-image.html.twig @@ -0,0 +1,10 @@ +{# +/** + * @file + * Image pattern. + */ +#} +
+
{{ caption }}
+ {{ image }} +
\ No newline at end of file diff --git a/sass/style.scss b/sass/style.scss index 679d101..7b3e270 100644 --- a/sass/style.scss +++ b/sass/style.scss @@ -4,5 +4,6 @@ @import "breakpoint"; // Import sass partials -@import "base/**/*.scss"; -@import "components/**/*.scss"; \ No newline at end of file +//@import "base/*/*.scss"; +//@import "components/*/*.scss"; +@import "patterns/*/*.scss"; \ No newline at end of file diff --git a/templates/overview/patterns-meta-information.html.twig b/templates/overview/patterns-meta-information.html.twig new file mode 100644 index 0000000..e0f0f76 --- /dev/null +++ b/templates/overview/patterns-meta-information.html.twig @@ -0,0 +1,33 @@ +{# +/** + * @file + * UI Pattern meta information. + */ +#} + +{% if pattern is not empty %} + {# Pattern name and desciption. #} +

{{ pattern.description }}

+ + {# Pattern fields descriptions. #} + + + + + + + + + + + {% for field in pattern.fields %} + + + + + + + {% endfor %} + +
{{ "Field"|t }}{{ "Label"|t }}{{ "Type"|t }}{{ "Description"|t }}
{{ field.name }}{{ field.label }}{{ field.type }}{{ field.description }}
+{% endif %} diff --git a/templates/overview/patterns-overview-page.html.twig b/templates/overview/patterns-overview-page.html.twig new file mode 100644 index 0000000..1832f95 --- /dev/null +++ b/templates/overview/patterns-overview-page.html.twig @@ -0,0 +1,45 @@ +{# +/** + * @file + * UI Pattern library page template, override this in your theme. + */ +#} + +{% if patterns is not empty %} +
+ +
+ {# List of available patterns with anchor links. #} + +
+ +
+ {% for pattern_name, pattern in patterns %} + +
+ {# Pattern name and desciption. #} + + View {{ pattern.label }} + + {{ pattern.meta }} + + {# Rendered pattern preview. #} +
+ {{ pattern.rendered }} +
+
+ {% endfor %} +
+
+{% endif %} + + + diff --git a/templates/overview/patterns-single-page.html.twig b/templates/overview/patterns-single-page.html.twig new file mode 100644 index 0000000..3f11283 --- /dev/null +++ b/templates/overview/patterns-single-page.html.twig @@ -0,0 +1,16 @@ +{# +/** + * @file + * UI Pattern library standalone page, override this in your theme. + */ +#} + +{% if pattern is not empty %} + + {{ pattern.meta }} + {# Rendered pattern preview. #} +
+ {{ pattern.rendered }} +
+ +{% endif %} diff --git a/templates/page.html.twig b/templates/page.html.twig index 613dc87..dce2c21 100644 --- a/templates/page.html.twig +++ b/templates/page.html.twig @@ -59,6 +59,8 @@
+ {{ kint(page.content) }} + {# link is in html.html.twig #}
From 3709d9513332d41277f8a72aefa2eb1a4db07c60 Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Thu, 29 Mar 2018 18:55:32 +0200 Subject: [PATCH 012/200] NGF-22: patterns added --- css/style.css | 6 ++++- funkywave.info.yml | 6 +++++ patterns/button/_button.scss | 7 ++++++ patterns/button/button.ui_patterns.yml | 14 ++++++++++++ patterns/button/pattern-button.html.twig | 7 ++++++ patterns/date/_date.scss | 3 +++ patterns/date/date.ui_patterns.yml | 9 ++++++++ patterns/date/pattern-date.html.twig | 8 +++++++ patterns/event_date/_event-date.scss | 1 + .../event_date/event-date.ui_patterns.yml | 14 ++++++++++++ .../event_date/pattern-event-date.html.twig | 20 +++++++++++++++++ patterns/image/image.ui_patterns.yml | 16 ++++++++++++++ patterns/image/pattern-image.html.twig | 10 +++++++++ sass/components/_buttons.scss | 0 templates/ds-1col--node--1.html.twig | 22 +++++++++++++++++++ 15 files changed, 142 insertions(+), 1 deletion(-) create mode 100644 patterns/button/_button.scss create mode 100644 patterns/button/button.ui_patterns.yml create mode 100644 patterns/button/pattern-button.html.twig create mode 100644 patterns/date/_date.scss create mode 100644 patterns/date/date.ui_patterns.yml create mode 100644 patterns/date/pattern-date.html.twig create mode 100644 patterns/event_date/_event-date.scss create mode 100644 patterns/event_date/event-date.ui_patterns.yml create mode 100644 patterns/event_date/pattern-event-date.html.twig create mode 100644 patterns/image/image.ui_patterns.yml create mode 100644 patterns/image/pattern-image.html.twig delete mode 100644 sass/components/_buttons.scss create mode 100644 templates/ds-1col--node--1.html.twig diff --git a/css/style.css b/css/style.css index b72afd5..0af724e 100644 --- a/css/style.css +++ b/css/style.css @@ -1,9 +1,13 @@ .btn { - background: green; + background: red; color: #fff; padding: 10px; display: inline-block; margin: 0 0 10px 0; } +.event-date { + font-weight: bold; +} + /*# sourceMappingURL=style.css.map */ diff --git a/funkywave.info.yml b/funkywave.info.yml index c5f2543..1fe0e0b 100644 --- a/funkywave.info.yml +++ b/funkywave.info.yml @@ -6,6 +6,12 @@ base theme: classy libraries: - funkywave/global-css - funkywave/global-js +# components module needs to be installed to use +# {% include "@myLib/box/box.twig" %} +component-libraries: + patterns: + paths: + - patterns libraries-override: system/base: false classy/base: false \ No newline at end of file diff --git a/patterns/button/_button.scss b/patterns/button/_button.scss new file mode 100644 index 0000000..6a1da31 --- /dev/null +++ b/patterns/button/_button.scss @@ -0,0 +1,7 @@ +.btn { + background: red; + color: #fff; + padding: 10px; + display: inline-block; + margin: 0 0 10px 0; +} \ No newline at end of file diff --git a/patterns/button/button.ui_patterns.yml b/patterns/button/button.ui_patterns.yml new file mode 100644 index 0000000..bfcaad1 --- /dev/null +++ b/patterns/button/button.ui_patterns.yml @@ -0,0 +1,14 @@ +button: + label: Button + description: A simple button. + fields: + title: + type: text + label: Label + description: The button label + preview: Submit + url: + type: text + label: URL + description: The button URL + preview: http://example.com diff --git a/patterns/button/pattern-button.html.twig b/patterns/button/pattern-button.html.twig new file mode 100644 index 0000000..84df300 --- /dev/null +++ b/patterns/button/pattern-button.html.twig @@ -0,0 +1,7 @@ +{# +/** + * @file + * Button pattern. + */ +#} +{{ title }} diff --git a/patterns/date/_date.scss b/patterns/date/_date.scss new file mode 100644 index 0000000..1b9da9b --- /dev/null +++ b/patterns/date/_date.scss @@ -0,0 +1,3 @@ +.event-date { + font-weight: bold; +} diff --git a/patterns/date/date.ui_patterns.yml b/patterns/date/date.ui_patterns.yml new file mode 100644 index 0000000..1865d49 --- /dev/null +++ b/patterns/date/date.ui_patterns.yml @@ -0,0 +1,9 @@ +date: + label: Date + description: A date with a label. + fields: + date: + type: date + label: Date + description: Date d/m/Y + preview: 15/11/2018 \ No newline at end of file diff --git a/patterns/date/pattern-date.html.twig b/patterns/date/pattern-date.html.twig new file mode 100644 index 0000000..f8793bb --- /dev/null +++ b/patterns/date/pattern-date.html.twig @@ -0,0 +1,8 @@ +{# +/** + * @file + * Image pattern. + */ +#} + + diff --git a/patterns/event_date/_event-date.scss b/patterns/event_date/_event-date.scss new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/patterns/event_date/_event-date.scss @@ -0,0 +1 @@ + diff --git a/patterns/event_date/event-date.ui_patterns.yml b/patterns/event_date/event-date.ui_patterns.yml new file mode 100644 index 0000000..816d09c --- /dev/null +++ b/patterns/event_date/event-date.ui_patterns.yml @@ -0,0 +1,14 @@ +event_date: + label: Event Date + description: Date event info. + fields: + event_start_date: + type: date + label: Event start date + description: Date d/m/Y + preview: 15/11/2018 + event_end_date: + type: date + label: Event end date + description: Date d/m/Y + preview: 15/11/2018 \ No newline at end of file diff --git a/patterns/event_date/pattern-event-date.html.twig b/patterns/event_date/pattern-event-date.html.twig new file mode 100644 index 0000000..99fb82d --- /dev/null +++ b/patterns/event_date/pattern-event-date.html.twig @@ -0,0 +1,20 @@ +{# +/** + * @file + * Image pattern. + * {{kint(_context)}} + * {{ kint(_context|keys) }} + * {{ kint(content|keys) }} + */ +#} + +
+

Date

+
+ {% if event_end_date.0 is empty %} + {{ event_start_date }} + {% else %} + {% trans %} From {% endtrans %} {{ event_start_date }} {% trans %} to {% endtrans %} {{ event_end_date }} + {% endif %} +
+
\ No newline at end of file diff --git a/patterns/image/image.ui_patterns.yml b/patterns/image/image.ui_patterns.yml new file mode 100644 index 0000000..600c744 --- /dev/null +++ b/patterns/image/image.ui_patterns.yml @@ -0,0 +1,16 @@ +image: + label: Image + description: A simple image with caption. + fields: + image: + type: image + label: Image + description: The actual image. + preview: + theme: image + uri: 'http://lorempixel.com/350/250/nature/1' + caption: + type: text + label: Caption + description: The image caption. + preview: © 2017 John Smith photography \ No newline at end of file diff --git a/patterns/image/pattern-image.html.twig b/patterns/image/pattern-image.html.twig new file mode 100644 index 0000000..536ff9a --- /dev/null +++ b/patterns/image/pattern-image.html.twig @@ -0,0 +1,10 @@ +{# +/** + * @file + * Image pattern. + */ +#} +
+
{{ caption }}
+ {{ image }} +
\ No newline at end of file diff --git a/sass/components/_buttons.scss b/sass/components/_buttons.scss deleted file mode 100644 index e69de29..0000000 diff --git a/templates/ds-1col--node--1.html.twig b/templates/ds-1col--node--1.html.twig new file mode 100644 index 0000000..a053f93 --- /dev/null +++ b/templates/ds-1col--node--1.html.twig @@ -0,0 +1,22 @@ +{# +/** + * @file + * Display Suite 1 column template. + * + * Available variables: + * - ds_content_wrapper: wrapper around content + * - attributes: content region attributes + * - ds_content: content region + {{ title_suffix.contextual_links }} + */ +#} +<{{ ds_content_wrapper }}{{ attributes.addClass('ds-1col', 'clearfix') }}> + +{% if content.group_event_start_end_date.field_ngf_event_end_date.0 is empty %} + + +{% endif %} + +{{ (ds_content) }} + + \ No newline at end of file From 1b37b8eb77a3a4d060e0a3c685340eb3136b4a7d Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Fri, 30 Mar 2018 12:12:40 +0200 Subject: [PATCH 013/200] NGF-22: changes to patterns --- patterns/date/date.ui_patterns.yml | 2 +- patterns/date/pattern-date.html.twig | 6 +++++- patterns/event_date/event-date.ui_patterns.yml | 4 ++-- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/patterns/date/date.ui_patterns.yml b/patterns/date/date.ui_patterns.yml index 1865d49..faad50a 100644 --- a/patterns/date/date.ui_patterns.yml +++ b/patterns/date/date.ui_patterns.yml @@ -6,4 +6,4 @@ date: type: date label: Date description: Date d/m/Y - preview: 15/11/2018 \ No newline at end of file + preview: 2001-05-15T19:00 \ No newline at end of file diff --git a/patterns/date/pattern-date.html.twig b/patterns/date/pattern-date.html.twig index f8793bb..cb4c1c3 100644 --- a/patterns/date/pattern-date.html.twig +++ b/patterns/date/pattern-date.html.twig @@ -5,4 +5,8 @@ */ #} - +{% set day = date|date('d') %} +{% set month = date|date('m') %} +{% set year = date|date('Y') %} + + diff --git a/patterns/event_date/event-date.ui_patterns.yml b/patterns/event_date/event-date.ui_patterns.yml index 816d09c..a53a9a5 100644 --- a/patterns/event_date/event-date.ui_patterns.yml +++ b/patterns/event_date/event-date.ui_patterns.yml @@ -6,9 +6,9 @@ event_date: type: date label: Event start date description: Date d/m/Y - preview: 15/11/2018 + preview: 2001-05-15T19:00 event_end_date: type: date label: Event end date description: Date d/m/Y - preview: 15/11/2018 \ No newline at end of file + preview: 2001-05-15T19:00 \ No newline at end of file From dffd23411467a07f636eedc969c8140a95327ca6 Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Fri, 30 Mar 2018 15:20:15 +0200 Subject: [PATCH 014/200] added ui patterns module to composer --- composer.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/composer.json b/composer.json index 4c3364a..742ec13 100644 --- a/composer.json +++ b/composer.json @@ -7,5 +7,8 @@ "email": "peter.neyens@telenet.be" } ], - "require": {} + "require": { + "drupal/group": "^1.0", + "drupal/components" "^1.0" + } } From 6ae538447cdf456cb8c10cdcfc2d29c802b39df6 Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Fri, 6 Apr 2018 12:15:49 +0200 Subject: [PATCH 015/200] NGF-EVENT: twig file created for event content type --- .../event_date/pattern-event-date.html.twig | 2 +- templates/content/node--ngf-event.html.twig | 165 ++++++++++++++++++ templates/layout/page.html.twig | 88 ++++++++++ templates/paragraphs/paragraph.html.twig | 54 ++++++ 4 files changed, 308 insertions(+), 1 deletion(-) create mode 100644 templates/content/node--ngf-event.html.twig create mode 100644 templates/layout/page.html.twig create mode 100644 templates/paragraphs/paragraph.html.twig diff --git a/patterns/event_date/pattern-event-date.html.twig b/patterns/event_date/pattern-event-date.html.twig index 99fb82d..4e2bf79 100644 --- a/patterns/event_date/pattern-event-date.html.twig +++ b/patterns/event_date/pattern-event-date.html.twig @@ -17,4 +17,4 @@ {% trans %} From {% endtrans %} {{ event_start_date }} {% trans %} to {% endtrans %} {{ event_end_date }} {% endif %}
- \ No newline at end of file + diff --git a/templates/content/node--ngf-event.html.twig b/templates/content/node--ngf-event.html.twig new file mode 100644 index 0000000..c6165bb --- /dev/null +++ b/templates/content/node--ngf-event.html.twig @@ -0,0 +1,165 @@ +{# +/** + * @file + * Theme override to display a node. + * + * Available variables: + * - node: The node entity with limited access to object properties and methods. + * Only method names starting with "get", "has", or "is" and a few common + * methods such as "id", "label", and "bundle" are available. For example: + * - node.getCreatedTime() will return the node creation timestamp. + * - node.hasField('field_example') returns TRUE if the node bundle includes + * field_example. (This does not indicate the presence of a value in this + * field.) + * - node.isPublished() will return whether the node is published or not. + * Calling other methods, such as node.delete(), will result in an exception. + * See \Drupal\node\Entity\Node for a full list of public properties and + * methods for the node object. + * - label: The title of the node. + * - content: All node items. Use {{ content }} to print them all, + * or print a subset such as {{ content.field_example }}. Use + * {{ content|without('field_example') }} to temporarily suppress the printing + * of a given child element. + * - author_picture: The node author user entity, rendered using the "compact" + * view mode. + * - metadata: Metadata for this node. + * - date: Themed creation date field. + * - author_name: Themed author name field. + * - url: Direct URL of the current node. + * - display_submitted: Whether submission information should be displayed. + * - attributes: HTML attributes for the containing element. + * The attributes.class element may contain one or more of the following + * classes: + * - node: The current template type (also known as a "theming hook"). + * - node--type-[type]: The current node type. For example, if the node is an + * "Article" it would result in "node--type-article". Note that the machine + * name will often be in a short form of the human readable label. + * - node--view-mode-[view_mode]: The View Mode of the node; for example, a + * teaser would result in: "node--view-mode-teaser", and + * full: "node--view-mode-full". + * The following are controlled through the node publishing options. + * - node--promoted: Appears on nodes promoted to the front page. + * - node--sticky: Appears on nodes ordered above other non-sticky nodes in + * teaser listings. + * - node--unpublished: Appears on unpublished nodes visible only to site + * admins. + * - title_attributes: Same as attributes, except applied to the main title + * tag that appears in the template. + * - content_attributes: Same as attributes, except applied to the main + * content tag that appears in the template. + * - author_attributes: Same as attributes, except applied to the author of + * the node tag that appears in the template. + * - title_prefix: Additional output populated by modules, intended to be + * displayed in front of the main title tag that appears in the template. + * - title_suffix: Additional output populated by modules, intended to be + * displayed after the main title tag that appears in the template. + * - view_mode: View mode; for example, "teaser" or "full". + * - teaser: Flag for the teaser state. Will be true if view_mode is 'teaser'. + * - page: Flag for the full page state. Will be true if view_mode is 'full'. + * - readmore: Flag for more state. Will be true if the teaser content of the + * node cannot hold the main body content. + * - logged_in: Flag for authenticated user status. Will be true when the + * current user is a logged-in member. + * - is_admin: Flag for admin user status. Will be true when the current user + * is an administrator. + * + * @see template_preprocess_node() + * + * @todo Remove the id attribute (or make it a class), because if that gets + * rendered twice on a page this is invalid CSS for example: two lists + * in different view modes. + */ +#} +{% + set classes = [ + 'node', + 'node--type-' ~ node.bundle|clean_class, + node.isPromoted() ? 'node--promoted', + node.isSticky() ? 'node--sticky', + not node.isPublished() ? 'node--unpublished', + view_mode ? 'node--view-mode-' ~ view_mode|clean_class, + ] +%} +{{ attach_library('classy/node') }} + + + {{ title_prefix }} + {% if not page %} + + {{ label }} + + {% endif %} + {{ title_suffix }} + + {% if display_submitted %} +
+ {{ author_picture }} + + {% trans %}Submitted by {{ author_name }} on {{ date }}{% endtrans %} + {{ metadata }} + +
+ {% endif %} + + + + {# convert date to an integer stamp #} + {% set event_start_date = node.field_ngf_event_start_date.value|date('U') %} + {# Convert event_end_date to an integer stamp if not empty #} + {% if node.field_ngf_event_end_date is not empty %} + {% set event_end_date = node.field_ngf_event_end_date.value|date('U') %} + {% else %} + {% set event_end_date = NULL %} + {% endif %} + + {# Event year #} + {% set event_start_date_year = event_start_date|date('Y') %} + {% set event_end_date_year = event_end_date|date('Y') %} + + {# Event month #} + {% set event_start_date_month = event_start_date|date('m') %} + {% set event_end_date_month = event_end_date|date('m') %} + + {# Start date & end date the same #} + +
+

{% trans %} When {% endtrans %}

+ {% if event_end_date is null %} + + {% else %} + {# same month same year #} + {% if (event_start_date_month == event_end_date_month) and (event_start_date_year == event_end_date_year) %} + + - + + {# different month same year #} + {% elseif (event_start_date_month != event_end_date_month) and (event_start_date_year == event_end_date_year) %} + + - + + {# different year for event start date & end date #} + {% elseif (event_start_date_year != event_end_date_year) %} + + - + + {% endif %} + {% endif %} +
+ + {% if node.field_ngf_address is not empty %} +
+

{% trans %} Location {% endtrans %}

+ {{ content.field_ngf_venue|field_value }} + {{ content.field_ngf_address|field_value }} +
+ {% endif %} + + {{ content.field_ngf_registration_link }} + + {{ content.field_ngf_description }} + + {{ kint(content|keys) }} + + + + \ No newline at end of file diff --git a/templates/layout/page.html.twig b/templates/layout/page.html.twig new file mode 100644 index 0000000..613dc87 --- /dev/null +++ b/templates/layout/page.html.twig @@ -0,0 +1,88 @@ +{# +/** + * @file + * Theme override to display a single page. + * + * The doctype, html, head and body tags are not in this template. Instead they + * can be found in the html.html.twig template in this directory. + * + * Available variables: + * + * General utility variables: + * - base_path: The base URL path of the Drupal installation. Will usually be + * "/" unless you have installed Drupal in a sub-directory. + * - is_front: A flag indicating if the current page is the front page. + * - logged_in: A flag indicating if the user is registered and signed in. + * - is_admin: A flag indicating if the user has permission to access + * administration pages. + * + * Site identity: + * - front_page: The URL of the front page. Use this instead of base_path when + * linking to the front page. This includes the language domain or prefix. + * + * Page content (in order of occurrence in the default page.html.twig): + * - node: Fully loaded node, if there is an automatically-loaded node + * associated with the page and the node ID is the second argument in the + * page's path (e.g. node/12345 and node/12345/revisions, but not + * comment/reply/12345). + * + * Regions: + * - page.header: Items for the header region. + * - page.primary_menu: Items for the primary menu region. + * - page.secondary_menu: Items for the secondary menu region. + * - page.highlighted: Items for the highlighted content region. + * - page.help: Dynamic help text, mostly for admin pages. + * - page.content: The main content of the current page. + * - page.sidebar_first: Items for the first sidebar. + * - page.sidebar_second: Items for the second sidebar. + * - page.footer: Items for the footer region. + * - page.breadcrumb: Items for the breadcrumb region. + * + * @see template_preprocess_page() + * @see html.html.twig + */ +#} +
+ +
+ {{ page.header }} +
+ + {{ page.primary_menu }} + {{ page.secondary_menu }} + + {{ page.breadcrumb }} + + {{ page.highlighted }} + + {{ page.help }} + +
+ + {# link is in html.html.twig #} + +
+ {{ page.content }} +
{# /.layout-content #} + + {% if page.sidebar_first %} + + {% endif %} + + {% if page.sidebar_second %} + + {% endif %} + +
+ + {% if page.footer %} +
+ {{ page.footer }} +
+ {% endif %} + +
{# /.layout-container #} diff --git a/templates/paragraphs/paragraph.html.twig b/templates/paragraphs/paragraph.html.twig new file mode 100644 index 0000000..f2ef92b --- /dev/null +++ b/templates/paragraphs/paragraph.html.twig @@ -0,0 +1,54 @@ +{# +/** + * @file + * Default theme implementation to display a paragraph. + * + * Available variables: + * - paragraph: Full paragraph entity. + * Only method names starting with "get", "has", or "is" and a few common + * methods such as "id", "label", and "bundle" are available. For example: + * - paragraph.getCreatedTime() will return the paragraph creation timestamp. + * - paragraph.id(): The paragraph ID. + * - paragraph.bundle(): The type of the paragraph, for example, "image" or "text". + * - paragraph.getOwnerId(): The user ID of the paragraph author. + * See Drupal\paragraphs\Entity\Paragraph for a full list of public properties + * and methods for the paragraph object. + * - content: All paragraph items. Use {{ content }} to print them all, + * or print a subset such as {{ content.field_example }}. Use + * {{ content|without('field_example') }} to temporarily suppress the printing + * of a given child element. + * - attributes: HTML attributes for the containing element. + * The attributes.class element may contain one or more of the following + * classes: + * - paragraphs: The current template type (also known as a "theming hook"). + * - paragraphs--type-[type]: The current paragraphs type. For example, if the paragraph is an + * "Image" it would result in "paragraphs--type--image". Note that the machine + * name will often be in a short form of the human readable label. + * - paragraphs--view-mode--[view_mode]: The View Mode of the paragraph; for example, a + * preview would result in: "paragraphs--view-mode--preview", and + * default: "paragraphs--view-mode--default". + * - view_mode: View mode; for example, "preview" or "full". + * - logged_in: Flag for authenticated user status. Will be true when the + * current user is a logged-in member. + * - is_admin: Flag for admin user status. Will be true when the current user + * is an administrator. + * + * @see template_preprocess_paragraph() + * + * @ingroup themeable + */ +#} +{% + set classes = [ + 'paragraph', + 'paragraph--type--' ~ paragraph.bundle|clean_class, + view_mode ? 'paragraph--view-mode--' ~ view_mode|clean_class, + ] +%} +{% block paragraph %} + + {% block content %} + {{ content }} + {% endblock %} + +{% endblock paragraph %} From 7fa468d2f79acce52d0d7ea93a26f9dffbb0a632 Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Fri, 6 Apr 2018 16:52:59 +0200 Subject: [PATCH 016/200] NGF-EVENT: integration component --- templates/content/node--ngf-event.html.twig | 17 +++- templates/ds-1col--node--1.html.twig | 22 ----- templates/page.html.twig | 90 --------------------- 3 files changed, 15 insertions(+), 114 deletions(-) delete mode 100644 templates/ds-1col--node--1.html.twig delete mode 100644 templates/page.html.twig diff --git a/templates/content/node--ngf-event.html.twig b/templates/content/node--ngf-event.html.twig index c6165bb..85ed0ce 100644 --- a/templates/content/node--ngf-event.html.twig +++ b/templates/content/node--ngf-event.html.twig @@ -152,9 +152,22 @@ {{ content.field_ngf_venue|field_value }} {{ content.field_ngf_address|field_value }} - {% endif %} + {% endif %} + + {# How to integrate a component #} + + {# + + {% include "@patterns/button/pattern-button.html.twig" + with{ + url: content.field_ngf_venue|field_value, + title: content.field_ngf_venue|field_value + } + %} + + #} - {{ content.field_ngf_registration_link }} + {{ kint(content.field_ngf_registration_link|keys) }} {{ content.field_ngf_description }} diff --git a/templates/ds-1col--node--1.html.twig b/templates/ds-1col--node--1.html.twig deleted file mode 100644 index a053f93..0000000 --- a/templates/ds-1col--node--1.html.twig +++ /dev/null @@ -1,22 +0,0 @@ -{# -/** - * @file - * Display Suite 1 column template. - * - * Available variables: - * - ds_content_wrapper: wrapper around content - * - attributes: content region attributes - * - ds_content: content region - {{ title_suffix.contextual_links }} - */ -#} -<{{ ds_content_wrapper }}{{ attributes.addClass('ds-1col', 'clearfix') }}> - -{% if content.group_event_start_end_date.field_ngf_event_end_date.0 is empty %} - - -{% endif %} - -{{ (ds_content) }} - - \ No newline at end of file diff --git a/templates/page.html.twig b/templates/page.html.twig deleted file mode 100644 index dce2c21..0000000 --- a/templates/page.html.twig +++ /dev/null @@ -1,90 +0,0 @@ -{# -/** - * @file - * Theme override to display a single page. - * - * The doctype, html, head and body tags are not in this template. Instead they - * can be found in the html.html.twig template in this directory. - * - * Available variables: - * - * General utility variables: - * - base_path: The base URL path of the Drupal installation. Will usually be - * "/" unless you have installed Drupal in a sub-directory. - * - is_front: A flag indicating if the current page is the front page. - * - logged_in: A flag indicating if the user is registered and signed in. - * - is_admin: A flag indicating if the user has permission to access - * administration pages. - * - * Site identity: - * - front_page: The URL of the front page. Use this instead of base_path when - * linking to the front page. This includes the language domain or prefix. - * - * Page content (in order of occurrence in the default page.html.twig): - * - node: Fully loaded node, if there is an automatically-loaded node - * associated with the page and the node ID is the second argument in the - * page's path (e.g. node/12345 and node/12345/revisions, but not - * comment/reply/12345). - * - * Regions: - * - page.header: Items for the header region. - * - page.primary_menu: Items for the primary menu region. - * - page.secondary_menu: Items for the secondary menu region. - * - page.highlighted: Items for the highlighted content region. - * - page.help: Dynamic help text, mostly for admin pages. - * - page.content: The main content of the current page. - * - page.sidebar_first: Items for the first sidebar. - * - page.sidebar_second: Items for the second sidebar. - * - page.footer: Items for the footer region. - * - page.breadcrumb: Items for the breadcrumb region. - * - * @see template_preprocess_page() - * @see html.html.twig - */ -#} -
- -
- {{ page.header }} -
- - {{ page.primary_menu }} - {{ page.secondary_menu }} - - {{ page.breadcrumb }} - - {{ page.highlighted }} - - {{ page.help }} - -
- - {{ kint(page.content) }} - - {# link is in html.html.twig #} - -
- {{ page.content }} -
{# /.layout-content #} - - {% if page.sidebar_first %} - - {% endif %} - - {% if page.sidebar_second %} - - {% endif %} - -
- - {% if page.footer %} -
- {{ page.footer }} -
- {% endif %} - -
{# /.layout-container #} From 5c883f4d3e6194d9cb07fbdbecd019979c6f4ba4 Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Fri, 6 Apr 2018 18:00:22 +0200 Subject: [PATCH 017/200] NGF-EVENTS: integrated button component in events --- templates/content/node--ngf-event.html.twig | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/templates/content/node--ngf-event.html.twig b/templates/content/node--ngf-event.html.twig index 85ed0ce..ac821fc 100644 --- a/templates/content/node--ngf-event.html.twig +++ b/templates/content/node--ngf-event.html.twig @@ -154,20 +154,24 @@ {% endif %} + + + + {# {{ content.field_ngf_registration_link|field_raw('uri') }} #} + + {# How to integrate a component #} - {# + {% include "@patterns/button/pattern-button.html.twig" with{ - url: content.field_ngf_venue|field_value, - title: content.field_ngf_venue|field_value + url: content.field_ngf_registration_link|field_raw('uri'), + title: content.field_ngf_registration_link|field_raw('title') } %} - #} - - {{ kint(content.field_ngf_registration_link|keys) }} + {{ content.field_ngf_description }} From e042babef8193dbe29bdd51d268eebdc0403f724 Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Mon, 16 Apr 2018 15:16:20 +0200 Subject: [PATCH 018/200] NGF-EVENT: changes to integration button component --- templates/content/node--ngf-event.html.twig | 25 ++++++++++----------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/templates/content/node--ngf-event.html.twig b/templates/content/node--ngf-event.html.twig index ac821fc..099443d 100644 --- a/templates/content/node--ngf-event.html.twig +++ b/templates/content/node--ngf-event.html.twig @@ -146,6 +146,8 @@ {% endif %} + {# Event Location #} + {% if node.field_ngf_address is not empty %}

{% trans %} Location {% endtrans %}

@@ -154,24 +156,21 @@
{% endif %} + {# Integration Button component for registration event #} - - - {# {{ content.field_ngf_registration_link|field_raw('uri') }} #} - - - {# How to integrate a component #} + {% set event_registration_url = content.field_ngf_registration_link|field_raw('uri') %} + {% set event_registration_title = content.field_ngf_registration_link|field_raw('title') %} - - - {% include "@patterns/button/pattern-button.html.twig" + {% if event_registration_url is not empty %} + {% include "@patterns/button/pattern-button.html.twig" with{ - url: content.field_ngf_registration_link|field_raw('uri'), - title: content.field_ngf_registration_link|field_raw('title') + url: event_registration_url, + title: event_registration_title } %} - - + {% endif %} + + {# Event content #} {{ content.field_ngf_description }} From fa4bc4498b6f262c4fea6edc2ca2528e95d27320 Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Wed, 18 Apr 2018 13:15:58 +0200 Subject: [PATCH 019/200] NGF-45: regions added to info file and page.htmltwig --- funkywave.info.yml | 5 +++ templates/content/node--ngf-event.html.twig | 22 +++++------ templates/layout/page.html.twig | 42 +++++++++------------ 3 files changed, 34 insertions(+), 35 deletions(-) diff --git a/funkywave.info.yml b/funkywave.info.yml index 1fe0e0b..e1fb025 100644 --- a/funkywave.info.yml +++ b/funkywave.info.yml @@ -3,6 +3,11 @@ type: theme description: 'Funkywave theme' core: 8.x base theme: classy +regions: + logo_area: 'Logo area' + header: 'Header' + content: 'Content' + footer: 'Footer' libraries: - funkywave/global-css - funkywave/global-js diff --git a/templates/content/node--ngf-event.html.twig b/templates/content/node--ngf-event.html.twig index 099443d..8ac795f 100644 --- a/templates/content/node--ngf-event.html.twig +++ b/templates/content/node--ngf-event.html.twig @@ -92,11 +92,11 @@ {{ title_suffix }} {% if display_submitted %} -
+
{% endif %} @@ -125,23 +125,23 @@

{% trans %} When {% endtrans %}

{% if event_end_date is null %} - + {% else %} {# same month same year #} {% if (event_start_date_month == event_end_date_month) and (event_start_date_year == event_end_date_year) %} - + - - + {# different month same year #} {% elseif (event_start_date_month != event_end_date_month) and (event_start_date_year == event_end_date_year) %} - + - - + {# different year for event start date & end date #} {% elseif (event_start_date_year != event_end_date_year) %} - + - - + {% endif %} {% endif %}
diff --git a/templates/layout/page.html.twig b/templates/layout/page.html.twig index 613dc87..23e7bde 100644 --- a/templates/layout/page.html.twig +++ b/templates/layout/page.html.twig @@ -42,21 +42,27 @@ * @see html.html.twig */ #} -
+
-
- {{ page.header }} -
- - {{ page.primary_menu }} - {{ page.secondary_menu }} - - {{ page.breadcrumb }} - - {{ page.highlighted }} +
+ {{ page.logo_area }} +
- {{ page.help }} +
+ {{ page.logo_area }} + +
+
{# link is in html.html.twig #} @@ -65,18 +71,6 @@ {{ page.content }}
{# /.layout-content #} - {% if page.sidebar_first %} - - {% endif %} - - {% if page.sidebar_second %} - - {% endif %} -
{% if page.footer %} From de05358b7cd8ea825df81fa631ffec67b0de94aa Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Wed, 18 Apr 2018 14:29:24 +0200 Subject: [PATCH 020/200] NGF-45: defined regions in page.html.twig template --- templates/layout/page.html.twig | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/templates/layout/page.html.twig b/templates/layout/page.html.twig index 23e7bde..c1d9cfd 100644 --- a/templates/layout/page.html.twig +++ b/templates/layout/page.html.twig @@ -49,18 +49,7 @@
- {{ page.logo_area }} - - + {{ page.header }}
From f67bf163ba5afa6fcfe05818b55ed3c9939b6f59 Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Fri, 20 Apr 2018 18:36:05 +0200 Subject: [PATCH 021/200] develop: testing with embed and twig blocks --- .../content/backup_node--ngf-event.html.twig | 233 +++++++++++++++++ templates/content/node--ngf-event.html.twig | 245 +++++------------- templates/content/node.html.twig | 140 ++++++++++ 3 files changed, 445 insertions(+), 173 deletions(-) create mode 100644 templates/content/backup_node--ngf-event.html.twig create mode 100644 templates/content/node.html.twig diff --git a/templates/content/backup_node--ngf-event.html.twig b/templates/content/backup_node--ngf-event.html.twig new file mode 100644 index 0000000..9186994 --- /dev/null +++ b/templates/content/backup_node--ngf-event.html.twig @@ -0,0 +1,233 @@ +{# +/** + * @file + * Theme override to display a node. + * + * Available variables: + * - node: The node entity with limited access to object properties and methods. + * Only method names starting with "get", "has", or "is" and a few common + * methods such as "id", "label", and "bundle" are available. For example: + * - node.getCreatedTime() will return the node creation timestamp. + * - node.hasField('field_example') returns TRUE if the node bundle includes + * field_example. (This does not indicate the presence of a value in this + * field.) + * - node.isPublished() will return whether the node is published or not. + * Calling other methods, such as node.delete(), will result in an exception. + * See \Drupal\node\Entity\Node for a full list of public properties and + * methods for the node object. + * - label: The title of the node. + * - content: All node items. Use {{ content }} to print them all, + * or print a subset such as {{ content.field_example }}. Use + * {{ content|without('field_example') }} to temporarily suppress the printing + * of a given child element. + * - author_picture: The node author user entity, rendered using the "compact" + * view mode. + * - metadata: Metadata for this node. + * - date: Themed creation date field. + * - author_name: Themed author name field. + * - url: Direct URL of the current node. + * - display_submitted: Whether submission information should be displayed. + * - attributes: HTML attributes for the containing element. + * The attributes.class element may contain one or more of the following + * classes: + * - node: The current template type (also known as a "theming hook"). + * - node--type-[type]: The current node type. For example, if the node is an + * "Article" it would result in "node--type-article". Note that the machine + * name will often be in a short form of the human readable label. + * - node--view-mode-[view_mode]: The View Mode of the node; for example, a + * teaser would result in: "node--view-mode-teaser", and + * full: "node--view-mode-full". + * The following are controlled through the node publishing options. + * - node--promoted: Appears on nodes promoted to the front page. + * - node--sticky: Appears on nodes ordered above other non-sticky nodes in + * teaser listings. + * - node--unpublished: Appears on unpublished nodes visible only to site + * admins. + * - title_attributes: Same as attributes, except applied to the main title + * tag that appears in the template. + * - content_attributes: Same as attributes, except applied to the main + * content tag that appears in the template. + * - author_attributes: Same as attributes, except applied to the author of + * the node tag that appears in the template. + * - title_prefix: Additional output populated by modules, intended to be + * displayed in front of the main title tag that appears in the template. + * - title_suffix: Additional output populated by modules, intended to be + * displayed after the main title tag that appears in the template. + * - view_mode: View mode; for example, "teaser" or "full". + * - teaser: Flag for the teaser state. Will be true if view_mode is 'teaser'. + * - page: Flag for the full page state. Will be true if view_mode is 'full'. + * - readmore: Flag for more state. Will be true if the teaser content of the + * node cannot hold the main body content. + * - logged_in: Flag for authenticated user status. Will be true when the + * current user is a logged-in member. + * - is_admin: Flag for admin user status. Will be true when the current user + * is an administrator. + * + * @see template_preprocess_node() + * + * @todo Remove the id attribute (or make it a class), because if that gets + * rendered twice on a page this is invalid CSS for example: two lists + * in different view modes. + */ +#} + +{% + set classes = [ + 'node', + 'node--type-' ~ node.bundle|clean_class, + node.isPromoted() ? 'node--promoted', + node.isSticky() ? 'node--sticky', + not node.isPublished() ? 'node--unpublished', + view_mode ? 'node--view-mode-' ~ view_mode|clean_class, + ] +%} +{{ attach_library('classy/node') }} + + + {{ title_prefix }} + {% if not page %} + + {{ label }} + + {% endif %} + {{ title_suffix }} + + {# block post info #} + + {% block postinfo %} + {% if display_submitted %} + + + + \ No newline at end of file diff --git a/templates/content/node--ngf-event.html.twig b/templates/content/node--ngf-event.html.twig index 8ac795f..fbc0868 100644 --- a/templates/content/node--ngf-event.html.twig +++ b/templates/content/node--ngf-event.html.twig @@ -1,181 +1,80 @@ -{# -/** - * @file - * Theme override to display a node. - * - * Available variables: - * - node: The node entity with limited access to object properties and methods. - * Only method names starting with "get", "has", or "is" and a few common - * methods such as "id", "label", and "bundle" are available. For example: - * - node.getCreatedTime() will return the node creation timestamp. - * - node.hasField('field_example') returns TRUE if the node bundle includes - * field_example. (This does not indicate the presence of a value in this - * field.) - * - node.isPublished() will return whether the node is published or not. - * Calling other methods, such as node.delete(), will result in an exception. - * See \Drupal\node\Entity\Node for a full list of public properties and - * methods for the node object. - * - label: The title of the node. - * - content: All node items. Use {{ content }} to print them all, - * or print a subset such as {{ content.field_example }}. Use - * {{ content|without('field_example') }} to temporarily suppress the printing - * of a given child element. - * - author_picture: The node author user entity, rendered using the "compact" - * view mode. - * - metadata: Metadata for this node. - * - date: Themed creation date field. - * - author_name: Themed author name field. - * - url: Direct URL of the current node. - * - display_submitted: Whether submission information should be displayed. - * - attributes: HTML attributes for the containing element. - * The attributes.class element may contain one or more of the following - * classes: - * - node: The current template type (also known as a "theming hook"). - * - node--type-[type]: The current node type. For example, if the node is an - * "Article" it would result in "node--type-article". Note that the machine - * name will often be in a short form of the human readable label. - * - node--view-mode-[view_mode]: The View Mode of the node; for example, a - * teaser would result in: "node--view-mode-teaser", and - * full: "node--view-mode-full". - * The following are controlled through the node publishing options. - * - node--promoted: Appears on nodes promoted to the front page. - * - node--sticky: Appears on nodes ordered above other non-sticky nodes in - * teaser listings. - * - node--unpublished: Appears on unpublished nodes visible only to site - * admins. - * - title_attributes: Same as attributes, except applied to the main title - * tag that appears in the template. - * - content_attributes: Same as attributes, except applied to the main - * content tag that appears in the template. - * - author_attributes: Same as attributes, except applied to the author of - * the node tag that appears in the template. - * - title_prefix: Additional output populated by modules, intended to be - * displayed in front of the main title tag that appears in the template. - * - title_suffix: Additional output populated by modules, intended to be - * displayed after the main title tag that appears in the template. - * - view_mode: View mode; for example, "teaser" or "full". - * - teaser: Flag for the teaser state. Will be true if view_mode is 'teaser'. - * - page: Flag for the full page state. Will be true if view_mode is 'full'. - * - readmore: Flag for more state. Will be true if the teaser content of the - * node cannot hold the main body content. - * - logged_in: Flag for authenticated user status. Will be true when the - * current user is a logged-in member. - * - is_admin: Flag for admin user status. Will be true when the current user - * is an administrator. - * - * @see template_preprocess_node() - * - * @todo Remove the id attribute (or make it a class), because if that gets - * rendered twice on a page this is invalid CSS for example: two lists - * in different view modes. - */ -#} -{% - set classes = [ - 'node', - 'node--type-' ~ node.bundle|clean_class, - node.isPromoted() ? 'node--promoted', - node.isSticky() ? 'node--sticky', - not node.isPublished() ? 'node--unpublished', - view_mode ? 'node--view-mode-' ~ view_mode|clean_class, - ] -%} -{{ attach_library('classy/node') }} - - - {{ title_prefix }} - {% if not page %} - - {{ label }} - - {% endif %} - {{ title_suffix }} - - {% if display_submitted %} - - - {% endif %} - - - - {# convert date to an integer stamp #} - {% set event_start_date = node.field_ngf_event_start_date.value|date('U') %} - {# Convert event_end_date to an integer stamp if not empty #} - {% if node.field_ngf_event_end_date is not empty %} - {% set event_end_date = node.field_ngf_event_end_date.value|date('U') %} - {% else %} - {% set event_end_date = NULL %} - {% endif %} - - {# Event year #} - {% set event_start_date_year = event_start_date|date('Y') %} - {% set event_end_date_year = event_end_date|date('Y') %} - - {# Event month #} - {% set event_start_date_month = event_start_date|date('m') %} - {% set event_end_date_month = event_end_date|date('m') %} - - {# Start date & end date the same #} - -
-

{% trans %} When {% endtrans %}

- {% if event_end_date is null %} - - {% else %} - {# same month same year #} - {% if (event_start_date_month == event_end_date_month) and (event_start_date_year == event_end_date_year) %} - - - - - {# different month same year #} - {% elseif (event_start_date_month != event_end_date_month) and (event_start_date_year == event_end_date_year) %} - - - - - {# different year for event start date & end date #} - {% elseif (event_start_date_year != event_end_date_year) %} - - - - +{# page--front.html.twig that adds wrapper div ands uses parent() with embed. #} +{% embed 'node.html.twig' %} + {% block postinfo %} + {{ parent() }} + {% endblock %} +{% endembed %} + + {% block eventdata %} + {# convert date to an integer stamp #} + {% set event_start_date = node.field_ngf_event_start_date.value|date('U') %} + {# Convert event_end_date to an integer stamp if not empty #} + {% if node.field_ngf_event_end_date is not empty %} + {% set event_end_date = node.field_ngf_event_end_date.value|date('U') %} + {% else %} + {% set event_end_date = NULL %} + {% endif %} + + {# Event year #} + {% set event_start_date_year = event_start_date|date('Y') %} + {% set event_end_date_year = event_end_date|date('Y') %} + + {# Event month #} + {% set event_start_date_month = event_start_date|date('m') %} + {% set event_end_date_month = event_end_date|date('m') %} + + {# Start date & end date the same #} + +
+

{% trans %} When {% endtrans %}

+ {% if event_end_date is null %} + + {% else %} + {# same month same year #} + {% if (event_start_date_month == event_end_date_month) and (event_start_date_year == event_end_date_year) %} + + - + + {# different month same year #} + {% elseif (event_start_date_month != event_end_date_month) and (event_start_date_year == event_end_date_year) %} + + - + + {# different year for event start date & end date #} + {% elseif (event_start_date_year != event_end_date_year) %} + + - + + {% endif %} {% endif %} - {% endif %} -
- - {# Event Location #} - - {% if node.field_ngf_address is not empty %} -
-

{% trans %} Location {% endtrans %}

- {{ content.field_ngf_venue|field_value }} - {{ content.field_ngf_address|field_value }}
- {% endif %} + {% endblock %} - {# Integration Button component for registration event #} - - {% set event_registration_url = content.field_ngf_registration_link|field_raw('uri') %} - {% set event_registration_title = content.field_ngf_registration_link|field_raw('title') %} + {# Event Location #} - {% if event_registration_url is not empty %} - {% include "@patterns/button/pattern-button.html.twig" - with{ - url: event_registration_url, - title: event_registration_title - } - %} - {% endif %} + {% block eventlocation %} + {% if node.field_ngf_address is not empty %} +
+

{% trans %} Location {% endtrans %}

+ {{ content.field_ngf_venue|field_value }} + {{ content.field_ngf_address|field_value }} +
+ {% endif %} + {% endblock %} - {# Event content #} - {{ content.field_ngf_description }} - - {{ kint(content|keys) }} + {# registration event #} -
+ {% block eventregister %} + {% set event_registration_url = content.field_ngf_registration_link|field_raw('uri') %} + {% set event_registration_title = content.field_ngf_registration_link|field_raw('title') %} - \ No newline at end of file + {% if event_registration_url is not empty %} + {% include "@patterns/button/pattern-button.html.twig" + with{ + url: event_registration_url, + title: event_registration_title + } + %} + {% endif %} + {% endblock %} \ No newline at end of file diff --git a/templates/content/node.html.twig b/templates/content/node.html.twig new file mode 100644 index 0000000..2cc9680 --- /dev/null +++ b/templates/content/node.html.twig @@ -0,0 +1,140 @@ +{# +/** + * @file + * Theme override to display a node. + * + * Available variables: + * - node: The node entity with limited access to object properties and methods. + * Only method names starting with "get", "has", or "is" and a few common + * methods such as "id", "label", and "bundle" are available. For example: + * - node.getCreatedTime() will return the node creation timestamp. + * - node.hasField('field_example') returns TRUE if the node bundle includes + * field_example. (This does not indicate the presence of a value in this + * field.) + * - node.isPublished() will return whether the node is published or not. + * Calling other methods, such as node.delete(), will result in an exception. + * See \Drupal\node\Entity\Node for a full list of public properties and + * methods for the node object. + * - label: The title of the node. + * - content: All node items. Use {{ content }} to print them all, + * or print a subset such as {{ content.field_example }}. Use + * {{ content|without('field_example') }} to temporarily suppress the printing + * of a given child element. + * - author_picture: The node author user entity, rendered using the "compact" + * view mode. + * - metadata: Metadata for this node. + * - date: Themed creation date field. + * - author_name: Themed author name field. + * - url: Direct URL of the current node. + * - display_submitted: Whether submission information should be displayed. + * - attributes: HTML attributes for the containing element. + * The attributes.class element may contain one or more of the following + * classes: + * - node: The current template type (also known as a "theming hook"). + * - node--type-[type]: The current node type. For example, if the node is an + * "Article" it would result in "node--type-article". Note that the machine + * name will often be in a short form of the human readable label. + * - node--view-mode-[view_mode]: The View Mode of the node; for example, a + * teaser would result in: "node--view-mode-teaser", and + * full: "node--view-mode-full". + * The following are controlled through the node publishing options. + * - node--promoted: Appears on nodes promoted to the front page. + * - node--sticky: Appears on nodes ordered above other non-sticky nodes in + * teaser listings. + * - node--unpublished: Appears on unpublished nodes visible only to site + * admins. + * - title_attributes: Same as attributes, except applied to the main title + * tag that appears in the template. + * - content_attributes: Same as attributes, except applied to the main + * content tag that appears in the template. + * - author_attributes: Same as attributes, except applied to the author of + * the node tag that appears in the template. + * - title_prefix: Additional output populated by modules, intended to be + * displayed in front of the main title tag that appears in the template. + * - title_suffix: Additional output populated by modules, intended to be + * displayed after the main title tag that appears in the template. + * - view_mode: View mode; for example, "teaser" or "full". + * - teaser: Flag for the teaser state. Will be true if view_mode is 'teaser'. + * - page: Flag for the full page state. Will be true if view_mode is 'full'. + * - readmore: Flag for more state. Will be true if the teaser content of the + * node cannot hold the main body content. + * - logged_in: Flag for authenticated user status. Will be true when the + * current user is a logged-in member. + * - is_admin: Flag for admin user status. Will be true when the current user + * is an administrator. + * + * @see template_preprocess_node() + * + * @todo Remove the id attribute (or make it a class), because if that gets + * rendered twice on a page this is invalid CSS for example: two lists + * in different view modes. + */ +#} + +{% + set classes = [ + 'node', + 'node--type-' ~ node.bundle|clean_class, + node.isPromoted() ? 'node--promoted', + node.isSticky() ? 'node--sticky', + not node.isPublished() ? 'node--unpublished', + view_mode ? 'node--view-mode-' ~ view_mode|clean_class, + ] +%} +{{ attach_library('classy/node') }} + + + {{ title_prefix }} + {% if not page %} + + {{ label }} + + {% endif %} + {{ title_suffix }} + + {# block postinfo #} + + {% block postinfo %} + {% if display_submitted %} + + - {% endblock eventdata %} {# Event Location #} diff --git a/templates/content/node.html.twig b/templates/content/node.html.twig index dbb92fd..f831e6c 100644 --- a/templates/content/node.html.twig +++ b/templates/content/node.html.twig @@ -95,12 +95,12 @@

{{ drupal_title() }}

{# block postinfo #} - {% block postinfo %} {% if display_submitted %} {% set profile_pic_uri = node.uid.entity.user_picture.entity.uri.value %} {% set profile_name = node.uid.entity.name.value %} {% set profile_uri = path('entity.user.canonical', {'user': user.id}) %} + {% set creation_date = node.created.value|time_diff %} {% set author_pic = { '#theme': 'image_style', '#style_name': 'thumbnail', @@ -117,27 +117,30 @@ {% else %} {{ author_pic }} {% endif %} + + + + {% endif %} {% endblock postinfo %} - {# end block postinfo #} + {% block content %} {{ content }} {% endblock content %} - - + \ No newline at end of file From c3df185ac09043f4301593b6e430cfb87860e745 Mon Sep 17 00:00:00 2001 From: Horacio Lopes Date: Thu, 26 Apr 2018 14:43:12 +0200 Subject: [PATCH 024/200] Fix broken composer.json --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index 742ec13..2f56445 100644 --- a/composer.json +++ b/composer.json @@ -9,6 +9,6 @@ ], "require": { "drupal/group": "^1.0", - "drupal/components" "^1.0" + "drupal/components": "^1.0" } } From 1f4cf341993d1ff0861d993ac69bb27799cb6729 Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Mon, 30 Apr 2018 09:54:31 +0200 Subject: [PATCH 025/200] added temp css and changes to twig templates --- css/style.css | 870 +++++++++++++++++- funkywave.info.yml | 5 +- funkywave.libraries.yml | 6 +- images/account-info__background--idle.svg | 141 +++ ...account-info__background--notification.svg | 127 +++ images/article--discussion-icon.svg | 51 + images/file--pdf.jpg | Bin 0 -> 5806 bytes images/file--url.jpg | Bin 0 -> 13441 bytes images/follow-up__background.svg | 38 + images/logo-area-bckgrd--md.svg | 54 ++ images/logo-area-bckgrd--sm.svg | 28 + images/navigation-menu__background--sm.svg | 19 + ...ion-menu__item--active__background--sm.svg | 11 + images/navigation-tools__btn__background.svg | 110 +++ images/new-item__button__background--sm.svg | 40 + images/post-info--group__background.svg | 11 + images/settings-icon.svg | 16 + images/share-icons.svg | 51 + .../block/block--system-menu-block.html.twig | 56 ++ templates/content/node.html.twig | 21 +- templates/layout/page.html.twig | 2 +- 21 files changed, 1636 insertions(+), 21 deletions(-) create mode 100644 images/account-info__background--idle.svg create mode 100644 images/account-info__background--notification.svg create mode 100644 images/article--discussion-icon.svg create mode 100644 images/file--pdf.jpg create mode 100644 images/file--url.jpg create mode 100644 images/follow-up__background.svg create mode 100644 images/logo-area-bckgrd--md.svg create mode 100644 images/logo-area-bckgrd--sm.svg create mode 100644 images/navigation-menu__background--sm.svg create mode 100644 images/navigation-menu__item--active__background--sm.svg create mode 100644 images/navigation-tools__btn__background.svg create mode 100644 images/new-item__button__background--sm.svg create mode 100644 images/post-info--group__background.svg create mode 100644 images/settings-icon.svg create mode 100644 images/share-icons.svg create mode 100644 templates/block/block--system-menu-block.html.twig diff --git a/css/style.css b/css/style.css index 0af724e..e5a637d 100644 --- a/css/style.css +++ b/css/style.css @@ -1,13 +1,869 @@ -.btn { - background: red; - color: #fff; - padding: 10px; - display: inline-block; - margin: 0 0 10px 0; +* { + -webkit-box-sizing: border-box; + box-sizing: border-box; +} + +html { + font-size: 62.5%; +} + +body { + font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, sans-serif; + font-size: 1.5rem; + background-color: #FFFFFF; + color: #515155; + margin: 0; + padding: 0; + line-height: 1.8; + background-color: #1f1e23; +} + +.wf-active body { + font-family: "Raleway"; + font-weight: 500; } -.event-date { +h1, h2, h3, h4, h5, h6 { + font-family: "Raleway"; font-weight: bold; + line-height: 1.3; +} + +a:not(.toolbar-item) { + color: #662D91; + -webkit-transition: all 0.2s; + transition: all 0.2s; + font-weight: 500; + text-decoration: none; + text-shadow: 0 2px 0 #FFFFFF, 0 3px 0 #FFFFFF, 1px 2px 0 #FFFFFF, -1px 2px 0 #FFFFFF; + -webkit-box-shadow: 0 1px 0 0 #662D91; + box-shadow: 0 1px 0 0 #662D91; + -webkit-transition: all .2s ease; + transition: all .2s ease; +} + +a:not(.toolbar-item):hover { + color: #1a3773; + -webkit-box-shadow: 0 1px 0 0 #FFFFFF; + box-shadow: 0 1px 0 0 #FFFFFF; + -webkit-transition: all .2s ease; + transition: all .2s ease; +} + +.general-container { + width: 100%; + height: 100%; + max-width: 1200px; + margin: auto; + background-color: #26252B; + overflow: hidden; +} + +main { + margin-top: -5vh; + padding: 50px 15px 75px; + background: #fff; +} + +main *:not(img):not(svg)::-moz-selection { + color: #FFFFFF; + background: #1a3773; + text-shadow: 2px 2px 0 rgba(0, 0, 0, 0.8), 2px 3px 0 rgba(0, 0, 0, 0.8), 3px 2px 0 rgba(0, 0, 0, 0.8), 4px 2px 0 rgba(0, 0, 0, 0.8); +} + +main *:not(img):not(svg)::selection { + color: #FFFFFF; + background: #1a3773; + text-shadow: 2px 2px 0 rgba(0, 0, 0, 0.8), 2px 3px 0 rgba(0, 0, 0, 0.8), 3px 2px 0 rgba(0, 0, 0, 0.8), 4px 2px 0 rgba(0, 0, 0, 0.8); +} + +@media (min-width: 768px) { + body { + font-size: 1.6rem; + } + + main { + margin-top: 0; + margin-left: 33%; + width: 66%; + } +} + +@media (min-width: 992px) { + main { + margin-left: 25%; + width: 50%; + left: auto; + position: relative; + float: left; + } +} + +.icon.icon--cog { + background: url(../images/settings-icon.svg) no-repeat; + background-size: cover; + display: block; + height: 100%; + width: 100%; +} + +.list--file { + padding: 0; +} + +.list--file .list__item--file { + list-style: none; + background: transparent no-repeat left top; + background-size: 32px 38px; + padding-left: 45px; +} + +.list--file .list__item--file.list__item--pdf { + background-image: url(../images/file--pdf.jpg); +} + +.list--file .list__item--file.list__item--url { + background-image: url(../images/file--url.jpg); +} + +.list--file .list__item--file p { + margin: 0 0 0.8rem 0; +} + +.list--taxonomy { + padding: 0; +} + +.list--taxonomy .list__item--tag { + display: inline-block; + margin: 0.1rem 0.5rem 0.3rem 0; +} + +.list--taxonomy .list__item--tag::last-child { + margin-right: 0; +} + +.list--social-share { + padding: 0; +} + +.list--social-share .list__item--social-media { + display: inline-block; + margin-right: 1.8rem; +} + +.list--social-share .list__item--social-media:last-child { + margin-right: 0rem; +} + +.tag { + background-color: #515155; + color: #FFFFFF; + border-radius: 2rem; + text-shadow: none; + -webkit-box-shadow: none; + box-shadow: none; + padding: 0.2rem 0.6rem; + font-size: 1.3rem; +} + +#skip-link, .skip-link { + position: fixed; + top: 1.5em; + left: 1.5em; + z-index: 1060; + background: #FFFFFF; + pading: 15px; +} + +.visually-hidden { + position: absolute !important; + clip: rect(1px 1px 1px 1px); + clip: rect(1px, 1px, 1px, 1px); + overflow: hidden; + height: 1px; +} + +.focusable:active, .focusable:focus { + position: static !important; + clip: auto; + overflow: visible; + height: auto; +} + +.responsive { + max-width: 100%; + height: auto; +} + +.no-display--sm, .no-display--md, .no-display--lg { + position: absolute !important; + top: -9999px !important; + left: -9999px !important; +} + +.clearfix:after { + content: "."; + display: block; + height: 0; + clear: both; + visibility: hidden; +} + +@media (min-width: 768px) { + .no-display--sm { + position: inherit !important; + top: auto !important; + left: auto !important; + } + + .no-display--md { + position: absolute !important; + top: -9999px !important; + left: -9999px !important; + } +} + +.account-info { + background: url("../images/account-info__background--idle.svg") no-repeat left top; + background-size: 100% 100%; + width: 23.4vw; + height: 26.5vw; + max-width: 125px; + max-height: 115px; + position: absolute; + right: 0; + margin-right: 0.3vw; + top: 0; +} + +.account-info.account-info--notification { + width: 93px; + height: 85px; + background-image: url(../images/account-info__background--notification.svg); + background-position: left top; + background-size: 100% 100%; +} + +.account-info.account-info--notification .account-info__wrapper { + margin-top: 11px; + margin-left: 27px; +} + +.account-info__wrapper { + display: block; + text-shadow: none; + -webkit-box-shadow: none; + box-shadow: none; + width: 48px; + height: 48px; + border-radius: 48px; + margin-top: 11px; + margin-left: 27px; +} + +.account-info__wrapper:hover { + text-shadow: none; + -webkit-box-shadow: none; + box-shadow: none; +} + +.account-info__wrapper img { + height: 100%; + width: 100%; + border-radius: 90px; +} + +.account-info__profile { + position: absolute; + right: 10px; + top: 56px; + height: 18px; + width: 18px; +} + +.account-info__profile a { + text-shadow: none; + -webkit-box-shadow: none; + box-shadow: none; + display: block; + height: 100%; +} + +.account-info .account-info__notifications { + height: 21px; + width: 21px; + margin-top: -50px; + margin-left: 7px; + position: absolute; +} + +.account-info .account-info__notifications a { + display: block; + height: 21px; + width: 21px; + background: #ff397f; + border-radius: 20px; + text-shadow: none; + -webkit-box-shadow: none; + box-shadow: none; + color: #FFF; + text-align: center; + vertical-align: middle; + font-size: 1.2rem; + line-height: 20px; + font-weight: 700; +} + +@media (min-width: 768px) { + .account-info { + display: none; + } +} + +@media (min-width: 768px) { + .general-footer { + position: fixed !important; + bottom: 10px; + z-index: 500; + width: 33%; + } + + .general-footer ul { + padding: 0; + margin: 1.5rem; + } + + .general-footer ul li { + display: inline-block; + } + + .general-footer ul li::after { + content: " | "; + } + + .general-footer ul li a { + color: #a6a7ab; + text-shadow: 0 2px 0 #26252B, 0 3px 0 #26252B, 1px 2px 0 #26252B, -1px 2px 0 #26252B; + -webkit-box-shadow: 0 1px 0 0 #c6c7cc; + box-shadow: 0 1px 0 0 #c6c7cc; + -webkit-transition: all .2s ease; + transition: all .2s ease; + } + + .general-footer ul li a:hover { + color: #1a3773; + -webkit-box-shadow: 0 1px 0 0 #FFFFFF; + box-shadow: 0 1px 0 0 #FFFFFF; + -webkit-transition: all .2s ease; + transition: all .2s ease; + } +} + +@media (min-width: 992px) { + .general-footer { + width: 25%; + max-width: 300px; + position: relative !important; + top: auto !important; + left: auto !important; + right: auto !important; + bottom: auto; + height: 100vh; + float: right; + background-color: #26252B; + z-index: 4; + padding: 60px 15px; + padding-bottom: 500em; + margin-bottom: -500em; + } + + .general-footer > * { + position: fixed; + width: calc(25% - 30px); + max-width: 270px; + } +} + +.new-item { + position: fixed; + right: 0px; + bottom: 10px; + width: 21vw; + text-align: center; +} + +.new-item button.create-new { + background: url(../images/new-item__button__background--sm.svg) no-repeat center center; + background-size: 42px 42px; + border: none; + height: 45px; + width: 45px; + font-size: 2.2rem; +} + +@media (min-width: 768px) { + .general-header { + position: fixed; + z-index: 5; + right: auto; + bottom: auto; + left: 0; + top: 0; + width: 33%; + background: #26252B; + float: left; + height: 100vh; + padding: 90px 15px 15px; + } +} + +@media (min-width: 992px) { + .general-header { + position: fixed; + right: auto; + bottom: auto; + left: auto; + top: auto; + width: 25%; + max-width: 300px; + background: #26252B; + float: left; + height: 100vh; + padding: 90px 15px 15px; + } +} + +.logo-area { + background-image: url("../images/logo-area-bckgrd--sm.svg"); + background-repeat: no-repeat; + background-size: 100vw 10vh; + background-position: center top; + height: 100px; + width: 100vw; +} + +.logo-title { + font-weight: 900; + color: #FFFFFF; + margin: 0; + padding: 1.5vw; +} + +@media (min-width: 768px) { + .logo-area { + position: fixed; + z-index: 6; + top: 0; + background-image: none; + } +} + +@media (min-width: 992px) { + .logo-area { + width: 25%; + } +} + +.navigation-menu { + position: fixed; + bottom: 0px; + background: url(../images/navigation-menu__background--sm.svg) no-repeat center bottom; + background-size: 100vw 27vw; + width: 100vw; + height: 25vw; + max-height: 100px; +} + +.navigation-menu__list { + float: left; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + padding: 0; + -ms-flex-pack: distribute; + justify-content: space-around; + width: 36vw; + height: 25vw; + max-height: 100px; + -webkit-box-align: end; + -ms-flex-align: end; + align-items: flex-end; + margin: 0; +} + +.navigation-menu__list li { + display: inline-block; + font-size: 2rem; + text-align: center; + line-height: 45px; + width: 16vw; + height: 12.5vw; + max-width: 54px; + max-height: 39px; +} + +.navigation-menu__list li.active { + background: url(../images/navigation-menu__item--active__background--sm.svg) no-repeat center bottom; + background-size: cover; + border-bottom: solid 2px #ff397f; +} + +.navigation-menu__list li.active a { + color: #ff88b2; +} + +.navigation-menu__list li a { + color: #FFFFFF; + text-shadow: none; + -webkit-box-shadow: none; + box-shadow: none; +} + +@media (max-width: 767.98px) and (orientation: landscape) { + .navigation-menu { + background-position: center bottom; + background-size: 100vw 23vh; + } + + .navigation-menu__list { + padding: 0; + margin: 0vw 1vw 0; + } +} + +@media (min-width: 768px) { + .navigation-menu { + position: relative; + bottom: auto; + background: none; + width: auto; + height: auto; + max-height: auto; + padding-top: 15px; + } + + .navigation-menu__list { + width: auto; + height: auto; + max-height: none; + display: block; + float: none; + -webkit-box-align: baseline; + -ms-flex-align: baseline; + align-items: baseline; + margin: 0; + } + + .navigation-menu__list li { + display: block; + width: auto; + height: auto; + max-width: none; + max-height: none; + text-align: left; + font-size: 1.6rem; + line-height: inherit; + padding: 0.5rem 0.8rem; + border-radius: 0.5rem; + } + + .navigation-menu__list li svg { + margin-right: 1.5rem; + } + + .navigation-menu__list li.active { + background: rgba(255, 255, 255, 0.1); + border-bottom: none; + } + + .navigation-menu__list li.active a { + color: #FFFFFF; + } + + .navigation-menu__list li.active .fas { + color: #ff397f; + } + + .navigation-menu__list--feeds svg { + min-width: 2rem; + } + + .navigation-menu__list--tools { + position: fixed; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: end; + -ms-flex-pack: end; + justify-content: flex-end; + top: 0px; + z-index: 10001; + background-image: url("../images/logo-area-bckgrd--md.svg"); + background-repeat: no-repeat; + background-size: 100% 80px; + background-position: left top; + height: 100px; + width: 100vw; + margin-left: -15px; + } + + .navigation-menu__list--tools .navigation-menu__item { + display: inline-block; + padding: 0; + margin-left: 0px; + } + + .navigation-menu__list--tools .navigation-menu__item:first-child { + padding: 0; + margin-left: 15px; + margin-top: -15px; + } + + .navigation-menu__list--tools .navigation-menu__item--tool { + text-align: center; + display: inline-block; + background-image: url(../images/navigation-tools__btn__background.svg); + background-repeat: none; + color: #05111E; + } + + .navigation-menu__list--tools .navigation-menu__item--tool.navigation-menu__item--filter { + background-size: 54px 54px; + display: inline-block; + height: 54px; + width: 54px; + text-align: center; + font-size: 2rem; + padding-top: 0.8rem; + margin: -8px 0 0 0px; + } + + .navigation-menu__list--tools .navigation-menu__item--tool.navigation-menu__item--filter svg { + margin: auto; + } + + .navigation-menu__list--tools .navigation-menu__item--tool.navigation-menu__item--search { + background-size: 42px 42px; + display: inline-block; + line-height: 42px; + height: 42px; + width: 42px; + margin: 30px 20px 0 8px; + } + + .navigation-menu .badge { + background: rgba(255, 255, 255, 0.8); + padding: 0rem 0.5rem 0.1rem; + border-radius: 0.5rem; + color: #05111E; + text-align: center; + } +} + +@media (min-width: 992px) { + .navigation-menu__list--tools { + background-size: 100% 80px; + background-position: left top; + height: 100px; + width: 75vw; + max-width: 900px; + margin-left: -15px; + } +} + +.newsfeed { + background-color: #FFFFFF; +} + +.newsfeed p, .newsfeed h2, .newsfeed h3, .newsfeed h4, .newsfeed h5, .newsfeed h6, .newsfeed li { + max-width: 32em; +} + +.newsfeed__item h2 { + padding-left: 32px; + background: transparent left top no-repeat; + background-size: 22px 24px; +} + +.newsfeed__item h2 a { + font-family: 'Raleway'; + font-weight: 800; + color: #26252B; + text-shadow: none; + -webkit-box-shadow: none; + box-shadow: none; +} + +.newsfeed__item h2 a:hover { + color: #662D91; + text-shadow: 0 2px 0 #FFFFFF, 0 3px 0 #FFFFFF, 1px 2px 0 #FFFFFF, -1px 2px 0 #FFFFFF; + -webkit-box-shadow: 0 1px 0 0 #662D91; + box-shadow: 0 1px 0 0 #662D91; +} + +.newsfeed__item__cover { + border-radius: 10px; +} + +.newsfeed__item--discussion h2 { + background-image: url(../images/article--discussion-icon.svg); + background-size: 2.38rem 2.5rem; +} + +.newsfeed .sub-section { + border-top: solid 1px #a6a7ab; +} + +.post-info { + margin-bottom: 2rem; +} + +.post-info.post-info--group { + background: url(../images/post-info--group__background.svg) no-repeat left top; + background-size: 5.7rem 8.3rem; +} + +.post-info.post-info--group .post-info__ilustration { + width: 5.7rem; + height: 8.3rem; + margin-right: 1.7rem; + float: left; +} + +.post-info.post-info--group .post-info__picture--account { + margin-left: 0.5rem; + margin-top: 0.6rem; +} + +.post-info .post-info__link { + text-shadow: none; + -webkit-box-shadow: none; + box-shadow: none; +} + +.post-info .post-info__link .post-info__picture { + border-radius: 100px; +} + +.post-info .post-info__link .post-info__picture--account { + width: 4.6rem; + border: solid 2px #ff397f; +} + +.post-info .post-info__link .post-info__picture--group { + width: 2rem; + margin-left: 3rem; + border: solid 1px #ff397f; +} + +.post-info.post-info--no-group .post-info__ilustration { + width: 5.6rem; + height: 5.6rem; + margin-right: 1.7rem; + float: left; + border: solid 0.5rem #ff88b2; + border-radius: 6rem; +} + +.post-info__details { + float: left; + width: calc(100% - 7.4rem); } +.post-info__details .post-info__author { + font-size: 2rem; + font-weight: 700; + color: #515155; + margin: 0; + padding: 0.2rem 0 0 0; +} + +.post-info__details .post-info__author .post-info__account-link { + text-shadow: none; + -webkit-box-shadow: none; + box-shadow: none; + font-weight: 700; + color: #515155; +} + +.post-info__details .post-info__metadata { + margin-top: 0.5rem; +} + +.sub-section--related__title { + padding-left: 3.6rem; + min-height: 3.7rem; +} + +.sub-section--related__title--discussion { + background-image: url(../images/follow-up__background.svg), url(../images/article--discussion-icon.svg); + background-position: 0rem 1.1rem, 0.5rem 0; + background-repeat: no-repeat, no-repeat; + background-size: 2.7rem 2.3rem, 2.38rem 2.5rem; +} + +.share { + background: #515155 url(../images/share-icons.svg) no-repeat; + display: inline-block; + width: 4rem; + height: 4rem; + border-radius: 4rem; +} + +.share--facebook { + background-position: 0 0; +} + +.share--twitter { + background-position: -8rem 0; +} + +.share--linkedin { + background-position: -4rem 0; +} + +.share--googleplus { + background-position: -12rem 0; +} + +.share--email { + background-position: -16rem 0; +} + +/** + * @file + * Visual styles for tabs. + */ + +div.tabs { + margin: 1em 0; +} +ul.tabs { + list-style: none; + margin: 0 0 0.5em; + padding: 0; +} +.tabs > li { + display: inline-block; + margin-right: 0.3em; /* LTR */ +} +[dir="rtl"] .tabs > li { + margin-left: 0.3em; + margin-right: 0; +} +.tabs a { + display: block; + padding: 0.2em 1em; + text-decoration: none; +} +.tabs a.is-active { + background-color: #eee; +} +.tabs a:focus, +.tabs a:hover { + background-color: #f5f5f5; +} + + /*# sourceMappingURL=style.css.map */ diff --git a/funkywave.info.yml b/funkywave.info.yml index e1fb025..59e93bb 100644 --- a/funkywave.info.yml +++ b/funkywave.info.yml @@ -11,12 +11,13 @@ regions: libraries: - funkywave/global-css - funkywave/global-js + - funkywave/global-fonts # components module needs to be installed to use # {% include "@myLib/box/box.twig" %} component-libraries: patterns: paths: - - patterns + - patterns libraries-override: system/base: false - classy/base: false \ No newline at end of file + classy/base: false diff --git a/funkywave.libraries.yml b/funkywave.libraries.yml index dd58ed9..d00220b 100644 --- a/funkywave.libraries.yml +++ b/funkywave.libraries.yml @@ -4,4 +4,8 @@ global-css: css/style.css: {} global-js: js: - js/script.js: {} \ No newline at end of file + js/script.js: {} +global-fonts: + css: + theme: + 'https://fonts.googleapis.com/css?family=Raleway:300,400,500,700,800,900&subset=latin,latin': { type: external } \ No newline at end of file diff --git a/images/account-info__background--idle.svg b/images/account-info__background--idle.svg new file mode 100644 index 0000000..f2351ff --- /dev/null +++ b/images/account-info__background--idle.svg @@ -0,0 +1,141 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/images/account-info__background--notification.svg b/images/account-info__background--notification.svg new file mode 100644 index 0000000..bbf4da5 --- /dev/null +++ b/images/account-info__background--notification.svg @@ -0,0 +1,127 @@ + + + + + + + + + + + + + diff --git a/images/article--discussion-icon.svg b/images/article--discussion-icon.svg new file mode 100644 index 0000000..fccff46 --- /dev/null +++ b/images/article--discussion-icon.svg @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/images/file--pdf.jpg b/images/file--pdf.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7b38f3027d284f1e9b1a4e96167d69541fe170cb GIT binary patch literal 5806 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 I?{e<{0BnCWO8@`> literal 0 HcmV?d00001 diff --git a/images/file--url.jpg b/images/file--url.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0c531a5b68cdc6fe183b5dc06aaa9c12e1170d08 GIT binary patch literal 13441 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 literal 0 HcmV?d00001 diff --git a/images/follow-up__background.svg b/images/follow-up__background.svg new file mode 100644 index 0000000..207f744 --- /dev/null +++ b/images/follow-up__background.svg @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/images/logo-area-bckgrd--md.svg b/images/logo-area-bckgrd--md.svg new file mode 100644 index 0000000..0f7b20a --- /dev/null +++ b/images/logo-area-bckgrd--md.svg @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/images/logo-area-bckgrd--sm.svg b/images/logo-area-bckgrd--sm.svg new file mode 100644 index 0000000..a895d33 --- /dev/null +++ b/images/logo-area-bckgrd--sm.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/images/navigation-menu__background--sm.svg b/images/navigation-menu__background--sm.svg new file mode 100644 index 0000000..02d8eb5 --- /dev/null +++ b/images/navigation-menu__background--sm.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + diff --git a/images/navigation-menu__item--active__background--sm.svg b/images/navigation-menu__item--active__background--sm.svg new file mode 100644 index 0000000..e00b375 --- /dev/null +++ b/images/navigation-menu__item--active__background--sm.svg @@ -0,0 +1,11 @@ + + + + + + + + + diff --git a/images/navigation-tools__btn__background.svg b/images/navigation-tools__btn__background.svg new file mode 100644 index 0000000..ae6e023 --- /dev/null +++ b/images/navigation-tools__btn__background.svg @@ -0,0 +1,110 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/images/new-item__button__background--sm.svg b/images/new-item__button__background--sm.svg new file mode 100644 index 0000000..c94f024 --- /dev/null +++ b/images/new-item__button__background--sm.svg @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/images/post-info--group__background.svg b/images/post-info--group__background.svg new file mode 100644 index 0000000..0052f17 --- /dev/null +++ b/images/post-info--group__background.svg @@ -0,0 +1,11 @@ + + + + + + diff --git a/images/settings-icon.svg b/images/settings-icon.svg new file mode 100644 index 0000000..3679262 --- /dev/null +++ b/images/settings-icon.svg @@ -0,0 +1,16 @@ + + + + + + diff --git a/images/share-icons.svg b/images/share-icons.svg new file mode 100644 index 0000000..5bf474e --- /dev/null +++ b/images/share-icons.svg @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/templates/block/block--system-menu-block.html.twig b/templates/block/block--system-menu-block.html.twig new file mode 100644 index 0000000..407f840 --- /dev/null +++ b/templates/block/block--system-menu-block.html.twig @@ -0,0 +1,56 @@ +{# +/** + * @file + * Theme override for a menu block. + * + * Available variables: + * - plugin_id: The ID of the block implementation. + * - label: The configured label of the block if visible. + * - configuration: A list of the block's configuration values. + * - label: The configured label for the block. + * - label_display: The display settings for the label. + * - provider: The module or other provider that provided this block plugin. + * - Block plugin specific settings will also be stored here. + * - content: The content of this block. + * - attributes: HTML attributes for the containing element. + * - id: A valid HTML ID and guaranteed unique. + * - title_attributes: HTML attributes for the title element. + * - content_attributes: HTML attributes for the content element. + * - title_prefix: Additional output populated by modules, intended to be + * displayed in front of the main title tag that appears in the template. + * - title_suffix: Additional output populated by modules, intended to be + * displayed after the main title tag that appears in the template. + * + * Headings should be used on navigation menus that consistently appear on + * multiple pages. When this menu block's label is configured to not be + * displayed, it is automatically made invisible using the 'visually-hidden' CSS + * class, which still keeps it visible for screen-readers and assistive + * technology. Headings allow screen-reader and keyboard only users to navigate + * to or skip the links. + * See http://juicystudio.com/article/screen-readers-display-none.php and + * http://www.w3.org/TR/WCAG-TECHS/H42.html for more information. + */ +#} +{% + set classes = [ + 'block', + 'block-menu', + 'navigation', + 'menu--' ~ derivative_plugin_id|clean_class, + ] +%} +{% set heading_id = attributes.id ~ '-menu'|clean_id %} + diff --git a/templates/content/node.html.twig b/templates/content/node.html.twig index f831e6c..c6e2d8c 100644 --- a/templates/content/node.html.twig +++ b/templates/content/node.html.twig @@ -72,27 +72,28 @@ #} {% - set classes = [ - 'node', - 'node--type-' ~ node.bundle|clean_class, - node.isPromoted() ? 'node--promoted', - node.isSticky() ? 'node--sticky', - not node.isPublished() ? 'node--unpublished', - view_mode ? 'node--view-mode-' ~ view_mode|clean_class, - ] + set classes = [ + 'newsfeed__item', + 'newsfeed__item--' ~ node.bundle|clean_class, + node.isPromoted() ? 'newsfeed__item--promoted', + node.isSticky() ? 'newsfeed__item--sticky', + not node.isPublished() ? 'node--unpublished newsfeed__item--unpublished', + view_mode ? 'node--view-mode-' ~ view_mode|clean_class, + ] %} + {{ attach_library('classy/node') }}
{{ title_prefix }} {% if not page %} -

+

{{ label }}

{% endif %} {{ title_suffix }} -

{{ drupal_title() }}

+

{{ drupal_title() }}

{# block postinfo #} {% block postinfo %} diff --git a/templates/layout/page.html.twig b/templates/layout/page.html.twig index c1d9cfd..b9c6cc6 100644 --- a/templates/layout/page.html.twig +++ b/templates/layout/page.html.twig @@ -63,7 +63,7 @@
{% if page.footer %} -
+
{{ page.footer }}
{% endif %} From 316f8b88ace154320728a3313fa879aa66f29535 Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Mon, 30 Apr 2018 15:31:41 +0200 Subject: [PATCH 026/200] added span around menu item links title --- templates/navigation/menu.html.twig | 59 +++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 templates/navigation/menu.html.twig diff --git a/templates/navigation/menu.html.twig b/templates/navigation/menu.html.twig new file mode 100644 index 0000000..593a04e --- /dev/null +++ b/templates/navigation/menu.html.twig @@ -0,0 +1,59 @@ +{# +/** + * @file + * Theme override to display a menu. + * + * Available variables: + * - menu_name: The machine name of the menu. + * - items: A nested list of menu items. Each menu item contains: + * - attributes: HTML attributes for the menu item. + * - below: The menu item child items. + * - title: The menu link title. + * - url: The menu link url, instance of \Drupal\Core\Url + * - localized_options: Menu link localized options. + * - is_expanded: TRUE if the link has visible children within the current + * menu tree. + * - is_collapsed: TRUE if the link has children within the current menu tree + * that are not currently visible. + * - in_active_trail: TRUE if the link is in the active trail. + */ +#} +{% import _self as menus %} + +{# + We call a macro which calls itself to render the full tree. + @see http://twig.sensiolabs.org/doc/tags/macro.html +#} +{{ menus.menu_links(items, attributes, 0) }} + +{% macro menu_links(items, attributes, menu_level) %} + {% import _self as menus %} + {% if items %} + {% if menu_level == 0 %} + + {% else %} + + {% endif %} +{% endmacro %} From e1825bb9e68e1421c9cf82118202e7da4c63f628 Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Wed, 2 May 2018 11:58:06 +0200 Subject: [PATCH 027/200] check if group url exists before printing group logo and url to group --- css/style.css | 225 ++++++++++++++++++++++++++----- templates/content/node.html.twig | 4 +- 2 files changed, 194 insertions(+), 35 deletions(-) diff --git a/css/style.css b/css/style.css index e5a637d..706232a 100644 --- a/css/style.css +++ b/css/style.css @@ -55,14 +55,13 @@ a:not(.toolbar-item):hover { height: 100%; max-width: 1200px; margin: auto; - background-color: #26252B; + background-color: #FFFFFF; overflow: hidden; } main { - margin-top: -5vh; - padding: 50px 15px 75px; - background: #fff; + margin-top: -36px; + padding: 0px 15px 75px; } main *:not(img):not(svg)::-moz-selection { @@ -86,11 +85,13 @@ main *:not(img):not(svg)::selection { margin-top: 0; margin-left: 33%; width: 66%; + padding-top: 75px; } } @media (min-width: 992px) { main { + margin-top: -20px; margin-left: 25%; width: 50%; left: auto; @@ -156,7 +157,7 @@ main *:not(img):not(svg)::selection { margin-right: 0rem; } -.tag { +a.tag { background-color: #515155; color: #FFFFFF; border-radius: 2rem; @@ -165,6 +166,12 @@ main *:not(img):not(svg)::selection { box-shadow: none; padding: 0.2rem 0.6rem; font-size: 1.3rem; + border: solid 1px #515155; +} + +a.tag:hover { + background-color: #c6c7cc; + color: #05111E; } #skip-link, .skip-link { @@ -615,9 +622,19 @@ main *:not(img):not(svg)::selection { } .navigation-menu__list--tools .navigation-menu__item:first-child { - padding: 0; - margin-left: 15px; - margin-top: -15px; + display: block; + margin: 11px 0% 0 -8.75%; + position: absolute; + height: 54px; + width: 54px; + } + + .navigation-menu__list--tools .navigation-menu__item:nth-child(2) { + display: block; + margin: 0px 0% 0 -3.75%; + position: absolute; + height: 42px; + width: 42px; } .navigation-menu__list--tools .navigation-menu__item--tool { @@ -629,14 +646,11 @@ main *:not(img):not(svg)::selection { } .navigation-menu__list--tools .navigation-menu__item--tool.navigation-menu__item--filter { - background-size: 54px 54px; - display: inline-block; height: 54px; width: 54px; - text-align: center; + background-size: 54px 54px; font-size: 2rem; - padding-top: 0.8rem; - margin: -8px 0 0 0px; + padding-top: 0.9rem; } .navigation-menu__list--tools .navigation-menu__item--tool.navigation-menu__item--filter svg { @@ -652,6 +666,10 @@ main *:not(img):not(svg)::selection { margin: 30px 20px 0 8px; } + .navigation-menu__list--tools .navigation-menu__item--tool.navigation-menu__item--search svg { + margin: auto; + } + .navigation-menu .badge { background: rgba(255, 255, 255, 0.8); padding: 0rem 0.5rem 0.1rem; @@ -731,39 +749,124 @@ main *:not(img):not(svg)::selection { float: left; } -.post-info.post-info--group .post-info__picture--account { +.post-info.post-info--group img.responsive.post-info__picture--account { margin-left: 0.5rem; margin-top: 0.6rem; } +.post-info.post-info--no-group { + background: none; +} + +.post-info.post-info--no-group .post-info__ilustration { + width: 5.6rem; + height: 5.6rem; + margin-right: 1.7rem; + float: left; + border-radius: 100px; + border: solid 5px rgba(255, 57, 127, 0.5); +} + +.post-info.post-info--no-group img.responsive.post-info__picture--account { + margin-left: 0rem; + margin-top: 0rem; +} + +.post-info.post-info--no-group .post-info__link.post-info__link--account { + margin-left: 0rem; + margin-top: 0rem; +} + +.post-info img.responsive.post-info__picture--account { + width: 4.6rem; + height: 4.6rem; + border-radius: 100px; + display: block; +} + +.post-info img.responsive.post-info__picture--group { + margin-left: 3rem; + margin-top: 5px; + width: 2rem; + height: 2rem; + border-radius: 100px; + display: block; +} + .post-info .post-info__link { text-shadow: none; -webkit-box-shadow: none; box-shadow: none; } -.post-info .post-info__link .post-info__picture { - border-radius: 100px; +.post-info .post-info__link img.responsive.post-info__picture--account { + margin-left: 0; + margin-top: 0; + width: calc(4.6rem - 4px); + height: calc(4.6rem - 4px); } -.post-info .post-info__link .post-info__picture--account { - width: 4.6rem; - border: solid 2px #ff397f; +.post-info .post-info__link img.responsive.post-info__picture--group { + margin-left: 0; + margin-top: 0; + width: calc(2rem - 2px); + height: calc(2rem - 2px); } -.post-info .post-info__link .post-info__picture--group { +.post-info .post-info__link--group { + border-radius: 100px; + border: solid 1px #ff397f; + -webkit-transition: border 0.2s; + transition: border 0.2s; + display: block; width: 2rem; + height: 2rem; margin-left: 3rem; + margin-top: 5px; border: solid 1px #ff397f; + transition: border 0.2s; } -.post-info.post-info--no-group .post-info__ilustration { - width: 5.6rem; - height: 5.6rem; - margin-right: 1.7rem; - float: left; - border: solid 0.5rem #ff88b2; - border-radius: 6rem; +.post-info .post-info__link--group:hover, .post-info .post-info__link--group:focus { + text-shadow: none; + -webkit-box-shadow: none; + box-shadow: none; + background-color: #662D91; + outline: none; + border: solid 1px #662D91; + -webkit-transition: border 0.2s; + transition: border 0.2s; +} + +.post-info .post-info__link--group:hover img, .post-info .post-info__link--group:focus img { + opacity: 0.6; +} + +.post-info .post-info__link--account { + border-radius: 100px; + border: solid 2px #ff397f; + -webkit-transition: border 0.2s; + transition: border 0.2s; + display: block; + width: 4.6rem; + height: 4.6rem; + margin-left: 0.5rem; + margin-top: 0.6rem; +} + +.post-info .post-info__link--account:hover, .post-info .post-info__link--account:focus { + text-shadow: none; + -webkit-box-shadow: none; + box-shadow: none; + background-color: #662D91; + outline: none; + border: solid 2px #662D91; + -webkit-transition: border 0.2s; + transition: border 0.2s; +} + +.post-info .post-info__link--account:hover img, .post-info .post-info__link--account:focus img { + opacity: 0.6; } .post-info__details { @@ -787,6 +890,13 @@ main *:not(img):not(svg)::selection { color: #515155; } +.post-info__details .post-info__author .post-info__account-link:hover { + color: #662D91; + text-shadow: 0 2px 0 #FFFFFF, 0 3px 0 #FFFFFF, 1px 2px 0 #FFFFFF, -1px 2px 0 #FFFFFF; + -webkit-box-shadow: 0 1px 0 0 #662D91; + box-shadow: 0 1px 0 0 #662D91; +} + .post-info__details .post-info__metadata { margin-top: 0.5rem; } @@ -803,34 +913,83 @@ main *:not(img):not(svg)::selection { background-size: 2.7rem 2.3rem, 2.38rem 2.5rem; } -.share { +a.share { background: #515155 url(../images/share-icons.svg) no-repeat; display: inline-block; width: 4rem; height: 4rem; border-radius: 4rem; + text-shadow: none; + -webkit-box-shadow: none; + box-shadow: none; } -.share--facebook { +a.share--facebook { background-position: 0 0; } -.share--twitter { +a.share--twitter { background-position: -8rem 0; } -.share--linkedin { +a.share--linkedin { background-position: -4rem 0; } -.share--googleplus { +a.share--googleplus { background-position: -12rem 0; } -.share--email { +a.share--email { background-position: -16rem 0; } +@media (min-width: 768px) { + a.share { + width: auto; + padding-left: 0rem; + background: none; + border-radius: 0; + text-decoration: none; + -webkit-box-shadow: none; + box-shadow: none; + } + + a.share:before { + content: ""; + background: #515155 url(../images/share-icons.svg) no-repeat; + display: inline-block; + width: 4rem; + height: 4rem; + border-radius: 4rem; + -webkit-box-shadow: none; + box-shadow: none; + } + + a.share--facebook:before { + background-position: 0 0; + } + + a.share--twitter:before { + background-position: -8rem 0; + } + + a.share--linkedin:before { + background-position: -4rem 0; + } + + a.share--googleplus:before { + background-position: -12rem 0; + } + + a.share--email:before { + background-position: -16rem 0; + } +} + +/*# sourceMappingURL=style.css.map */ + + /** * @file * Visual styles for tabs. diff --git a/templates/content/node.html.twig b/templates/content/node.html.twig index c6e2d8c..5a15669 100644 --- a/templates/content/node.html.twig +++ b/templates/content/node.html.twig @@ -118,9 +118,9 @@ {% else %} {{ author_pic }} {% endif %} - + {% if group_url %} - + {% endif %} - - {% endif %} - {% endblock postinfo %} + + {% endif %} + {% endblock postinfo %} {# end block postinfo #} + {# block coverimage #} + {% block coverimage %} + {% if content.field_ngf_cover_image %} + {% set coverimageurl = file_url(content.field_ngf_cover_image|field_target_entity.field_media_image.entity.uri.value|image_style('media_large')) %} + + {% endif %} + {% endblock coverimage %} {% block content %} From 7fcd80c2bd5b5f29dcb4ea95cc43bca93f235a2e Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Tue, 8 May 2018 11:32:36 +0200 Subject: [PATCH 030/200] changes to twig templates --- templates/user/user--full.html.twig | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 templates/user/user--full.html.twig diff --git a/templates/user/user--full.html.twig b/templates/user/user--full.html.twig new file mode 100644 index 0000000..8807610 --- /dev/null +++ b/templates/user/user--full.html.twig @@ -0,0 +1,26 @@ +{# +/** + * @file + * Theme override to present all user data. + * + * This template is used when viewing a registered user's page, + * e.g., example.com/user/123. 123 being the user's ID. + * + * Available variables: + * - content: A list of content items. Use 'content' to print all content, or + * print a subset such as 'content.field_example'. Fields attached to a user + * such as 'user_picture' are available as 'content.user_picture'. + * - attributes: HTML attributes for the container element. + * - user: A Drupal User entity. + * + * @see template_preprocess_user() + */ +#} + + {% if content %} + + {{- content -}} + {% endif %} + + +{{ drupal_view('frontpage') }} \ No newline at end of file From 72edc22bc7977ae62ac39856f51886e93333c51b Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Tue, 8 May 2018 18:13:18 +0200 Subject: [PATCH 031/200] NGF-136: pattern postinfo added --- patterns/post_info/_postinfo.scss | 0 patterns/post_info/pattern-postinfo.html.twig | 30 ++++ patterns/post_info/postinfo.ui_patterns.yml | 44 +++++ .../content/backup_group--ngf-event.html.twig | 95 +++++++++++ templates/content/backup_node.html.twig | 154 ++++++++++++++++++ templates/content/group--ngf-event.html.twig | 73 +++++++++ templates/content/node.html.twig | 28 +--- 7 files changed, 400 insertions(+), 24 deletions(-) create mode 100644 patterns/post_info/_postinfo.scss create mode 100644 patterns/post_info/pattern-postinfo.html.twig create mode 100644 patterns/post_info/postinfo.ui_patterns.yml create mode 100644 templates/content/backup_group--ngf-event.html.twig create mode 100644 templates/content/backup_node.html.twig create mode 100644 templates/content/group--ngf-event.html.twig diff --git a/patterns/post_info/_postinfo.scss b/patterns/post_info/_postinfo.scss new file mode 100644 index 0000000..e69de29 diff --git a/patterns/post_info/pattern-postinfo.html.twig b/patterns/post_info/pattern-postinfo.html.twig new file mode 100644 index 0000000..a1319ae --- /dev/null +++ b/patterns/post_info/pattern-postinfo.html.twig @@ -0,0 +1,30 @@ +{# +/** + * @file + * post info pattern. + */ +#} + diff --git a/patterns/post_info/postinfo.ui_patterns.yml b/patterns/post_info/postinfo.ui_patterns.yml new file mode 100644 index 0000000..ab5102b --- /dev/null +++ b/patterns/post_info/postinfo.ui_patterns.yml @@ -0,0 +1,44 @@ +postinfo: + label: Post-info + description: Block with author information and group information. + fields: + author_pic: + type: image + label: Author picture + description: Author picture + preview: http://www.attractivepartners.co.uk/create-perfect-profile-picture/ + profile_name: + type: text + label: Author name + description: The name of the author + preview: Peter Neyens + profile_uri: + type: url + label: Profile url + description: Url to the author profile + preview: https://en.wikipedia.org/wiki/User_profile + group_logo: + type: image + label: Group logo + description: Url to the author profile + preview: https://commons.wikimedia.org/wiki/File:Logo_TV_2015.png + group_url: + type: url + label: Group url + description: Url to the group + preview: https://www.google.com + group_name: + type: text + label: Group name + description: Group name + preview: The best group ever + logged_in: + type: number + label: Logged in + description: Logged in gives a value of 1 + preview: 1 + creation_date: + type: date + label: Creation date + description: Creattion date 'time ago' + preview: Tue, 05/08/2018 - 13:42 \ No newline at end of file diff --git a/templates/content/backup_group--ngf-event.html.twig b/templates/content/backup_group--ngf-event.html.twig new file mode 100644 index 0000000..69af781 --- /dev/null +++ b/templates/content/backup_group--ngf-event.html.twig @@ -0,0 +1,95 @@ +{# +/** + * @file + * Default theme implementation to display a group. + * + * Available variables: + * - group: The group entity with limited access to object properties and + * methods. Only "getter" methods (method names starting with "get", "has", + * or "is") and a few common methods such as "id" and "label" are available. + * Calling other methods (such as group.delete) will result in an exception. + * - label: The title of the group. + * - content: All group items. Use {{ content }} to print them all, + * or print a subset such as {{ content.field_example }}. Use + * {{ content|without('field_example') }} to temporarily suppress the + * printing of a given child element. + * - url: Direct URL of the current group. + * - attributes: HTML attributes for the containing element. + * The attributes.class element may contain one or more of the following + * classes: + * - group: The current template type (also known as a "theming hook"). + * - group--[type]: The current group type. For example, if the group is a + * "Classroom" it would result in "group--classroom". Note that the machine + * name will often be in a short form of the human readable label. + * - group--[view_mode]: The View Mode of the group; for example, a + * teaser would result in: "group--teaser", and full: "group--full". + * - title_attributes: Same as attributes, except applied to the main title + * tag that appears in the template. + * - content_attributes: Same as attributes, except applied to the main + * content tag that appears in the template. + * - title_prefix: Additional output populated by modules, intended to be + * displayed in front of the main title tag that appears in the template. + * - title_suffix: Additional output populated by modules, intended to be + * displayed after the main title tag that appears in the template. + * - view_mode: View mode; for example, "teaser" or "full". + * - page: Flag for the full page state. Will be true if view_mode is 'full'. + * + * @see template_preprocess_group() + * + * @ingroup themeable + */ +#} + +{{ kint(content|keys) }} +{{ kint(group|keys) }} + + {# block postinfo #} + {% block postinfo %} + {% set profile_pic_uri = group.uid.entity.user_picture.entity.uri.value %} + {% set profile_name = group.uid.entity.name.value %} + {% set profile_uri = path('entity.user.canonical', {'user': user.id}) %} + {% set creation_date = group.created.value|time_diff %} + {% set author_pic = { + '#theme': 'image_style', + '#style_name': 'thumbnail', + '#uri': profile_pic_uri, + '#alt': profile_name, + '#attributes': { class: 'post-info__picture post-info__picture--account responsive' }, + } %} + + + {% endblock postinfo %} + {# end block postinfo #} + + {# block coverimage #} + {% block coverimage %} + {% if content.field_ngf_cover_image %} + {% set coverimageurl = file_url(content.field_ngf_cover_image|field_target_entity.field_media_image.entity.uri.value|image_style('media_large')) %} + + {% endif %} + {% endblock coverimage %} + + diff --git a/templates/content/backup_node.html.twig b/templates/content/backup_node.html.twig new file mode 100644 index 0000000..33ee1a5 --- /dev/null +++ b/templates/content/backup_node.html.twig @@ -0,0 +1,154 @@ +{# +/** + * @file + * Theme override to display a node. + * + * Available variables: + * - node: The node entity with limited access to object properties and methods. + * Only method names starting with "get", "has", or "is" and a few common + * methods such as "id", "label", and "bundle" are available. For example: + * - node.getCreatedTime() will return the node creation timestamp. + * - node.hasField('field_example') returns TRUE if the node bundle includes + * field_example. (This does not indicate the presence of a value in this + * field.) + * - node.isPublished() will return whether the node is published or not. + * Calling other methods, such as node.delete(), will result in an exception. + * See \Drupal\node\Entity\Node for a full list of public properties and + * methods for the node object. + * - label: The title of the node. + * - content: All node items. Use {{ content }} to print them all, + * or print a subset such as {{ content.field_example }}. Use + * {{ content|without('field_example') }} to temporarily suppress the printing + * of a given child element. + * - author_picture: The node author user entity, rendered using the "compact" + * view mode. + * - metadata: Metadata for this node. + * - date: Themed creation date field. + * - author_name: Themed author name field. + * - url: Direct URL of the current node. + * - display_submitted: Whether submission information should be displayed. + * - attributes: HTML attributes for the containing element. + * The attributes.class element may contain one or more of the following + * classes: + * - node: The current template type (also known as a "theming hook"). + * - node--type-[type]: The current node type. For example, if the node is an + * "Article" it would result in "node--type-article". Note that the machine + * name will often be in a short form of the human readable label. + * - node--view-mode-[view_mode]: The View Mode of the node; for example, a + * teaser would result in: "node--view-mode-teaser", and + * full: "node--view-mode-full". + * The following are controlled through the node publishing options. + * - node--promoted: Appears on nodes promoted to the front page. + * - node--sticky: Appears on nodes ordered above other non-sticky nodes in + * teaser listings. + * - node--unpublished: Appears on unpublished nodes visible only to site + * admins. + * - title_attributes: Same as attributes, except applied to the main title + * tag that appears in the template. + * - content_attributes: Same as attributes, except applied to the main + * content tag that appears in the template. + * - author_attributes: Same as attributes, except applied to the author of + * the node tag that appears in the template. + * - title_prefix: Additional output populated by modules, intended to be + * displayed in front of the main title tag that appears in the template. + * - title_suffix: Additional output populated by modules, intended to be + * displayed after the main title tag that appears in the template. + * - view_mode: View mode; for example, "teaser" or "full". + * - teaser: Flag for the teaser state. Will be true if view_mode is 'teaser'. + * - page: Flag for the full page state. Will be true if view_mode is 'full'. + * - readmore: Flag for more state. Will be true if the teaser content of the + * node cannot hold the main body content. + * - logged_in: Flag for authenticated user status. Will be true when the + * current user is a logged-in member. + * - is_admin: Flag for admin user status. Will be true when the current user + * is an administrator. + * + * @see template_preprocess_node() + * + * @todo Remove the id attribute (or make it a class), because if that gets + * rendered twice on a page this is invalid CSS for example: two lists + * in different view modes. + */ +#} + +{% + set classes = [ + 'newsfeed__item', + 'newsfeed__item--' ~ node.bundle|clean_class, + node.isPromoted() ? 'newsfeed__item--promoted', + node.isSticky() ? 'newsfeed__item--sticky', + not node.isPublished() ? 'node--unpublished newsfeed__item--unpublished', + view_mode ? 'node--view-mode-' ~ view_mode|clean_class, + ] +%} + +{{ attach_library('classy/node') }} + +
+ {{ title_prefix }} + {% if not page %} +

+ {{ label }} +

+ {% endif %} + {{ title_suffix }} + +

{{ drupal_title() }}

+ + {# block postinfo #} + {% block postinfo %} + {% if display_submitted %} + {% set profile_pic_uri = node.uid.entity.user_picture.entity.uri.value %} + {% set profile_name = node.uid.entity.name.value %} + {% set profile_uri = path('entity.user.canonical', {'user': user.id}) %} + {% set creation_date = node.created.value|time_diff %} + {% set author_pic = { + '#theme': 'image_style', + '#style_name': 'thumbnail', + '#uri': profile_pic_uri, + '#alt': profile_name, + '#attributes': { class: 'post-info__picture post-info__picture--account responsive' }, + } %} + + + {% endif %} + {% endblock postinfo %} + {# end block postinfo #} + + {# block coverimage #} + {% block coverimage %} + {% if content.field_ngf_cover_image %} + {% set coverimageurl = file_url(content.field_ngf_cover_image|field_target_entity.field_media_image.entity.uri.value|image_style('media_large')) %} + + {% endif %} + {% endblock coverimage %} +
+ + {% block content %} + {{ content }} + {% endblock content %} + + \ No newline at end of file diff --git a/templates/content/group--ngf-event.html.twig b/templates/content/group--ngf-event.html.twig new file mode 100644 index 0000000..1f9e990 --- /dev/null +++ b/templates/content/group--ngf-event.html.twig @@ -0,0 +1,73 @@ +{# +/** + * @file + * Default theme implementation to display a group. + * + * Available variables: + * - group: The group entity with limited access to object properties and + * methods. Only "getter" methods (method names starting with "get", "has", + * or "is") and a few common methods such as "id" and "label" are available. + * Calling other methods (such as group.delete) will result in an exception. + * - label: The title of the group. + * - content: All group items. Use {{ content }} to print them all, + * or print a subset such as {{ content.field_example }}. Use + * {{ content|without('field_example') }} to temporarily suppress the + * printing of a given child element. + * - url: Direct URL of the current group. + * - attributes: HTML attributes for the containing element. + * The attributes.class element may contain one or more of the following + * classes: + * - group: The current template type (also known as a "theming hook"). + * - group--[type]: The current group type. For example, if the group is a + * "Classroom" it would result in "group--classroom". Note that the machine + * name will often be in a short form of the human readable label. + * - group--[view_mode]: The View Mode of the group; for example, a + * teaser would result in: "group--teaser", and full: "group--full". + * - title_attributes: Same as attributes, except applied to the main title + * tag that appears in the template. + * - content_attributes: Same as attributes, except applied to the main + * content tag that appears in the template. + * - title_prefix: Additional output populated by modules, intended to be + * displayed in front of the main title tag that appears in the template. + * - title_suffix: Additional output populated by modules, intended to be + * displayed after the main title tag that appears in the template. + * - view_mode: View mode; for example, "teaser" or "full". + * - page: Flag for the full page state. Will be true if view_mode is 'full'. + * + * @see template_preprocess_group() + * + * @ingroup themeable + */ +#} + +{{ kint(content|keys) }} +{{ kint(group|keys) }} + + {# block postinfo #} + {% block postinfo %} + {% set profile_pic_uri = group.uid.entity.user_picture.entity.uri.value %} + {% set profile_name = group.uid.entity.name.value %} + {% set profile_uri = path('entity.user.canonical', {'user': user.id}) %} + {% set creation_date = group.created.value|time_diff %} + {% set author_pic = { + '#theme': 'image_style', + '#style_name': 'thumbnail', + '#uri': profile_pic_uri, + '#alt': profile_name, + '#attributes': { class: 'post-info__picture post-info__picture--account responsive' }, + } %} + + {% include "@patterns/post_info/pattern-postinfo.html.twig" + + %} + + {% endblock postinfo %} + {# end block postinfo #} + + {# block coverimage #} + {% block coverimage %} + {% if content.field_ngf_cover_image %} + {% set coverimageurl = file_url(content.field_ngf_cover_image|field_target_entity.field_media_image.entity.uri.value|image_style('media_large')) %} + + {% endif %} + {% endblock coverimage %} \ No newline at end of file diff --git a/templates/content/node.html.twig b/templates/content/node.html.twig index 33ee1a5..79ccc75 100644 --- a/templates/content/node.html.twig +++ b/templates/content/node.html.twig @@ -110,30 +110,10 @@ '#attributes': { class: 'post-info__picture post-info__picture--account responsive' }, } %} - + {% include "@patterns/post_info/pattern-postinfo.html.twig" + + %} + {% endif %} {% endblock postinfo %} {# end block postinfo #} From afaffbfe1f171c52453be286b0222dc451343ebe Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Mon, 14 May 2018 14:29:15 +0200 Subject: [PATCH 032/200] NGF-136: changes to postinfo pattern and templates --- funkywave.theme | 14 +++++++ patterns/post_info/pattern-postinfo.html.twig | 2 +- patterns/post_info/postinfo.ui_patterns.yml | 10 ++--- templates/content/group--ngf-event.html.twig | 21 +++------- templates/content/node.html.twig | 40 ++++++++++++------- 5 files changed, 51 insertions(+), 36 deletions(-) diff --git a/funkywave.theme b/funkywave.theme index bd13e2c..0096d01 100644 --- a/funkywave.theme +++ b/funkywave.theme @@ -7,6 +7,8 @@ use Drupal\Core\Form\FormStateInterface; use Drupal\Core\Template\Attribute; +use Drupal\image\Entity\ImageStyle; + /** * Implement template_preprocess_node(). @@ -31,4 +33,16 @@ function funkywave_preprocess_node(&$variables) { $variables['group_logo'] = drupal_render($render); } +} + +function funkywave_preprocess_user(&$vars) { + $user = $vars['user']; + // get user image + if (!empty($user->user_picture[0])) { + $cover_image = $user->user_picture[0]->entity->getFileUri(); + $image_url = ImageStyle::load('thumbnail')->buildUrl($cover_image); + $vars['user_pic'] = $image_url; + // get user name + $vars['user_name'] = $user->getUsername(); + } } \ No newline at end of file diff --git a/patterns/post_info/pattern-postinfo.html.twig b/patterns/post_info/pattern-postinfo.html.twig index a1319ae..bafe7cf 100644 --- a/patterns/post_info/pattern-postinfo.html.twig +++ b/patterns/post_info/pattern-postinfo.html.twig @@ -8,7 +8,7 @@ + \ No newline at end of file From 11295f4f548ddc5004687d5bb2e3203a6de72c85 Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Tue, 15 May 2018 14:58:15 +0200 Subject: [PATCH 035/200] NGF-136: group_url group_name and group_image added --- funkywave.theme | 44 +++++++++++--------- patterns/post_info/postinfo.ui_patterns.yml | 6 +-- templates/content/group--ngf-event.html.twig | 3 ++ templates/content/node.html.twig | 3 ++ 4 files changed, 33 insertions(+), 23 deletions(-) diff --git a/funkywave.theme b/funkywave.theme index 0096d01..85aea63 100644 --- a/funkywave.theme +++ b/funkywave.theme @@ -8,30 +8,34 @@ use Drupal\Core\Form\FormStateInterface; use Drupal\Core\Template\Attribute; use Drupal\image\Entity\ImageStyle; - - + /** * Implement template_preprocess_node(). */ function funkywave_preprocess_node(&$variables) { - $context = \Drupal::service('context.repository'); - $groupContext = $context->getRuntimeContexts(['@group.group_route_context:group']); - $group = $groupContext['@group.group_route_context:group']->getContextData()->getValue(); - - if (isset($group)) { - // ksm($group->field_ngf_logo); - $variables['group_name'] = $group->label(); - $variables['group_url'] = $group->url(); - $group_logo_uri = $group->field_ngf_logo->entity->getFileUri(); - - $render = [ - '#theme' => 'image_style', - '#style_name' => 'thumbnail', - '#uri' => $group_logo_uri, - '#attributes' => ['class' => ['post-info__picture post-info__picture--group responsive']] - ]; - - $variables['group_logo'] = drupal_render($render); + $node = $variables['elements']['#node']; + + $variables['ngf_group_name'] = NULL; + $variables['ngf_group_url'] = NULL; + $variables['ngf_group_logo'] = NULL; + + if (isset($node->group) && $group = $node->group) { + $variables['ngf_group_name'] = $group->label(); + $variables['ngf_group_url'] = $group->url(); + if (!$group->field_ngf_cover_image->isEmpty()) { + $image = $group->get('field_ngf_cover_image')->getValue(); + $media_entity = Media::load($image[0]['target_id']); + $file_entity = $media_entity->field_media_image->first()->getValue(); + $file = File::load($file_entity['target_id']); + + $render = [ + '#theme' => 'image_style', + '#style_name' => 'thumbnail', + '#uri' => $file->getFileUri(), + '#attributes' => ['class' => ['post-info__picture post-info__picture--group responsive']] + ]; + $variables['ngf_group_logo'] = drupal_render($render); + } } } diff --git a/patterns/post_info/postinfo.ui_patterns.yml b/patterns/post_info/postinfo.ui_patterns.yml index 7e46101..4c01667 100644 --- a/patterns/post_info/postinfo.ui_patterns.yml +++ b/patterns/post_info/postinfo.ui_patterns.yml @@ -17,17 +17,17 @@ postinfo: label: Profile url description: Url to the author profile preview: https://en.wikipedia.org/wiki/User_profile - group_logo: + agroup_logo: type: image label: Group logo description: Url to the author profile preview: https://commons.wikimedia.org/wiki/File:Logo_TV_2015.png - group_url: + agroup_url: type: url label: Group url description: Url to the group preview: https://www.google.com - group_name: + agroup_name: type: text label: Group name description: Group name diff --git a/templates/content/group--ngf-event.html.twig b/templates/content/group--ngf-event.html.twig index 31a7f80..a159ea3 100644 --- a/templates/content/group--ngf-event.html.twig +++ b/templates/content/group--ngf-event.html.twig @@ -49,6 +49,9 @@ profile_name: group.uid.entity.name.value, profile_uri: path('entity.user.canonical', {'user': user.id}), creation_date: group.created.value|time_diff, + group_logo: ngf_group_logo, + group_url: ngf_group_url, + group_name: ngf_group_name, } %} diff --git a/templates/content/node.html.twig b/templates/content/node.html.twig index 5e5648c..fd7b650 100644 --- a/templates/content/node.html.twig +++ b/templates/content/node.html.twig @@ -105,6 +105,9 @@ profile_name: node.uid.entity.name.value, profile_uri: path('entity.user.canonical', {'user': user.id}), creation_date: node.created.value|time_diff, + group_logo: ngf_group_logo, + group_url: ngf_group_url, + group_name: ngf_group_name, } %} From 4b5a2c23b62946a0b0109f89a63646bf99580e8f Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Tue, 15 May 2018 17:16:17 +0200 Subject: [PATCH 036/200] changes --- funkywave.theme | 2 + templates/content/group--ngf-event.html.twig | 47 +++++++++++++++++++- 2 files changed, 48 insertions(+), 1 deletion(-) diff --git a/funkywave.theme b/funkywave.theme index 85aea63..7c43379 100644 --- a/funkywave.theme +++ b/funkywave.theme @@ -8,6 +8,8 @@ use Drupal\Core\Form\FormStateInterface; use Drupal\Core\Template\Attribute; use Drupal\image\Entity\ImageStyle; +use Drupal\media\Entity\Media; +use Drupal\file\Entity\File; /** * Implement template_preprocess_node(). diff --git a/templates/content/group--ngf-event.html.twig b/templates/content/group--ngf-event.html.twig index a159ea3..e23596a 100644 --- a/templates/content/group--ngf-event.html.twig +++ b/templates/content/group--ngf-event.html.twig @@ -64,4 +64,49 @@ {% set coverimageurl = file_url(content.field_ngf_cover_image|field_target_entity.field_media_image.entity.uri.value|image_style('media_large')) %} {% endif %} - {% endblock coverimage %} \ No newline at end of file + {% endblock coverimage %} + + {% block eventdata %} + {# convert date to an integer stamp #} + {% set event_start_date = group.field_ngf_event_start_date.value|date('U') %} + {# Convert event_end_date to an integer stamp if not empty #} + {% if group.field_ngf_event_end_date is not empty %} + {% set event_end_date = group.field_ngf_event_end_date.value|date('U') %} + {% else %} + {% set event_end_date = NULL %} + {% endif %} + + {# Event year #} + {% set event_start_date_year = event_start_date|date('Y') %} + {% set event_end_date_year = event_end_date|date('Y') %} + + {# Event month #} + {% set event_start_date_month = event_start_date|date('m') %} + {% set event_end_date_month = event_end_date|date('m') %} + + {# Start date & end date the same #} + +
+

{% trans %} When {% endtrans %}

+ {% if event_end_date is null %} + + {% else %} + {# same month same year #} + {% if (event_start_date_month == event_end_date_month) and (event_start_date_year == event_end_date_year) %} + + - + + {# different month same year #} + {% elseif (event_start_date_month != event_end_date_month) and (event_start_date_year == event_end_date_year) %} + + - + + {# different year for event start date & end date #} + {% elseif (event_start_date_year != event_end_date_year) %} + + - + + {% endif %} + {% endif %} +
+ {% endblock eventdata %} \ No newline at end of file From d166c70abee2f96800f351499fe2f7175f30b29d Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Wed, 16 May 2018 10:25:55 +0200 Subject: [PATCH 037/200] fixed issue with title in node --- templates/content/node.html.twig | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/templates/content/node.html.twig b/templates/content/node.html.twig index fd7b650..4758931 100644 --- a/templates/content/node.html.twig +++ b/templates/content/node.html.twig @@ -90,11 +90,13 @@

{{ label }}

+ {% else %} +

+ {{ label }} +

{% endif %} {{ title_suffix }} -

{{ drupal_title() }}

- {# block postinfo #} {% block postinfo %} {% if display_submitted %} @@ -125,7 +127,7 @@ {% block content %} - {{ content }} + {# {{ content }} #} {% endblock content %} \ No newline at end of file From a609137f8c6ba8648a10c1f08d01230bec691600 Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Wed, 16 May 2018 16:41:01 +0200 Subject: [PATCH 038/200] NGF-143: theming header /user page --- templates/user/user.html.twig | 41 +++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 templates/user/user.html.twig diff --git a/templates/user/user.html.twig b/templates/user/user.html.twig new file mode 100644 index 0000000..443e248 --- /dev/null +++ b/templates/user/user.html.twig @@ -0,0 +1,41 @@ +{# +/** + * @file + * Theme override to present all user data. + * + * This template is used when viewing a registered user's page, + * e.g., example.com/user/123. 123 being the user's ID. + * + * Available variables: + * - content: A list of content items. Use 'content' to print all content, or + * print a subset such as 'content.field_example'. Fields attached to a user + * such as 'user_picture' are available as 'content.user_picture'. + * - attributes: HTML attributes for the container element. + * - user: A Drupal User entity. + * + * @see template_preprocess_user() + */ +#} + +
+ + {% set first_name = content.field_ngf_first_name|field_raw.value %} + {% set last_name = content.field_ngf_last_name|field_raw.value %} + {% set profile_pic_url = file_url(content.user_picture|field_target_entity.uri.value|image_style('thumbnail')) %} + + {% if profile_pic_url %} + + {{ first_name }} {{ last_name }} {% trans %} Profile picture {% endtrans %} + + {% endif %} + +

{{ first_name }} {{ last_name }}

+ {% trans %} Learn more {% endtrans %}{% trans %}about{% endtrans %} {{ first_name }} {{ last_name }} + + +
    +
  • +
+ +
+ From b689a2d28a0f5e52f4a001cc9a62e4100b1500ed Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Fri, 18 May 2018 11:15:39 +0200 Subject: [PATCH 039/200] NGF-143: postinfo pattern changes to reuse the pattern for group-teasers --- funkywave.theme | 9 +++ .../backup_pattern-postinfo.html.twig | 59 ++++++++++++++++ patterns/post_info/pattern-postinfo.html.twig | 48 ++++++++++--- patterns/post_info/postinfo.ui_patterns.yml | 8 +-- templates/content/group--ngf-event.html.twig | 7 +- templates/content/node.html.twig | 3 + ...up--ngf-discussion-group--teaser.html.twig | 67 +++++++++++++++++++ 7 files changed, 184 insertions(+), 17 deletions(-) create mode 100644 patterns/post_info/backup_pattern-postinfo.html.twig create mode 100644 templates/group/group--ngf-discussion-group--teaser.html.twig diff --git a/funkywave.theme b/funkywave.theme index 7c43379..5002bbe 100644 --- a/funkywave.theme +++ b/funkywave.theme @@ -29,6 +29,7 @@ function funkywave_preprocess_node(&$variables) { $media_entity = Media::load($image[0]['target_id']); $file_entity = $media_entity->field_media_image->first()->getValue(); $file = File::load($file_entity['target_id']); + $variables['ngf_group_logo_uri'] = $file->getFileUri(); $render = [ '#theme' => 'image_style', @@ -51,4 +52,12 @@ function funkywave_preprocess_user(&$vars) { // get user name $vars['user_name'] = $user->getUsername(); } +} + +/** +* Implements template_preprocess_group +*/ +function funkywave_preprocess_group(&$variables) { + // This is needed so the group name is printed along with {{content}}. + $variables['content']['label']['#printed'] = FALSE; } \ No newline at end of file diff --git a/patterns/post_info/backup_pattern-postinfo.html.twig b/patterns/post_info/backup_pattern-postinfo.html.twig new file mode 100644 index 0000000..d8c5806 --- /dev/null +++ b/patterns/post_info/backup_pattern-postinfo.html.twig @@ -0,0 +1,59 @@ +{# +/** + * @file + * post info pattern. + */ +#} + +{% set groupclass = '' %} +{% if group_url and author_pic_uri %} + {% set groupclass = 'post-info--group' %} +{% else %} + {% set groupclass = 'post-info--no-group' %} +{% endif %} + +{% set mainpic = '' %} +{% set subpic = '' %} + +{% if author_pic %} + {% set mainpic = author_pic %} +{% else %} + {% set mainpic = group_logo %} +{% endif %} + + \ No newline at end of file diff --git a/patterns/post_info/pattern-postinfo.html.twig b/patterns/post_info/pattern-postinfo.html.twig index 669b3c1..8ebcaf1 100644 --- a/patterns/post_info/pattern-postinfo.html.twig +++ b/patterns/post_info/pattern-postinfo.html.twig @@ -4,29 +4,55 @@ * post info pattern. */ #} - + + From f48ecefcab915bc3c239e918549b11eb262be8d3 Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Fri, 1 Jun 2018 13:36:13 +0200 Subject: [PATCH 053/200] NGF-204: twig templates added for the local-tasks theming --- css/style.css | 653 ++++++++++++++++-- .../navigation/menu-local-task.html.twig | 25 + .../navigation/menu-local-tasks.html.twig | 23 + 3 files changed, 630 insertions(+), 71 deletions(-) create mode 100644 templates/navigation/menu-local-task.html.twig create mode 100644 templates/navigation/menu-local-tasks.html.twig diff --git a/css/style.css b/css/style.css index 7036b17..71de613 100644 --- a/css/style.css +++ b/css/style.css @@ -29,12 +29,18 @@ h1, h2, h3, h4, h5, h6 { font-family: "Raleway"; font-weight: bold; line-height: 1.3; + margin-bottom: -0.5em; + margin-top: 1.9em; } h4, h5, h6 { color: #88898c; } +p:last-child { + margin-bottom: 1em; +} + a:not(.toolbar-item) { color: #662D91; -webkit-transition: all 0.2s; @@ -108,6 +114,381 @@ main *:not(img):not(svg)::selection { } } +.form-wrapper { + padding: 0px 15px 75px 15px; +} + +form__block, .form__block { + margin: 1.5rem 0 1rem; +} + +form__block--text label, form__fake-label, .form__block--text label, .form__fake-label { + display: block; + font-weight: 600; + margin-bottom: 0.3em; +} + +form textarea, .form textarea { + font-family: "Raleway"; + min-height: 6rem; +} + +form input[type=text], form input[type=email], form input[type=password], form textarea, .form input[type=text], .form input[type=email], .form input[type=password], .form textarea { + padding: 0.7rem 0.9rem; + font-size: 1.6rem; + line-height: 1.8; + color: #515155; + max-width: 32em; + width: 100%; + border: solid 2px #a6a7ab; + -webkit-box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.1); + box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.1); + -webkit-transition: border-color 0.2s; + transition: border-color 0.2s; +} + +form input[type=text]:focus:hover, form input[type=text]:focus, form input[type=email]:focus:hover, form input[type=email]:focus, form input[type=password]:focus:hover, form input[type=password]:focus, form textarea:focus:hover, form textarea:focus, .form input[type=text]:focus:hover, .form input[type=text]:focus, .form input[type=email]:focus:hover, .form input[type=email]:focus, .form input[type=password]:focus:hover, .form input[type=password]:focus, .form textarea:focus:hover, .form textarea:focus { + outline: none; + border: solid 2px #662D91; + -webkit-transition: border-color 0.2s; + transition: border-color 0.2s; +} + +form input[type=text]:hover, form input[type=email]:hover, form input[type=password]:hover, form textarea:hover, .form input[type=text]:hover, .form input[type=email]:hover, .form input[type=password]:hover, .form textarea:hover { + border-color: #515155; + -webkit-transition: border-color 0.2s; + transition: border-color 0.2s; +} + +form input[type=text]::-webkit-input-placeholder, form input[type=email]::-webkit-input-placeholder, form input[type=password]::-webkit-input-placeholder, form textarea::-webkit-input-placeholder, .form input[type=text]::-webkit-input-placeholder, .form input[type=email]::-webkit-input-placeholder, .form input[type=password]::-webkit-input-placeholder, .form textarea::-webkit-input-placeholder { + opacity: 0.4; +} + +form input[type=text]:-ms-input-placeholder, form input[type=email]:-ms-input-placeholder, form input[type=password]:-ms-input-placeholder, form textarea:-ms-input-placeholder, .form input[type=text]:-ms-input-placeholder, .form input[type=email]:-ms-input-placeholder, .form input[type=password]:-ms-input-placeholder, .form textarea:-ms-input-placeholder { + opacity: 0.4; +} + +form input[type=text]::-ms-input-placeholder, form input[type=email]::-ms-input-placeholder, form input[type=password]::-ms-input-placeholder, form textarea::-ms-input-placeholder, .form input[type=text]::-ms-input-placeholder, .form input[type=email]::-ms-input-placeholder, .form input[type=password]::-ms-input-placeholder, .form textarea::-ms-input-placeholder { + opacity: 0.4; +} + +form input[type=text]::placeholder, form input[type=email]::placeholder, form input[type=password]::placeholder, form textarea::placeholder, .form input[type=text]::placeholder, .form input[type=email]::placeholder, .form input[type=password]::placeholder, .form textarea::placeholder { + opacity: 0.4; +} + +form input[type=text].error, form input[type=email].error, form input[type=password].error, form textarea.error, .form input[type=text].error, .form input[type=email].error, .form input[type=password].error, .form textarea.error { + border: solid 2px #ff3939; + -webkit-transition: border-color 0.2s; + transition: border-color 0.2s; +} + +form input[type=text] + p, form input[type=email] + p, form input[type=password] + p, form textarea + p, .form input[type=text] + p, .form input[type=email] + p, .form input[type=password] + p, .form textarea + p { + margin-top: 0.2em; + -webkit-transition: border-color 0.2s; + transition: border-color 0.2s; +} + +form .form__block--twocol, .form .form__block--twocol { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; +} + +form .form__block--twocol > *[class^="form__block--"], .form .form__block--twocol > *[class^="form__block--"] { + -ms-flex-preferred-size: 100%; + flex-basis: 100%; + width: 100%; + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; + padding: 0rem 0px; + margin: 0.8rem 0; +} + +form .form__block--toggle input[type=checkbox], form .form__block--checkbox input[type=checkbox], .form .form__block--toggle input[type=checkbox], .form .form__block--checkbox input[type=checkbox] { + -webkit-box-sizing: border-box; + box-sizing: border-box; + padding: 0; + margin: 4px 0 0; + margin-top: 0em; + opacity: 0; + z-index: 1; + position: absolute; + margin-left: -20px; +} + +form .form__block--submit, .form .form__block--submit { + margin: 2.5rem 0 2rem; +} + +form .form__block--checkbox, .form .form__block--checkbox { + margin: 1.5rem 0 1rem; +} + +form .form__block--checkbox input[type=checkbox] + label .onoffswitch-inner, .form .form__block--checkbox input[type=checkbox] + label .onoffswitch-inner { + display: inline-block; + height: 2.2rem; + width: 2.2rem; + background: #FFFFFF; + margin: 3px 20px 0 0; + -webkit-transition: 0.2s margin; + transition: 0.2s margin; + border: solid 2px #a6a7ab; + position: absolute; +} + +form .form__block--checkbox .label-text, .form .form__block--checkbox .label-text { + margin-left: 3.5rem; + display: inline-block; + line-height: 1.5; +} + +form .form__block--checkbox input[type=checkbox]:focus + label .onoffswitch-inner, .form .form__block--checkbox input[type=checkbox]:focus + label .onoffswitch-inner { + -webkit-box-shadow: 0px 0px 0px 1px #662D91; + box-shadow: 0px 0px 0px 1px #662D91; + border: solid 2px #662D91 !important; +} + +form .form__block--checkbox input[type=checkbox]:checked + label .onoffswitch-inner, .form .form__block--checkbox input[type=checkbox]:checked + label .onoffswitch-inner { + display: inline-block; + height: 2.2rem; + width: 2.2rem; + background: #1eb49c; + margin: 3px 20px 0 0; + -webkit-transition: 0.2s margin; + transition: 0.2s margin; + border: solid 2px #a6a7ab; + position: absolute; +} + +form .form__block--checkbox input[type=checkbox]:checked + label .onoffswitch-inner:before, form .form__block--checkbox input[type=checkbox]:checked + label .onoffswitch-inner:after, .form .form__block--checkbox input[type=checkbox]:checked + label .onoffswitch-inner:before, .form .form__block--checkbox input[type=checkbox]:checked + label .onoffswitch-inner:after { + position: absolute; + content: ''; + width: 3px; + height: 2.7rem; + background-color: rgba(5, 17, 30, 0.8); +} + +form .form__block--checkbox input[type=checkbox]:checked + label .onoffswitch-inner:before, .form .form__block--checkbox input[type=checkbox]:checked + label .onoffswitch-inner:before { + -webkit-transform: rotate(45deg); + transform: rotate(45deg); + margin-left: 7px; + margin-top: -5px; +} + +form .form__block--checkbox input[type=checkbox]:checked + label .onoffswitch-inner:after, .form .form__block--checkbox input[type=checkbox]:checked + label .onoffswitch-inner:after { + -webkit-transform: rotate(-45deg); + transform: rotate(-45deg); + margin-left: 7px; + margin-top: -5px; +} + +form .form__block--toggle, .form .form__block--toggle { + margin: 1.5rem 0 1rem; +} + +form .form__block--toggle input[type=checkbox] + label:before, .form .form__block--toggle input[type=checkbox] + label:before { + background-color: #FFF; + background-size: 40rem 20rem; + content: ""; + width: 3.9rem; + height: 1.9rem; + display: inline-block; + margin-right: -40px; + margin-top: 3px; + border-radius: 20px; + border: solid 2px #c6c7cc; + -webkit-transition: background-color .2s; + transition: background-color .2s; + -webkit-box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.2); + box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.2); + position: absolute; +} + +form .form__block--toggle input[type=checkbox]:focus + label:before, .form .form__block--toggle input[type=checkbox]:focus + label:before { + -webkit-box-shadow: 0px 0px 0px 1px #662D91; + box-shadow: 0px 0px 0px 1px #662D91; + border: solid 2px #662D91 !important; +} + +form .form__block--toggle input[type=checkbox]:checked + label:before, .form .form__block--toggle input[type=checkbox]:checked + label:before { + background-color: #1eb49c; + -webkit-transition: background-color .2s; + transition: background-color .2s; + border: solid 2px rgba(0, 0, 0, 0.2); +} + +form .form__block--toggle input[type=checkbox]:checked + label .onoffswitch-inner, .form .form__block--toggle input[type=checkbox]:checked + label .onoffswitch-inner { + display: inline-block; + background: #edeff5; + margin: 3px 0 0 20px; + border: solid 2px #a6a7ab; + height: 2.2rem; + width: 2.2rem; +} + +form .form__block--toggle input[type=checkbox] + label .onoffswitch-inner, .form .form__block--toggle input[type=checkbox] + label .onoffswitch-inner { + display: inline-block; + height: 2.2rem; + width: 2.2rem; + background: #edeff5; + margin: 3px 20px 0 0; + -webkit-transition: 0.2s margin; + transition: 0.2s margin; + border-radius: 1rem; + border: solid 2px #a6a7ab; + position: absolute; +} + +form .form__block--toggle .label-text, .form .form__block--toggle .label-text { + margin-left: 5rem; +} + +.js .form__input--file { + width: 0.1px; + height: 0.1px; + opacity: 0; + overflow: hidden; + position: absolute; + z-index: -1; +} + +.form__input--file + label { + padding: 0.7rem 0.9rem; + font-size: 1.6rem; + color: #515155; + max-width: 32em; + width: 100%; + border: solid 2px #a6a7ab; + -webkit-box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.1); + box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.1); + text-overflow: ellipsis; + white-space: nowrap; + cursor: pointer; + display: inline-block; + overflow: hidden; +} + +.form__input--file + label:focus { + outline: none; + border: solid 2px #662D91; +} + +.no-js .form__input--file + label { + display: none; +} + +.form__input--file:focus + label, +.form__input--file.has-focus + label { + outline: none; + border: solid 2px #662D91; +} + +.form__input--file + label * { +} + +.form__input--file + label .form__label--file { + background-color: #88898c; + color: #FFFFFF; + text-align: right; + float: right; + -webkit-transition: background-color 0.2s; + transition: background-color 0.2s; + -webkit-transition: color 0.2s; + transition: color 0.2s; +} + +.form__input--file:hover + label .form__label--file { + background-color: #515155; + color: rgba(255, 255, 255, 0.9); + -webkit-transition: background-color 0.2s; + transition: background-color 0.2s; + -webkit-transition: color 0.2s; + transition: color 0.2s; +} + +.form__input--file:focus + label .form__label--file { + background-color: #662D91; + color: rgba(255, 255, 255, 0.9); + -webkit-transition: background-color 0.2s; + transition: background-color 0.2s; + -webkit-transition: color 0.2s; + transition: color 0.2s; +} + +.form__input--file + label .form__input--selected { + text-align: left; +} + +.form__input--file + label { + color: #515155; +} + +.form__input--file + label { + border: solid 2px #a6a7ab; + -webkit-box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.1); + box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.1); + -webkit-transition: border-color 0.2s; + transition: border-color 0.2s; + background-color: #FFFFFF; + padding: 0; +} + +.form__input--file + label:hover { + border-color: #515155; + -webkit-transition: border-color 0.2s; + transition: border-color 0.2s; +} + +.form__input--file + label span, +.form__input--file + label strong { + padding: 0.7rem 1.25rem; +} + +.form__input--file + label span { + min-height: 2em; + display: inline-block; + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; + vertical-align: top; +} + +@media (min-width: 578px) { + .form .form__block--twocol { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + } + + .form .form__block--twocol > *[class^="form__block--"] { + -ms-flex-preferred-size: 50%; + flex-basis: 50%; + width: calc(50% - 15px); + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; + } + + .form .form__block--twocol > *[class^="form__block--"]:nth-child(odd) { + padding-right: 15px; + } +} + +@media (min-width: 768px) { + .form-wrapper { + padding: 0px 15px 30px 15px; + } + + main.form-wrapper { + padding: 75px 15px 30px 15px; + } +} + .icon.icon--cog { background: url(../images/settings-icon.svg) no-repeat; background-size: cover; @@ -150,6 +531,7 @@ main *:not(img):not(svg)::selection { .list--taxonomy { padding: 0; + line-height: 2.3; } .list--taxonomy .list__item--tag { @@ -196,23 +578,75 @@ main *:not(img):not(svg)::selection { } } -a.tag { +a.tag, li.tag { background-color: #515155; color: #FFFFFF; border-radius: 2rem; text-shadow: none; -webkit-box-shadow: none; box-shadow: none; - padding: 0.2rem 0.6rem; font-size: 1.3rem; border: solid 1px #515155; } +a.tag.tag--deletable, li.tag.tag--deletable { + padding-right: 0.2rem; +} + +a.tag { + padding: 0.45rem 0.6rem; +} + a.tag:hover { background-color: #c6c7cc; color: #05111E; } +li.tag { + padding: 0.2rem 0.6rem; + line-height: 1.1; +} + +.tag button.close { + line-height: 2rem; + padding: 0.1rem; + border: none; + background-color: rgba(255, 255, 255, 0.8); + -webkit-box-shadow: 0 0 0 3px #515155 !important; + box-shadow: 0 0 0 3px #515155 !important; + cursor: pointer; + color: #ff3939; + border-radius: 10rem; + font-weight: 900; + height: 2rem; + min-width: 2rem; + margin-left: 0.6rem; + -webkit-transition: all 0.2s; + transition: all 0.2s; + text-align: center; +} + +.tag button.close span { + margin-top: -0.1rem; + display: block; +} + +.tag button.close:hover { + background-color: white; + -webkit-box-shadow: 0 0 0 3px rgba(255, 57, 57, 0.5) !important; + box-shadow: 0 0 0 3px rgba(255, 57, 57, 0.5) !important; + -webkit-transition: all 0.2s; + transition: all 0.2s; +} + +.tag button.close:focus { + outline: none; + -webkit-box-shadow: 0 0 0 3px #ff3939 !important; + box-shadow: 0 0 0 3px #ff3939 !important; + -webkit-transition: all 0.2s; + transition: all 0.2s; +} + #skip-link, .skip-link { position: fixed; top: 1.5em; @@ -261,6 +695,54 @@ a.tag:hover { opacity: 0.8; } +.text-danger { + color: #ff3939; +} + +.hr-text { + line-height: 1em; + position: relative; + outline: 0; + border: 0; + color: black; + text-align: center; + height: 1.5em; + opacity: 1; + width: 80%; + margin: 5rem auto 3rem auto; +} + +.hr-text:before { + content: ''; + background: #88898c; + position: absolute; + left: 0; + top: 50%; + width: 100%; + height: 1px; + z-index: 0; +} + +.hr-text:after { + content: attr(data-content); + position: relative; + display: inline-block; + font-weight: 700; + padding: 0 3rem; + line-height: 3rem; + color: #88898c; + background-color: #FFFFFF; + z-index: 0; +} + +.extra-space--top { + margin-top: 5rem !important; +} + +.extra-space--bottom { + margin-bottom: 3rem !important; +} + @media (min-width: 768px) { .no-display--sm { position: inherit !important; @@ -374,20 +856,39 @@ a.tag:hover { .btn-list--right { text-align: right; - margin-right: 15px; +} + +.btn-list--center { + text-align: center; + width: 100%; + margin: auto; +} + +.btn-list--center > .btn { + display: block; + margin: 2.5rem auto 2rem auto; +} + +.btn.btn--large { + width: 100%; + padding: 0.3rem 1rem; + font-size: 1.8rem; } a.btn, input.btn, button.btn { color: #05111E; + font-size: 1.6rem; text-decoration: none; - padding: 0.1rem 0rem; + padding: 0.1rem 1.5rem; border-radius: 300px; text-align: center; text-shadow: none !important; - min-width: 10rem; - font-weight: 800; + min-width: 12rem; + font-weight: 700; line-height: 1.3; margin-right: 15px; + border: none; + cursor: pointer; } a.btn:last-child, input.btn:last-child, button.btn:last-child { @@ -398,6 +899,12 @@ a.btn:hover, input.btn:hover, button.btn:hover { color: #FFFFFF; } +a.btn:focus, input.btn:focus, button.btn:focus { + -webkit-box-shadow: 0 0 0 4px #662D91 !important; + box-shadow: 0 0 0 4px #662D91 !important; + outline: none; +} + .btn--green { display: inline-block; background: #1eb49c; @@ -434,10 +941,44 @@ a.btn:hover, input.btn:hover, button.btn:hover { background: #006580; } +.btn--grey { + display: inline-block; + background: #c6c7cc; + -webkit-box-shadow: 0 0 0 4px rgba(198, 199, 204, 0.5) !important; + box-shadow: 0 0 0 4px rgba(198, 199, 204, 0.5) !important; + text-shadow: none; +} + +.btn--grey:hover { + background: #b0b2b9; + -webkit-transition: all 0.3s ease; + transition: all 0.3s ease; +} + +.btn--grey:active { + background: #838590; +} + .btn-list { margin-top: 3rem; } +@media (min-width: 768px) { + .btn.btn--large { + padding: 0.4rem 0rem; + font-size: 2rem; + } + + .btn-list--center { + width: 60%; + } + + .btn-list--center > .btn { + display: block; + margin: 2.5rem auto 2rem auto; + } +} + @media (min-width: 768px) { .general-footer { position: fixed !important; @@ -641,6 +1182,14 @@ a.btn:hover, input.btn:hover, button.btn:hover { cursor: default; } +.tab-content .tab-pane { + display: none; +} + +.tab-content .tab-pane.active { + display: block; +} + .logo-area { background-image: url("../images/logo-area-bckgrd--sm.svg"); background-repeat: no-repeat; @@ -680,6 +1229,7 @@ a.btn:hover, input.btn:hover, button.btn:hover { width: 100vw; height: 25vw; max-height: 100px; + z-index: 1000; } .navigation-menu__list { @@ -1004,35 +1554,35 @@ a.btn:hover, input.btn:hover, button.btn:hover { background-color: #ffebeb; } -.post-info { +.profile-shortinfo { margin-bottom: 2rem; } -.post-info.post-info--group { - background: url(../images/post-info--group__background.svg) no-repeat left top; +.profile-shortinfo.profile-shortinfo--group { + background: url(../images/profile-shortinfo--group__background.svg) no-repeat left top; background-size: 5.7rem 8.3rem; } -.post-info.post-info--group .post-info__ilustration { +.profile-shortinfo.profile-shortinfo--group .profile-shortinfo__ilustration { width: 5.7rem; height: 8.3rem; margin-right: 1.7rem; float: left; } -.post-info.post-info--group img.responsive.post-info__picture--account { +.profile-shortinfo.profile-shortinfo--group img.responsive.profile-shortinfo__picture--account { margin-left: 0.5rem; margin-top: 0.6rem; } -.post-info.post-info--no-group { +.profile-shortinfo.profile-shortinfo--no-group { display: -webkit-box; display: -ms-flexbox; display: flex; background: none; } -.post-info.post-info--no-group .post-info__ilustration { +.profile-shortinfo.profile-shortinfo--no-group .profile-shortinfo__ilustration { width: 5.6rem; height: 5.6rem; margin-right: 1.7rem; @@ -1043,30 +1593,30 @@ a.btn:hover, input.btn:hover, button.btn:hover { border: solid 5px rgba(255, 57, 127, 0.5); } -.post-info.post-info--no-group .post-info__action { +.profile-shortinfo.profile-shortinfo--no-group .profile-shortinfo__action { -webkit-box-flex: 0; -ms-flex: 0 0 5.6rem; flex: 0 0 5.6rem; } -.post-info.post-info--no-group img.responsive.post-info__picture--account { +.profile-shortinfo.profile-shortinfo--no-group img.responsive.profile-shortinfo__picture--account { margin-left: 0rem; margin-top: 0rem; } -.post-info.post-info--no-group .post-info__link.post-info__link--account { +.profile-shortinfo.profile-shortinfo--no-group .profile-shortinfo__link.profile-shortinfo__link--account { margin-left: 0rem; margin-top: 0rem; } -.post-info img.responsive.post-info__picture--account { +.profile-shortinfo img.responsive.profile-shortinfo__picture--account { width: 4.6rem; height: 4.6rem; border-radius: 100px; display: block; } -.post-info img.responsive.post-info__picture--group { +.profile-shortinfo img.responsive.profile-shortinfo__picture--group { margin-left: 3rem; margin-top: 5px; width: 2rem; @@ -1075,27 +1625,27 @@ a.btn:hover, input.btn:hover, button.btn:hover { display: block; } -.post-info .post-info__link { +.profile-shortinfo .profile-shortinfo__link { text-shadow: none; -webkit-box-shadow: none; box-shadow: none; } -.post-info .post-info__link img.responsive.post-info__picture--account { +.profile-shortinfo .profile-shortinfo__link img.responsive.profile-shortinfo__picture--account { margin-left: 0; margin-top: 0; width: calc(4.6rem - 4px); height: calc(4.6rem - 4px); } -.post-info .post-info__link img.responsive.post-info__picture--group { +.profile-shortinfo .profile-shortinfo__link img.responsive.profile-shortinfo__picture--group { margin-left: 0; margin-top: 0; width: calc(2rem - 2px); height: calc(2rem - 2px); } -.post-info .post-info__link--group { +.profile-shortinfo .profile-shortinfo__link--group { border-radius: 100px; border: solid 1px #ff397f; -webkit-transition: border 0.2s; @@ -1109,7 +1659,7 @@ a.btn:hover, input.btn:hover, button.btn:hover { transition: border 0.2s; } -.post-info .post-info__link--group:hover, .post-info .post-info__link--group:focus { +.profile-shortinfo .profile-shortinfo__link--group:hover, .profile-shortinfo .profile-shortinfo__link--group:focus { text-shadow: none; -webkit-box-shadow: none; box-shadow: none; @@ -1120,11 +1670,11 @@ a.btn:hover, input.btn:hover, button.btn:hover { transition: border 0.2s; } -.post-info .post-info__link--group:hover img, .post-info .post-info__link--group:focus img { +.profile-shortinfo .profile-shortinfo__link--group:hover img, .profile-shortinfo .profile-shortinfo__link--group:focus img { opacity: 0.6; } -.post-info .post-info__link--account { +.profile-shortinfo .profile-shortinfo__link--account { border-radius: 100px; border: solid 2px #ff397f; -webkit-transition: border 0.2s; @@ -1136,7 +1686,7 @@ a.btn:hover, input.btn:hover, button.btn:hover { margin-top: 0.6rem; } -.post-info .post-info__link--account:hover, .post-info .post-info__link--account:focus { +.profile-shortinfo .profile-shortinfo__link--account:hover, .profile-shortinfo .profile-shortinfo__link--account:focus { text-shadow: none; -webkit-box-shadow: none; box-shadow: none; @@ -1147,16 +1697,16 @@ a.btn:hover, input.btn:hover, button.btn:hover { transition: border 0.2s; } -.post-info .post-info__link--account:hover img, .post-info .post-info__link--account:focus img { +.profile-shortinfo .profile-shortinfo__link--account:hover img, .profile-shortinfo .profile-shortinfo__link--account:focus img { opacity: 0.6; } -.post-info__details { +.profile-shortinfo__details { float: left; width: calc(100% - 7.4rem); } -.post-info__details .post-info__author { +.profile-shortinfo__details .profile-shortinfo__author { font-size: 2rem; font-weight: 700; color: #515155; @@ -1164,7 +1714,7 @@ a.btn:hover, input.btn:hover, button.btn:hover { padding: 0.2rem 0 0 0; } -.post-info__details .post-info__author .post-info__account-link { +.profile-shortinfo__details .profile-shortinfo__author .profile-shortinfo__account-link { text-shadow: none; -webkit-box-shadow: none; box-shadow: none; @@ -1172,14 +1722,14 @@ a.btn:hover, input.btn:hover, button.btn:hover { color: #515155; } -.post-info__details .post-info__author .post-info__account-link:hover { +.profile-shortinfo__details .profile-shortinfo__author .profile-shortinfo__account-link:hover { color: #662D91; text-shadow: 0 2px 0 #FFFFFF, 0 3px 0 #FFFFFF, 1px 2px 0 #FFFFFF, -1px 2px 0 #FFFFFF; -webkit-box-shadow: 0 1px 0 0 #662D91; box-shadow: 0 1px 0 0 #662D91; } -.post-info__details .post-info__metadata { +.profile-shortinfo__details .profile-shortinfo__metadata { margin-top: 0.2rem; line-height: 1.4; } @@ -1535,42 +2085,3 @@ a.share--email { } /*# sourceMappingURL=style.css.map */ - - - -/** - * @file - * Visual styles for tabs. - */ - -div.tabs { - margin: 1em 0; -} -ul.tabs { - list-style: none; - margin: 0 0 0.5em; - padding: 0; -} -.tabs > li { - display: inline-block; - margin-right: 0.3em; /* LTR */ -} -[dir="rtl"] .tabs > li { - margin-left: 0.3em; - margin-right: 0; -} -.tabs a { - display: block; - padding: 0.2em 1em; - text-decoration: none; -} -.tabs a.is-active { - background-color: #eee; -} -.tabs a:focus, -.tabs a:hover { - background-color: #f5f5f5; -} - - -/*# sourceMappingURL=style.css.map */ diff --git a/templates/navigation/menu-local-task.html.twig b/templates/navigation/menu-local-task.html.twig new file mode 100644 index 0000000..8254330 --- /dev/null +++ b/templates/navigation/menu-local-task.html.twig @@ -0,0 +1,25 @@ +{# +/** + * @file + * Theme override for a local task link. + * + * Available variables: + * - attributes: HTML attributes for the wrapper element. + * - is_active: Whether the task item is an active tab. + * - link: A rendered link element. + * + * Note: This template renders the content for each task item in + * menu-local-tasks.html.twig. + * + * @see template_preprocess_menu_local_task() + */ +#} + +{% + set classes = [ + is_active ? 'active', + 'nav__link', + ] +%} + +{{ link }} diff --git a/templates/navigation/menu-local-tasks.html.twig b/templates/navigation/menu-local-tasks.html.twig new file mode 100644 index 0000000..e82e425 --- /dev/null +++ b/templates/navigation/menu-local-tasks.html.twig @@ -0,0 +1,23 @@ +{# +/** + * @file + * Theme override to display primary and secondary local tasks. + * + * Available variables: + * - primary: HTML list items representing primary tasks. + * - secondary: HTML list items representing primary tasks. + * + * Each item in these variables (primary and secondary) can be individually + * themed in menu-local-task.html.twig. + */ +#} +{% if primary %} + +{% endif %} From 68663fcae4d7602a97edb0dbf3a28b70f49026a8 Mon Sep 17 00:00:00 2001 From: peterne Date: Fri, 1 Jun 2018 13:59:53 +0200 Subject: [PATCH 054/200] Revert "Feature/ngf 204" --- css/style.css | 653 ++---------------- funkywave.theme | 53 +- .../post_info/pattern-postinfo-new.html.twig | 37 - .../pattern-profile-actions.html.twig | 21 - .../pattern-profileheader-top.html.twig | 27 - .../pattern-profile-meta.html.twig | 12 - .../pattern-profile-networks.html.twig | 18 - templates/content/node.html.twig | 7 +- ...up--ngf-discussion-group--header.html.twig | 68 +- .../group--ngf-discussion-group.html.twig | 50 -- .../navigation/menu-local-task.html.twig | 25 - .../navigation/menu-local-tasks.html.twig | 23 - 12 files changed, 124 insertions(+), 870 deletions(-) delete mode 100644 patterns/post_info/pattern-postinfo-new.html.twig delete mode 100644 patterns/profile_actions/pattern-profile-actions.html.twig delete mode 100644 patterns/profile_header_top/pattern-profileheader-top.html.twig delete mode 100644 patterns/profile_meta/pattern-profile-meta.html.twig delete mode 100644 patterns/profile_networks/pattern-profile-networks.html.twig delete mode 100644 templates/group/group--ngf-discussion-group.html.twig delete mode 100644 templates/navigation/menu-local-task.html.twig delete mode 100644 templates/navigation/menu-local-tasks.html.twig diff --git a/css/style.css b/css/style.css index 71de613..7036b17 100644 --- a/css/style.css +++ b/css/style.css @@ -29,18 +29,12 @@ h1, h2, h3, h4, h5, h6 { font-family: "Raleway"; font-weight: bold; line-height: 1.3; - margin-bottom: -0.5em; - margin-top: 1.9em; } h4, h5, h6 { color: #88898c; } -p:last-child { - margin-bottom: 1em; -} - a:not(.toolbar-item) { color: #662D91; -webkit-transition: all 0.2s; @@ -114,381 +108,6 @@ main *:not(img):not(svg)::selection { } } -.form-wrapper { - padding: 0px 15px 75px 15px; -} - -form__block, .form__block { - margin: 1.5rem 0 1rem; -} - -form__block--text label, form__fake-label, .form__block--text label, .form__fake-label { - display: block; - font-weight: 600; - margin-bottom: 0.3em; -} - -form textarea, .form textarea { - font-family: "Raleway"; - min-height: 6rem; -} - -form input[type=text], form input[type=email], form input[type=password], form textarea, .form input[type=text], .form input[type=email], .form input[type=password], .form textarea { - padding: 0.7rem 0.9rem; - font-size: 1.6rem; - line-height: 1.8; - color: #515155; - max-width: 32em; - width: 100%; - border: solid 2px #a6a7ab; - -webkit-box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.1); - box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.1); - -webkit-transition: border-color 0.2s; - transition: border-color 0.2s; -} - -form input[type=text]:focus:hover, form input[type=text]:focus, form input[type=email]:focus:hover, form input[type=email]:focus, form input[type=password]:focus:hover, form input[type=password]:focus, form textarea:focus:hover, form textarea:focus, .form input[type=text]:focus:hover, .form input[type=text]:focus, .form input[type=email]:focus:hover, .form input[type=email]:focus, .form input[type=password]:focus:hover, .form input[type=password]:focus, .form textarea:focus:hover, .form textarea:focus { - outline: none; - border: solid 2px #662D91; - -webkit-transition: border-color 0.2s; - transition: border-color 0.2s; -} - -form input[type=text]:hover, form input[type=email]:hover, form input[type=password]:hover, form textarea:hover, .form input[type=text]:hover, .form input[type=email]:hover, .form input[type=password]:hover, .form textarea:hover { - border-color: #515155; - -webkit-transition: border-color 0.2s; - transition: border-color 0.2s; -} - -form input[type=text]::-webkit-input-placeholder, form input[type=email]::-webkit-input-placeholder, form input[type=password]::-webkit-input-placeholder, form textarea::-webkit-input-placeholder, .form input[type=text]::-webkit-input-placeholder, .form input[type=email]::-webkit-input-placeholder, .form input[type=password]::-webkit-input-placeholder, .form textarea::-webkit-input-placeholder { - opacity: 0.4; -} - -form input[type=text]:-ms-input-placeholder, form input[type=email]:-ms-input-placeholder, form input[type=password]:-ms-input-placeholder, form textarea:-ms-input-placeholder, .form input[type=text]:-ms-input-placeholder, .form input[type=email]:-ms-input-placeholder, .form input[type=password]:-ms-input-placeholder, .form textarea:-ms-input-placeholder { - opacity: 0.4; -} - -form input[type=text]::-ms-input-placeholder, form input[type=email]::-ms-input-placeholder, form input[type=password]::-ms-input-placeholder, form textarea::-ms-input-placeholder, .form input[type=text]::-ms-input-placeholder, .form input[type=email]::-ms-input-placeholder, .form input[type=password]::-ms-input-placeholder, .form textarea::-ms-input-placeholder { - opacity: 0.4; -} - -form input[type=text]::placeholder, form input[type=email]::placeholder, form input[type=password]::placeholder, form textarea::placeholder, .form input[type=text]::placeholder, .form input[type=email]::placeholder, .form input[type=password]::placeholder, .form textarea::placeholder { - opacity: 0.4; -} - -form input[type=text].error, form input[type=email].error, form input[type=password].error, form textarea.error, .form input[type=text].error, .form input[type=email].error, .form input[type=password].error, .form textarea.error { - border: solid 2px #ff3939; - -webkit-transition: border-color 0.2s; - transition: border-color 0.2s; -} - -form input[type=text] + p, form input[type=email] + p, form input[type=password] + p, form textarea + p, .form input[type=text] + p, .form input[type=email] + p, .form input[type=password] + p, .form textarea + p { - margin-top: 0.2em; - -webkit-transition: border-color 0.2s; - transition: border-color 0.2s; -} - -form .form__block--twocol, .form .form__block--twocol { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -ms-flex-wrap: wrap; - flex-wrap: wrap; -} - -form .form__block--twocol > *[class^="form__block--"], .form .form__block--twocol > *[class^="form__block--"] { - -ms-flex-preferred-size: 100%; - flex-basis: 100%; - width: 100%; - -webkit-box-flex: 1; - -ms-flex-positive: 1; - flex-grow: 1; - padding: 0rem 0px; - margin: 0.8rem 0; -} - -form .form__block--toggle input[type=checkbox], form .form__block--checkbox input[type=checkbox], .form .form__block--toggle input[type=checkbox], .form .form__block--checkbox input[type=checkbox] { - -webkit-box-sizing: border-box; - box-sizing: border-box; - padding: 0; - margin: 4px 0 0; - margin-top: 0em; - opacity: 0; - z-index: 1; - position: absolute; - margin-left: -20px; -} - -form .form__block--submit, .form .form__block--submit { - margin: 2.5rem 0 2rem; -} - -form .form__block--checkbox, .form .form__block--checkbox { - margin: 1.5rem 0 1rem; -} - -form .form__block--checkbox input[type=checkbox] + label .onoffswitch-inner, .form .form__block--checkbox input[type=checkbox] + label .onoffswitch-inner { - display: inline-block; - height: 2.2rem; - width: 2.2rem; - background: #FFFFFF; - margin: 3px 20px 0 0; - -webkit-transition: 0.2s margin; - transition: 0.2s margin; - border: solid 2px #a6a7ab; - position: absolute; -} - -form .form__block--checkbox .label-text, .form .form__block--checkbox .label-text { - margin-left: 3.5rem; - display: inline-block; - line-height: 1.5; -} - -form .form__block--checkbox input[type=checkbox]:focus + label .onoffswitch-inner, .form .form__block--checkbox input[type=checkbox]:focus + label .onoffswitch-inner { - -webkit-box-shadow: 0px 0px 0px 1px #662D91; - box-shadow: 0px 0px 0px 1px #662D91; - border: solid 2px #662D91 !important; -} - -form .form__block--checkbox input[type=checkbox]:checked + label .onoffswitch-inner, .form .form__block--checkbox input[type=checkbox]:checked + label .onoffswitch-inner { - display: inline-block; - height: 2.2rem; - width: 2.2rem; - background: #1eb49c; - margin: 3px 20px 0 0; - -webkit-transition: 0.2s margin; - transition: 0.2s margin; - border: solid 2px #a6a7ab; - position: absolute; -} - -form .form__block--checkbox input[type=checkbox]:checked + label .onoffswitch-inner:before, form .form__block--checkbox input[type=checkbox]:checked + label .onoffswitch-inner:after, .form .form__block--checkbox input[type=checkbox]:checked + label .onoffswitch-inner:before, .form .form__block--checkbox input[type=checkbox]:checked + label .onoffswitch-inner:after { - position: absolute; - content: ''; - width: 3px; - height: 2.7rem; - background-color: rgba(5, 17, 30, 0.8); -} - -form .form__block--checkbox input[type=checkbox]:checked + label .onoffswitch-inner:before, .form .form__block--checkbox input[type=checkbox]:checked + label .onoffswitch-inner:before { - -webkit-transform: rotate(45deg); - transform: rotate(45deg); - margin-left: 7px; - margin-top: -5px; -} - -form .form__block--checkbox input[type=checkbox]:checked + label .onoffswitch-inner:after, .form .form__block--checkbox input[type=checkbox]:checked + label .onoffswitch-inner:after { - -webkit-transform: rotate(-45deg); - transform: rotate(-45deg); - margin-left: 7px; - margin-top: -5px; -} - -form .form__block--toggle, .form .form__block--toggle { - margin: 1.5rem 0 1rem; -} - -form .form__block--toggle input[type=checkbox] + label:before, .form .form__block--toggle input[type=checkbox] + label:before { - background-color: #FFF; - background-size: 40rem 20rem; - content: ""; - width: 3.9rem; - height: 1.9rem; - display: inline-block; - margin-right: -40px; - margin-top: 3px; - border-radius: 20px; - border: solid 2px #c6c7cc; - -webkit-transition: background-color .2s; - transition: background-color .2s; - -webkit-box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.2); - box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.2); - position: absolute; -} - -form .form__block--toggle input[type=checkbox]:focus + label:before, .form .form__block--toggle input[type=checkbox]:focus + label:before { - -webkit-box-shadow: 0px 0px 0px 1px #662D91; - box-shadow: 0px 0px 0px 1px #662D91; - border: solid 2px #662D91 !important; -} - -form .form__block--toggle input[type=checkbox]:checked + label:before, .form .form__block--toggle input[type=checkbox]:checked + label:before { - background-color: #1eb49c; - -webkit-transition: background-color .2s; - transition: background-color .2s; - border: solid 2px rgba(0, 0, 0, 0.2); -} - -form .form__block--toggle input[type=checkbox]:checked + label .onoffswitch-inner, .form .form__block--toggle input[type=checkbox]:checked + label .onoffswitch-inner { - display: inline-block; - background: #edeff5; - margin: 3px 0 0 20px; - border: solid 2px #a6a7ab; - height: 2.2rem; - width: 2.2rem; -} - -form .form__block--toggle input[type=checkbox] + label .onoffswitch-inner, .form .form__block--toggle input[type=checkbox] + label .onoffswitch-inner { - display: inline-block; - height: 2.2rem; - width: 2.2rem; - background: #edeff5; - margin: 3px 20px 0 0; - -webkit-transition: 0.2s margin; - transition: 0.2s margin; - border-radius: 1rem; - border: solid 2px #a6a7ab; - position: absolute; -} - -form .form__block--toggle .label-text, .form .form__block--toggle .label-text { - margin-left: 5rem; -} - -.js .form__input--file { - width: 0.1px; - height: 0.1px; - opacity: 0; - overflow: hidden; - position: absolute; - z-index: -1; -} - -.form__input--file + label { - padding: 0.7rem 0.9rem; - font-size: 1.6rem; - color: #515155; - max-width: 32em; - width: 100%; - border: solid 2px #a6a7ab; - -webkit-box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.1); - box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.1); - text-overflow: ellipsis; - white-space: nowrap; - cursor: pointer; - display: inline-block; - overflow: hidden; -} - -.form__input--file + label:focus { - outline: none; - border: solid 2px #662D91; -} - -.no-js .form__input--file + label { - display: none; -} - -.form__input--file:focus + label, -.form__input--file.has-focus + label { - outline: none; - border: solid 2px #662D91; -} - -.form__input--file + label * { -} - -.form__input--file + label .form__label--file { - background-color: #88898c; - color: #FFFFFF; - text-align: right; - float: right; - -webkit-transition: background-color 0.2s; - transition: background-color 0.2s; - -webkit-transition: color 0.2s; - transition: color 0.2s; -} - -.form__input--file:hover + label .form__label--file { - background-color: #515155; - color: rgba(255, 255, 255, 0.9); - -webkit-transition: background-color 0.2s; - transition: background-color 0.2s; - -webkit-transition: color 0.2s; - transition: color 0.2s; -} - -.form__input--file:focus + label .form__label--file { - background-color: #662D91; - color: rgba(255, 255, 255, 0.9); - -webkit-transition: background-color 0.2s; - transition: background-color 0.2s; - -webkit-transition: color 0.2s; - transition: color 0.2s; -} - -.form__input--file + label .form__input--selected { - text-align: left; -} - -.form__input--file + label { - color: #515155; -} - -.form__input--file + label { - border: solid 2px #a6a7ab; - -webkit-box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.1); - box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.1); - -webkit-transition: border-color 0.2s; - transition: border-color 0.2s; - background-color: #FFFFFF; - padding: 0; -} - -.form__input--file + label:hover { - border-color: #515155; - -webkit-transition: border-color 0.2s; - transition: border-color 0.2s; -} - -.form__input--file + label span, -.form__input--file + label strong { - padding: 0.7rem 1.25rem; -} - -.form__input--file + label span { - min-height: 2em; - display: inline-block; - text-overflow: ellipsis; - white-space: nowrap; - overflow: hidden; - vertical-align: top; -} - -@media (min-width: 578px) { - .form .form__block--twocol { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -ms-flex-wrap: wrap; - flex-wrap: wrap; - } - - .form .form__block--twocol > *[class^="form__block--"] { - -ms-flex-preferred-size: 50%; - flex-basis: 50%; - width: calc(50% - 15px); - -webkit-box-flex: 1; - -ms-flex-positive: 1; - flex-grow: 1; - } - - .form .form__block--twocol > *[class^="form__block--"]:nth-child(odd) { - padding-right: 15px; - } -} - -@media (min-width: 768px) { - .form-wrapper { - padding: 0px 15px 30px 15px; - } - - main.form-wrapper { - padding: 75px 15px 30px 15px; - } -} - .icon.icon--cog { background: url(../images/settings-icon.svg) no-repeat; background-size: cover; @@ -531,7 +150,6 @@ form .form__block--toggle .label-text, .form .form__block--toggle .label-text { .list--taxonomy { padding: 0; - line-height: 2.3; } .list--taxonomy .list__item--tag { @@ -578,75 +196,23 @@ form .form__block--toggle .label-text, .form .form__block--toggle .label-text { } } -a.tag, li.tag { +a.tag { background-color: #515155; color: #FFFFFF; border-radius: 2rem; text-shadow: none; -webkit-box-shadow: none; box-shadow: none; + padding: 0.2rem 0.6rem; font-size: 1.3rem; border: solid 1px #515155; } -a.tag.tag--deletable, li.tag.tag--deletable { - padding-right: 0.2rem; -} - -a.tag { - padding: 0.45rem 0.6rem; -} - a.tag:hover { background-color: #c6c7cc; color: #05111E; } -li.tag { - padding: 0.2rem 0.6rem; - line-height: 1.1; -} - -.tag button.close { - line-height: 2rem; - padding: 0.1rem; - border: none; - background-color: rgba(255, 255, 255, 0.8); - -webkit-box-shadow: 0 0 0 3px #515155 !important; - box-shadow: 0 0 0 3px #515155 !important; - cursor: pointer; - color: #ff3939; - border-radius: 10rem; - font-weight: 900; - height: 2rem; - min-width: 2rem; - margin-left: 0.6rem; - -webkit-transition: all 0.2s; - transition: all 0.2s; - text-align: center; -} - -.tag button.close span { - margin-top: -0.1rem; - display: block; -} - -.tag button.close:hover { - background-color: white; - -webkit-box-shadow: 0 0 0 3px rgba(255, 57, 57, 0.5) !important; - box-shadow: 0 0 0 3px rgba(255, 57, 57, 0.5) !important; - -webkit-transition: all 0.2s; - transition: all 0.2s; -} - -.tag button.close:focus { - outline: none; - -webkit-box-shadow: 0 0 0 3px #ff3939 !important; - box-shadow: 0 0 0 3px #ff3939 !important; - -webkit-transition: all 0.2s; - transition: all 0.2s; -} - #skip-link, .skip-link { position: fixed; top: 1.5em; @@ -695,54 +261,6 @@ li.tag { opacity: 0.8; } -.text-danger { - color: #ff3939; -} - -.hr-text { - line-height: 1em; - position: relative; - outline: 0; - border: 0; - color: black; - text-align: center; - height: 1.5em; - opacity: 1; - width: 80%; - margin: 5rem auto 3rem auto; -} - -.hr-text:before { - content: ''; - background: #88898c; - position: absolute; - left: 0; - top: 50%; - width: 100%; - height: 1px; - z-index: 0; -} - -.hr-text:after { - content: attr(data-content); - position: relative; - display: inline-block; - font-weight: 700; - padding: 0 3rem; - line-height: 3rem; - color: #88898c; - background-color: #FFFFFF; - z-index: 0; -} - -.extra-space--top { - margin-top: 5rem !important; -} - -.extra-space--bottom { - margin-bottom: 3rem !important; -} - @media (min-width: 768px) { .no-display--sm { position: inherit !important; @@ -856,39 +374,20 @@ li.tag { .btn-list--right { text-align: right; -} - -.btn-list--center { - text-align: center; - width: 100%; - margin: auto; -} - -.btn-list--center > .btn { - display: block; - margin: 2.5rem auto 2rem auto; -} - -.btn.btn--large { - width: 100%; - padding: 0.3rem 1rem; - font-size: 1.8rem; + margin-right: 15px; } a.btn, input.btn, button.btn { color: #05111E; - font-size: 1.6rem; text-decoration: none; - padding: 0.1rem 1.5rem; + padding: 0.1rem 0rem; border-radius: 300px; text-align: center; text-shadow: none !important; - min-width: 12rem; - font-weight: 700; + min-width: 10rem; + font-weight: 800; line-height: 1.3; margin-right: 15px; - border: none; - cursor: pointer; } a.btn:last-child, input.btn:last-child, button.btn:last-child { @@ -899,12 +398,6 @@ a.btn:hover, input.btn:hover, button.btn:hover { color: #FFFFFF; } -a.btn:focus, input.btn:focus, button.btn:focus { - -webkit-box-shadow: 0 0 0 4px #662D91 !important; - box-shadow: 0 0 0 4px #662D91 !important; - outline: none; -} - .btn--green { display: inline-block; background: #1eb49c; @@ -941,44 +434,10 @@ a.btn:focus, input.btn:focus, button.btn:focus { background: #006580; } -.btn--grey { - display: inline-block; - background: #c6c7cc; - -webkit-box-shadow: 0 0 0 4px rgba(198, 199, 204, 0.5) !important; - box-shadow: 0 0 0 4px rgba(198, 199, 204, 0.5) !important; - text-shadow: none; -} - -.btn--grey:hover { - background: #b0b2b9; - -webkit-transition: all 0.3s ease; - transition: all 0.3s ease; -} - -.btn--grey:active { - background: #838590; -} - .btn-list { margin-top: 3rem; } -@media (min-width: 768px) { - .btn.btn--large { - padding: 0.4rem 0rem; - font-size: 2rem; - } - - .btn-list--center { - width: 60%; - } - - .btn-list--center > .btn { - display: block; - margin: 2.5rem auto 2rem auto; - } -} - @media (min-width: 768px) { .general-footer { position: fixed !important; @@ -1182,14 +641,6 @@ a.btn:focus, input.btn:focus, button.btn:focus { cursor: default; } -.tab-content .tab-pane { - display: none; -} - -.tab-content .tab-pane.active { - display: block; -} - .logo-area { background-image: url("../images/logo-area-bckgrd--sm.svg"); background-repeat: no-repeat; @@ -1229,7 +680,6 @@ a.btn:focus, input.btn:focus, button.btn:focus { width: 100vw; height: 25vw; max-height: 100px; - z-index: 1000; } .navigation-menu__list { @@ -1554,35 +1004,35 @@ a.btn:focus, input.btn:focus, button.btn:focus { background-color: #ffebeb; } -.profile-shortinfo { +.post-info { margin-bottom: 2rem; } -.profile-shortinfo.profile-shortinfo--group { - background: url(../images/profile-shortinfo--group__background.svg) no-repeat left top; +.post-info.post-info--group { + background: url(../images/post-info--group__background.svg) no-repeat left top; background-size: 5.7rem 8.3rem; } -.profile-shortinfo.profile-shortinfo--group .profile-shortinfo__ilustration { +.post-info.post-info--group .post-info__ilustration { width: 5.7rem; height: 8.3rem; margin-right: 1.7rem; float: left; } -.profile-shortinfo.profile-shortinfo--group img.responsive.profile-shortinfo__picture--account { +.post-info.post-info--group img.responsive.post-info__picture--account { margin-left: 0.5rem; margin-top: 0.6rem; } -.profile-shortinfo.profile-shortinfo--no-group { +.post-info.post-info--no-group { display: -webkit-box; display: -ms-flexbox; display: flex; background: none; } -.profile-shortinfo.profile-shortinfo--no-group .profile-shortinfo__ilustration { +.post-info.post-info--no-group .post-info__ilustration { width: 5.6rem; height: 5.6rem; margin-right: 1.7rem; @@ -1593,30 +1043,30 @@ a.btn:focus, input.btn:focus, button.btn:focus { border: solid 5px rgba(255, 57, 127, 0.5); } -.profile-shortinfo.profile-shortinfo--no-group .profile-shortinfo__action { +.post-info.post-info--no-group .post-info__action { -webkit-box-flex: 0; -ms-flex: 0 0 5.6rem; flex: 0 0 5.6rem; } -.profile-shortinfo.profile-shortinfo--no-group img.responsive.profile-shortinfo__picture--account { +.post-info.post-info--no-group img.responsive.post-info__picture--account { margin-left: 0rem; margin-top: 0rem; } -.profile-shortinfo.profile-shortinfo--no-group .profile-shortinfo__link.profile-shortinfo__link--account { +.post-info.post-info--no-group .post-info__link.post-info__link--account { margin-left: 0rem; margin-top: 0rem; } -.profile-shortinfo img.responsive.profile-shortinfo__picture--account { +.post-info img.responsive.post-info__picture--account { width: 4.6rem; height: 4.6rem; border-radius: 100px; display: block; } -.profile-shortinfo img.responsive.profile-shortinfo__picture--group { +.post-info img.responsive.post-info__picture--group { margin-left: 3rem; margin-top: 5px; width: 2rem; @@ -1625,27 +1075,27 @@ a.btn:focus, input.btn:focus, button.btn:focus { display: block; } -.profile-shortinfo .profile-shortinfo__link { +.post-info .post-info__link { text-shadow: none; -webkit-box-shadow: none; box-shadow: none; } -.profile-shortinfo .profile-shortinfo__link img.responsive.profile-shortinfo__picture--account { +.post-info .post-info__link img.responsive.post-info__picture--account { margin-left: 0; margin-top: 0; width: calc(4.6rem - 4px); height: calc(4.6rem - 4px); } -.profile-shortinfo .profile-shortinfo__link img.responsive.profile-shortinfo__picture--group { +.post-info .post-info__link img.responsive.post-info__picture--group { margin-left: 0; margin-top: 0; width: calc(2rem - 2px); height: calc(2rem - 2px); } -.profile-shortinfo .profile-shortinfo__link--group { +.post-info .post-info__link--group { border-radius: 100px; border: solid 1px #ff397f; -webkit-transition: border 0.2s; @@ -1659,7 +1109,7 @@ a.btn:focus, input.btn:focus, button.btn:focus { transition: border 0.2s; } -.profile-shortinfo .profile-shortinfo__link--group:hover, .profile-shortinfo .profile-shortinfo__link--group:focus { +.post-info .post-info__link--group:hover, .post-info .post-info__link--group:focus { text-shadow: none; -webkit-box-shadow: none; box-shadow: none; @@ -1670,11 +1120,11 @@ a.btn:focus, input.btn:focus, button.btn:focus { transition: border 0.2s; } -.profile-shortinfo .profile-shortinfo__link--group:hover img, .profile-shortinfo .profile-shortinfo__link--group:focus img { +.post-info .post-info__link--group:hover img, .post-info .post-info__link--group:focus img { opacity: 0.6; } -.profile-shortinfo .profile-shortinfo__link--account { +.post-info .post-info__link--account { border-radius: 100px; border: solid 2px #ff397f; -webkit-transition: border 0.2s; @@ -1686,7 +1136,7 @@ a.btn:focus, input.btn:focus, button.btn:focus { margin-top: 0.6rem; } -.profile-shortinfo .profile-shortinfo__link--account:hover, .profile-shortinfo .profile-shortinfo__link--account:focus { +.post-info .post-info__link--account:hover, .post-info .post-info__link--account:focus { text-shadow: none; -webkit-box-shadow: none; box-shadow: none; @@ -1697,16 +1147,16 @@ a.btn:focus, input.btn:focus, button.btn:focus { transition: border 0.2s; } -.profile-shortinfo .profile-shortinfo__link--account:hover img, .profile-shortinfo .profile-shortinfo__link--account:focus img { +.post-info .post-info__link--account:hover img, .post-info .post-info__link--account:focus img { opacity: 0.6; } -.profile-shortinfo__details { +.post-info__details { float: left; width: calc(100% - 7.4rem); } -.profile-shortinfo__details .profile-shortinfo__author { +.post-info__details .post-info__author { font-size: 2rem; font-weight: 700; color: #515155; @@ -1714,7 +1164,7 @@ a.btn:focus, input.btn:focus, button.btn:focus { padding: 0.2rem 0 0 0; } -.profile-shortinfo__details .profile-shortinfo__author .profile-shortinfo__account-link { +.post-info__details .post-info__author .post-info__account-link { text-shadow: none; -webkit-box-shadow: none; box-shadow: none; @@ -1722,14 +1172,14 @@ a.btn:focus, input.btn:focus, button.btn:focus { color: #515155; } -.profile-shortinfo__details .profile-shortinfo__author .profile-shortinfo__account-link:hover { +.post-info__details .post-info__author .post-info__account-link:hover { color: #662D91; text-shadow: 0 2px 0 #FFFFFF, 0 3px 0 #FFFFFF, 1px 2px 0 #FFFFFF, -1px 2px 0 #FFFFFF; -webkit-box-shadow: 0 1px 0 0 #662D91; box-shadow: 0 1px 0 0 #662D91; } -.profile-shortinfo__details .profile-shortinfo__metadata { +.post-info__details .post-info__metadata { margin-top: 0.2rem; line-height: 1.4; } @@ -2085,3 +1535,42 @@ a.share--email { } /*# sourceMappingURL=style.css.map */ + + + +/** + * @file + * Visual styles for tabs. + */ + +div.tabs { + margin: 1em 0; +} +ul.tabs { + list-style: none; + margin: 0 0 0.5em; + padding: 0; +} +.tabs > li { + display: inline-block; + margin-right: 0.3em; /* LTR */ +} +[dir="rtl"] .tabs > li { + margin-left: 0.3em; + margin-right: 0; +} +.tabs a { + display: block; + padding: 0.2em 1em; + text-decoration: none; +} +.tabs a.is-active { + background-color: #eee; +} +.tabs a:focus, +.tabs a:hover { + background-color: #f5f5f5; +} + + +/*# sourceMappingURL=style.css.map */ diff --git a/funkywave.theme b/funkywave.theme index 7c1193c..ec2c6b3 100644 --- a/funkywave.theme +++ b/funkywave.theme @@ -15,35 +15,30 @@ use Drupal\file\Entity\File; * Implement template_preprocess_node(). */ function funkywave_preprocess_node(&$variables) { - - if ($variables['view_mode'] == 'full') { - $node = $variables['elements']['#node']; - - $variables['ngf_group_name'] = NULL; - $variables['ngf_group_url'] = NULL; - $variables['ngf_group_logo'] = NULL; - $variables['ngf_group_logo_uri'] = NULL; - - if (isset($node->group) && $group = $node->group) { - - $variables['ngf_group_name'] = $group->label(); - $variables['ngf_group_url'] = $group->url(); - - if (!$group->field_ngf_cover_image->isEmpty()) { - $image = $group->get('field_ngf_cover_image')->getValue(); - $media_entity = Media::load($image[0]['target_id']); - $file_entity = $media_entity->field_media_image->first()->getValue(); - $file = File::load($file_entity['target_id']); - $variables['ngf_group_logo_uri'] = $file->getFileUri(); - - $render = [ - '#theme' => 'image_style', - '#style_name' => 'thumbnail', - '#uri' => $file->getFileUri(), - '#attributes' => ['class' => ['post-info__picture post-info__picture--group responsive']] - ]; - $variables['ngf_group_logo'] = drupal_render($render); - } + $node = $variables['elements']['#node']; + + $variables['ngf_group_name'] = NULL; + $variables['ngf_group_url'] = NULL; + $variables['ngf_group_logo'] = NULL; + $variables['ngf_group_logo_uri'] = NULL; + + if (isset($node->group) && $group = $node->group) { + $variables['ngf_group_name'] = $group->label(); + $variables['ngf_group_url'] = $group->url(); + if (!$group->field_ngf_cover_image->isEmpty()) { + $image = $group->get('field_ngf_cover_image')->getValue(); + $media_entity = Media::load($image[0]['target_id']); + $file_entity = $media_entity->field_media_image->first()->getValue(); + $file = File::load($file_entity['target_id']); + $variables['ngf_group_logo_uri'] = $file->getFileUri(); + + $render = [ + '#theme' => 'image_style', + '#style_name' => 'thumbnail', + '#uri' => $file->getFileUri(), + '#attributes' => ['class' => ['post-info__picture post-info__picture--group responsive']] + ]; + $variables['ngf_group_logo'] = drupal_render($render); } } } diff --git a/patterns/post_info/pattern-postinfo-new.html.twig b/patterns/post_info/pattern-postinfo-new.html.twig deleted file mode 100644 index 29394e1..0000000 --- a/patterns/post_info/pattern-postinfo-new.html.twig +++ /dev/null @@ -1,37 +0,0 @@ -{# -/** - * @file - * post info pattern. - */ -#} - \ No newline at end of file diff --git a/patterns/profile_actions/pattern-profile-actions.html.twig b/patterns/profile_actions/pattern-profile-actions.html.twig deleted file mode 100644 index 0ef2944..0000000 --- a/patterns/profile_actions/pattern-profile-actions.html.twig +++ /dev/null @@ -1,21 +0,0 @@ -{# -/** - * @file - * profile actions pattern. - */ -#} - - \ No newline at end of file diff --git a/patterns/profile_header_top/pattern-profileheader-top.html.twig b/patterns/profile_header_top/pattern-profileheader-top.html.twig deleted file mode 100644 index 157551f..0000000 --- a/patterns/profile_header_top/pattern-profileheader-top.html.twig +++ /dev/null @@ -1,27 +0,0 @@ -{# -/** - * @file - * post info pattern. - */ -#} - - -{% if profile_uri %} - - {{ profile_title }} - -{% endif %} - -{% if profile_title %} -

{{ profile_title }}

-{% endif %} - -{% if profile_uri_more %} - {% trans %} Learn more {% endtrans %}{% trans %} about {% endtrans %}{{ profile_title }} - -{% endif %} - -{% if profile_uri_back %} - {% trans %}Back to profile page {% endtrans %}{% trans %} of {% endtrans %} {{ profile_title }} - -{% endif %} \ No newline at end of file diff --git a/patterns/profile_meta/pattern-profile-meta.html.twig b/patterns/profile_meta/pattern-profile-meta.html.twig deleted file mode 100644 index 42bc977..0000000 --- a/patterns/profile_meta/pattern-profile-meta.html.twig +++ /dev/null @@ -1,12 +0,0 @@ -{# -/** - * @file - * profile meta pattern. - */ -#} - -{% if profile_meta %} -
    -
  • {{ profile_meta }}
  • -
-{% endif %} \ No newline at end of file diff --git a/patterns/profile_networks/pattern-profile-networks.html.twig b/patterns/profile_networks/pattern-profile-networks.html.twig deleted file mode 100644 index 9573be8..0000000 --- a/patterns/profile_networks/pattern-profile-networks.html.twig +++ /dev/null @@ -1,18 +0,0 @@ -{# -/** - * @file - * profile networks pattern. - */ -#} - - \ No newline at end of file diff --git a/templates/content/node.html.twig b/templates/content/node.html.twig index d2c7c8d..e0bf3af 100644 --- a/templates/content/node.html.twig +++ b/templates/content/node.html.twig @@ -104,12 +104,13 @@ {% include "@patterns/post_info/pattern-postinfo.html.twig" with { author_pic_uri: file_url(node.uid.entity.user_picture.entity.uri.value|image_style('thumbnail')), - title: node.uid.entity.name.value, - url: path('entity.user.canonical', {'user': user.id}), - logged_in: logged_in, + profile_name: node.uid.entity.name.value, + profile_uri: path('entity.user.canonical', {'user': user.id}), + creation_date: node.created.value|time_diff, group_pic_uri: file_url(ngf_group_logo_uri|image_style('thumbnail')), group_url: ngf_group_url, group_name: ngf_group_name, + login_check: logged_in, } %} diff --git a/templates/group/group--ngf-discussion-group--header.html.twig b/templates/group/group--ngf-discussion-group--header.html.twig index b10c52d..3619073 100644 --- a/templates/group/group--ngf-discussion-group--header.html.twig +++ b/templates/group/group--ngf-discussion-group--header.html.twig @@ -40,50 +40,32 @@ */ #} -{% block profileheader %} -
- {% set catch_cache = content|render %} +
- {# profile header top #} - {% include '@patterns/profile_header_top/pattern-profileheader-top.html.twig' - with { - profile_pic_uri: file_url(content.field_ngf_cover_image|field_target_entity.field_media_image.entity.uri.value|image_style('thumbnail')), - profile_title: label, - profile_uri: url, - profile_uri_back: 'todo', - } - only %} +{% include "@patterns/profile_header/pattern-profileheader.html.twig" + with { + group_pic_uri: file_url(content.field_ngf_cover_image|field_target_entity.field_media_image.entity.uri.value|image_style('thumbnail')), + group_name: label, + group_profile_uri: url, + group_profile_uri_back: 'todo', + action_contact: 'todo contact', + group_action_contact_uri: 'todo', + group_action_join: content.join_follow['#items']['group-join']['#title'], + group_action_join_uri: content.join_follow['#items']['group-join']['#url'], + group_action_leave: content.join_follow['#items']['group-leave']['#title'], + group_action_leave_uri: content.join_follow['#items']['group-leave']['#url'], + group_action_follow: content.join_follow['#items']['group-follow'], + group_profile_members: content.members_followers['#items']['members']['#title'], + group_profile_members_uri: content.members_followers['#items']['members']['#url'], + group_profile_followers: content.members_followers['#items']['followers']['#title'], + group_profile_followers_uri: content.members_followers['#items']['followers']['#url'], + group_profile_subgroups: 'todo subgroups', + group_profile_subgroups_uri: 'todo', + group_visibility: content.field_ngf_group_visibility[0], + } +%} + +
- {# profile meta #} - {% include '@patterns/profile_meta/pattern-profile-meta.html.twig' - with { - profile_meta: content.field_ngf_group_visibility[0], - } - only %} - {# profile actions #} - {% include '@patterns/profile_actions/pattern-profile-actions.html.twig' - with { - action_contact: 'todo contact', - action_contact_uri: 'todo', - action_join: content.join_follow['#items']['group-join']['#title'], - action_join_uri: content.join_follow['#items']['group-join']['#url'], - action_leave: content.join_follow['#items']['group-leave']['#title'], - action_leave_uri: content.join_follow['#items']['group-leave']['#url'], - action_follow: content.join_follow['#items']['group-follow'], - } - only %} - {# profile networks #} - {% include "@patterns/profile_networks/pattern-profile-networks.html.twig" - with { - profile_members: content.members_followers['#items']['members']['#title'], - profile_members_uri: content.members_followers['#items']['members']['#url'], - profile_followers: content.members_followers['#items']['followers']['#title'], - profile_followers_uri: content.members_followers['#items']['followers']['#url'], - profile_subgroups: 'todo subgroups', - profile_subgroups_uri: 'todo', - } - only %} -
-{% endblock profileheader %} diff --git a/templates/group/group--ngf-discussion-group.html.twig b/templates/group/group--ngf-discussion-group.html.twig deleted file mode 100644 index 4343d0c..0000000 --- a/templates/group/group--ngf-discussion-group.html.twig +++ /dev/null @@ -1,50 +0,0 @@ -{# -/** - * @file - * Default theme implementation to display a group. - * - * Available variables: - * - group: The group entity with limited access to object properties and - * methods. Only "getter" methods (method names starting with "get", "has", - * or "is") and a few common methods such as "id" and "label" are available. - * Calling other methods (such as group.delete) will result in an exception. - * - label: The title of the group. - * - content: All group items. Use {{ content }} to print them all, - * or print a subset such as {{ content.field_example }}. Use - * {{ content|without('field_example') }} to temporarily suppress the - * printing of a given child element. - * - url: Direct URL of the current group. - * - attributes: HTML attributes for the containing element. - * The attributes.class element may contain one or more of the following - * classes: - * - group: The current template type (also known as a "theming hook"). - * - group--[type]: The current group type. For example, if the group is a - * "Classroom" it would result in "group--classroom". Note that the machine - * name will often be in a short form of the human readable label. - * - group--[view_mode]: The View Mode of the group; for example, a - * teaser would result in: "group--teaser", and full: "group--full". - * - title_attributes: Same as attributes, except applied to the main title - * tag that appears in the template. - * - content_attributes: Same as attributes, except applied to the main - * content tag that appears in the template. - * - title_prefix: Additional output populated by modules, intended to be - * displayed in front of the main title tag that appears in the template. - * - title_suffix: Additional output populated by modules, intended to be - * displayed after the main title tag that appears in the template. - * - view_mode: View mode; for example, "teaser" or "full". - * - page: Flag for the full page state. Will be true if view_mode is 'full'. - * - * @see template_preprocess_group() - * - * @ingroup themeable - */ -#} - - - - - - {{ content }} - - - diff --git a/templates/navigation/menu-local-task.html.twig b/templates/navigation/menu-local-task.html.twig deleted file mode 100644 index 8254330..0000000 --- a/templates/navigation/menu-local-task.html.twig +++ /dev/null @@ -1,25 +0,0 @@ -{# -/** - * @file - * Theme override for a local task link. - * - * Available variables: - * - attributes: HTML attributes for the wrapper element. - * - is_active: Whether the task item is an active tab. - * - link: A rendered link element. - * - * Note: This template renders the content for each task item in - * menu-local-tasks.html.twig. - * - * @see template_preprocess_menu_local_task() - */ -#} - -{% - set classes = [ - is_active ? 'active', - 'nav__link', - ] -%} - -{{ link }} diff --git a/templates/navigation/menu-local-tasks.html.twig b/templates/navigation/menu-local-tasks.html.twig deleted file mode 100644 index e82e425..0000000 --- a/templates/navigation/menu-local-tasks.html.twig +++ /dev/null @@ -1,23 +0,0 @@ -{# -/** - * @file - * Theme override to display primary and secondary local tasks. - * - * Available variables: - * - primary: HTML list items representing primary tasks. - * - secondary: HTML list items representing primary tasks. - * - * Each item in these variables (primary and secondary) can be individually - * themed in menu-local-task.html.twig. - */ -#} -{% if primary %} - -{% endif %} From 25a3e3d39748b1bc6278f35e55b96329e5d3cb74 Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Fri, 1 Jun 2018 14:16:20 +0200 Subject: [PATCH 055/200] NGF-204: twig templates added for the local-tasks theming --- .../navigation/menu-local-task.html.twig | 25 +++++++++++++++++++ .../navigation/menu-local-tasks.html.twig | 23 +++++++++++++++++ 2 files changed, 48 insertions(+) create mode 100644 templates/navigation/menu-local-task.html.twig create mode 100644 templates/navigation/menu-local-tasks.html.twig diff --git a/templates/navigation/menu-local-task.html.twig b/templates/navigation/menu-local-task.html.twig new file mode 100644 index 0000000..bf0bb61 --- /dev/null +++ b/templates/navigation/menu-local-task.html.twig @@ -0,0 +1,25 @@ +{# +/** + * @file + * Theme override for a local task link. + * + * Available variables: + * - attributes: HTML attributes for the wrapper element. + * - is_active: Whether the task item is an active tab. + * - link: A rendered link element. + * + * Note: This template renders the content for each task item in + * menu-local-tasks.html.twig. + * + * @see template_preprocess_menu_local_task() + */ +#} + +{% + set classes = [ + is_active ? 'active', + 'nav__link', + ] +%} + +{{ link }} \ No newline at end of file diff --git a/templates/navigation/menu-local-tasks.html.twig b/templates/navigation/menu-local-tasks.html.twig new file mode 100644 index 0000000..e82e425 --- /dev/null +++ b/templates/navigation/menu-local-tasks.html.twig @@ -0,0 +1,23 @@ +{# +/** + * @file + * Theme override to display primary and secondary local tasks. + * + * Available variables: + * - primary: HTML list items representing primary tasks. + * - secondary: HTML list items representing primary tasks. + * + * Each item in these variables (primary and secondary) can be individually + * themed in menu-local-task.html.twig. + */ +#} +{% if primary %} + +{% endif %} From 765f990aa614cb6e484664566a39a9d43a42cbf1 Mon Sep 17 00:00:00 2001 From: Nikolay Lobachev Date: Fri, 1 Jun 2018 17:07:45 +0200 Subject: [PATCH 056/200] Add new post info template and replace it in node and group template --- funkywave.theme | 73 +++++++++++++------ .../post_info/pattern-postinfo-new.html.twig | 60 +++++++-------- .../post_info/postinfo-new.ui_patterns.yml | 44 +++++++++++ templates/content/group--ngf-event.html.twig | 32 +++++--- templates/content/node.html.twig | 29 +++----- 5 files changed, 158 insertions(+), 80 deletions(-) create mode 100644 patterns/post_info/postinfo-new.ui_patterns.yml diff --git a/funkywave.theme b/funkywave.theme index 7c1193c..82ed231 100644 --- a/funkywave.theme +++ b/funkywave.theme @@ -10,40 +10,63 @@ use Drupal\Core\Template\Attribute; use Drupal\image\Entity\ImageStyle; use Drupal\media\Entity\Media; use Drupal\file\Entity\File; - +use Drupal\Core\Link; +use Drupal\Core\StringTranslation\TranslatableMarkup; + /** * Implement template_preprocess_node(). */ function funkywave_preprocess_node(&$variables) { + $node = $variables['elements']['#node']; + if ($variables['view_mode'] == 'full' && $node->getType() == 'ngf_discussion') { - if ($variables['view_mode'] == 'full') { - $node = $variables['elements']['#node']; + $variables['ngf_sub_picture'] = NULL; + $variables['ngf_context_text'] = NULL; - $variables['ngf_group_name'] = NULL; - $variables['ngf_group_url'] = NULL; - $variables['ngf_group_logo'] = NULL; - $variables['ngf_group_logo_uri'] = NULL; - + $variables['ngf_group_container_class'] = 'post-info--no-group'; if (isset($node->group) && $group = $node->group) { - - $variables['ngf_group_name'] = $group->label(); - $variables['ngf_group_url'] = $group->url(); + $variables['ngf_group_container_class'] = 'post-info--group'; if (!$group->field_ngf_cover_image->isEmpty()) { - $image = $group->get('field_ngf_cover_image')->getValue(); - $media_entity = Media::load($image[0]['target_id']); - $file_entity = $media_entity->field_media_image->first()->getValue(); - $file = File::load($file_entity['target_id']); - $variables['ngf_group_logo_uri'] = $file->getFileUri(); - + $media_id = $group->get('field_ngf_cover_image')->target_id; + $media_entity = Media::load($media_id); + $render = [ '#theme' => 'image_style', '#style_name' => 'thumbnail', - '#uri' => $file->getFileUri(), + '#uri' => $media_entity->get('field_media_image')->entity->getFileUri(), '#attributes' => ['class' => ['post-info__picture post-info__picture--group responsive']] ]; - $variables['ngf_group_logo'] = drupal_render($render); + + $link_render = [ + '#title' => $render, + '#type' => 'link', + '#url' => $group->toUrl(), + '#attributes' => [ + 'class' => [ + 'post-info__link post-info__link--group' + ] + ] + ]; + $variables['ngf_sub_picture'] = $link_render; } + + $visibility_icon = ''; + if ($group->field_ngf_group_visibility->value == NGF_GROUP_PUBLIC) { + $visibility_icon = 'far fa-eye-slash'; + } + if ($group->field_ngf_group_visibility->value == NGF_GROUP_PRIVATE) { + $visibility_icon = 'fa fa-lock'; + } + + $variables['ngf_context_text'] = t( + 'Posted @created_date ago in ', + [ + '@created_date' => \Drupal::service('date.formatter')->formatTimeDiffSince($group->created->value), + ':group_url' => $group->url(), + '@group_title' => $group->label(), + ] + ) . ' '; } } } @@ -64,6 +87,12 @@ function funkywave_preprocess_user(&$vars) { * Implements template_preprocess_group */ function funkywave_preprocess_group(&$variables) { - // This is needed so the group name is printed along with {{content}}. - $variables['content']['label']['#printed'] = FALSE; -} \ No newline at end of file + $group = $variables['group']; +// var_dump($group->label); +// var_dump($group->label()); +// exit(); + if ($variables['view_mode'] == 'full' && $group->getGroupType()->id() == 'ngf_event') { + // This is needed so the group name is printed along with {{content}}. + $variables['content']['label']['#printed'] = FALSE; + } +} diff --git a/patterns/post_info/pattern-postinfo-new.html.twig b/patterns/post_info/pattern-postinfo-new.html.twig index 29394e1..653be0a 100644 --- a/patterns/post_info/pattern-postinfo-new.html.twig +++ b/patterns/post_info/pattern-postinfo-new.html.twig @@ -1,37 +1,37 @@ {# /** - * @file - * post info pattern. - */ +* @file +* post info pattern. +*/ #} + + diff --git a/patterns/post_info/postinfo-new.ui_patterns.yml b/patterns/post_info/postinfo-new.ui_patterns.yml new file mode 100644 index 0000000..571d9dd --- /dev/null +++ b/patterns/post_info/postinfo-new.ui_patterns.yml @@ -0,0 +1,44 @@ +postinfo: + label: Post-info + description: Block with author information and group information. + fields: + author_pic_uri: + type: url + label: Author picture url + description: Author picture + preview: http://www.attractivepartners.co.uk/create-perfect-profile-picture/ + profile_name: + type: text + label: Author name + description: The name of the author + preview: Peter Neyens + profile_uri: + type: url + label: Profile url + description: Url to the author profile + preview: https://en.wikipedia.org/wiki/User_profile + group_logo: + type: image + label: Group logo + description: Url to the author profile + preview: https://commons.wikimedia.org/wiki/File:Logo_TV_2015.png + group_url: + type: url + label: Group url + description: Url to the group + preview: https://www.google.com + group_name: + type: text + label: Group name + description: Group name + preview: The best group ever + login_check: + type: number + label: Logged in + description: Logged in gives a value of 1 + preview: 1 + creation_date: + type: date + label: Creation date + description: Creation date 'time ago' + preview: Tue, 05/08/2018 - 13:42 diff --git a/templates/content/group--ngf-event.html.twig b/templates/content/group--ngf-event.html.twig index b0c0733..f9a8143 100644 --- a/templates/content/group--ngf-event.html.twig +++ b/templates/content/group--ngf-event.html.twig @@ -42,16 +42,27 @@ {# block postinfo #} {% block postinfo %} + {#{% include "@patterns/post_info/pattern-postinfo-new.html.twig"#} + {#with {#} + {#author_pic_uri: file_url(group.uid.entity.user_picture.entity.uri.value|image_style('thumbnail')),#} + {#profile_name: group.uid.entity.name.value,#} + {#profile_uri: path('entity.user.canonical', {'user': user.id}),#} + {#creation_date: group.created.value|time_diff,#} + {#group_logo: file_url(content.field_ngf_cover_image|field_target_entity.field_media_image.entity.uri.value|image_style('thumbnail')),#} + {#group_name: 'todo',#} + {#login_check: logged_in,#} + {#}#} + {#%}#} - {% include "@patterns/post_info/pattern-postinfo.html.twig" + {% include "@patterns/post_info/pattern-postinfo-new.html.twig" with { - author_pic_uri: file_url(group.uid.entity.user_picture.entity.uri.value|image_style('thumbnail')), - profile_name: group.uid.entity.name.value, - profile_uri: path('entity.user.canonical', {'user': user.id}), - creation_date: group.created.value|time_diff, - group_logo: file_url(content.field_ngf_cover_image|field_target_entity.field_media_image.entity.uri.value|image_style('thumbnail')), - group_name: 'todo', - login_check: logged_in, + title: group.label(), + image_url: file_url(group.field_media_image.entity.uri.value|image_style('thumbnail')), + url: path('entity.user.canonical', {'user': user.id}), + logged_in: logged_in, + context_text: ngf_context_text, + subpic: ngf_sub_picture, + container_class: ngf_group_container_class, } %} @@ -61,9 +72,8 @@ {# block coverimage #} {% block coverimage %} - {% if content.field_ngf_cover_image %} - {% set coverimageurl = file_url(content.field_ngf_cover_image|field_target_entity.field_media_image.entity.uri.value|image_style('media_large')) %} - + {% if group.field_media_image %} + {{ group.label }} {% endif %} {% endblock coverimage %} diff --git a/templates/content/node.html.twig b/templates/content/node.html.twig index d2c7c8d..1c8651d 100644 --- a/templates/content/node.html.twig +++ b/templates/content/node.html.twig @@ -95,25 +95,20 @@ {{ label }} {% endif %} - {{ title_suffix }} - {# block postinfo #} + {#block postinfo #} {% block postinfo %} - {% if display_submitted %} - - {% include "@patterns/post_info/pattern-postinfo.html.twig" - with { - author_pic_uri: file_url(node.uid.entity.user_picture.entity.uri.value|image_style('thumbnail')), - title: node.uid.entity.name.value, - url: path('entity.user.canonical', {'user': user.id}), - logged_in: logged_in, - group_pic_uri: file_url(ngf_group_logo_uri|image_style('thumbnail')), - group_url: ngf_group_url, - group_name: ngf_group_name, - } - %} - - {% endif %} + {% include "@patterns/post_info/pattern-postinfo-new.html.twig" + with { + image_url: file_url(node.uid.entity.user_picture.entity.uri.value|image_style('thumbnail')), + title: node.owner.full_name.value, + url: path('entity.user.canonical', {'user': user.id}), + logged_in: logged_in, + context_text: ngf_context_text, + subpic: ngf_sub_picture, + container_class: ngf_group_container_class, + } + %} {% endblock postinfo %} {# end block postinfo #} From 0e882aa9fddb2cb82eee2d022fe3e72a21495189 Mon Sep 17 00:00:00 2001 From: Nikolay Lobachev Date: Mon, 4 Jun 2018 15:06:00 +0200 Subject: [PATCH 057/200] Replace node with node ngf discussion specific template --- ...node.html.twig => node--ngf-discussion.html.twig} | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) rename templates/content/{node.html.twig => node--ngf-discussion.html.twig} (90%) diff --git a/templates/content/node.html.twig b/templates/content/node--ngf-discussion.html.twig similarity index 90% rename from templates/content/node.html.twig rename to templates/content/node--ngf-discussion.html.twig index 1c8651d..bae0635 100644 --- a/templates/content/node.html.twig +++ b/templates/content/node--ngf-discussion.html.twig @@ -115,18 +115,12 @@ {# block coverimage #} {% block coverimage %} - - {% if content.field_ngf_cover_image %} - {% set coverimageurl = file_url(content.field_ngf_cover_image|field_target_entity.field_media_image.entity.uri.value|image_style('media_large')) %} - {% set coverimagealt = content.field_ngf_cover_image|field_target_entity.field_media_image.alt %} - {{ coverimagealt }} - {% endif %} - {% endblock coverimage %} + {{ content.field_ngf_cover_image }} + {% endblock coverimage %}
{% block content %} - {{ content|without('field_ngf_cover_image') }} - {{ content.description }} + {{ content|without('field_ngf_cover_image') }} {% endblock content %} \ No newline at end of file From a221f40b87444e59f12f96cdc75869c1b2d88ec9 Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Tue, 5 Jun 2018 13:33:50 +0200 Subject: [PATCH 058/200] NGF-195: theming related topics --- patterns/list/pattern-list.html.twig | 168 ++++++++++++++++++ .../content/node--ngf-discussion.html.twig | 44 ++++- 2 files changed, 209 insertions(+), 3 deletions(-) create mode 100644 patterns/list/pattern-list.html.twig diff --git a/patterns/list/pattern-list.html.twig b/patterns/list/pattern-list.html.twig new file mode 100644 index 0000000..6569a75 --- /dev/null +++ b/patterns/list/pattern-list.html.twig @@ -0,0 +1,168 @@ +{# +/** + * @file + * Theme override to display a node. + * + * Available variables: + * - node: The node entity with limited access to object properties and methods. + * Only method names starting with "get", "has", or "is" and a few common + * methods such as "id", "label", and "bundle" are available. For example: + * - node.getCreatedTime() will return the node creation timestamp. + * - node.hasField('field_example') returns TRUE if the node bundle includes + * field_example. (This does not indicate the presence of a value in this + * field.) + * - node.isPublished() will return whether the node is published or not. + * Calling other methods, such as node.delete(), will result in an exception. + * See \Drupal\node\Entity\Node for a full list of public properties and + * methods for the node object. + * - label: The title of the node. + * - content: All node items. Use {{ content }} to print them all, + * or print a subset such as {{ content.field_example }}. Use + * {{ content|without('field_example') }} to temporarily suppress the printing + * of a given child element. + * - author_picture: The node author user entity, rendered using the "compact" + * view mode. + * - metadata: Metadata for this node. + * - date: Themed creation date field. + * - author_name: Themed author name field. + * - url: Direct URL of the current node. + * - display_submitted: Whether submission information should be displayed. + * - attributes: HTML attributes for the containing element. + * The attributes.class element may contain one or more of the following + * classes: + * - node: The current template type (also known as a "theming hook"). + * - node--type-[type]: The current node type. For example, if the node is an + * "Article" it would result in "node--type-article". Note that the machine + * name will often be in a short form of the human readable label. + * - node--view-mode-[view_mode]: The View Mode of the node; for example, a + * teaser would result in: "node--view-mode-teaser", and + * full: "node--view-mode-full". + * The following are controlled through the node publishing options. + * - node--promoted: Appears on nodes promoted to the front page. + * - node--sticky: Appears on nodes ordered above other non-sticky nodes in + * teaser listings. + * - node--unpublished: Appears on unpublished nodes visible only to site + * admins. + * - title_attributes: Same as attributes, except applied to the main title + * tag that appears in the template. + * - content_attributes: Same as attributes, except applied to the main + * content tag that appears in the template. + * - author_attributes: Same as attributes, except applied to the author of + * the node tag that appears in the template. + * - title_prefix: Additional output populated by modules, intended to be + * displayed in front of the main title tag that appears in the template. + * - title_suffix: Additional output populated by modules, intended to be + * displayed after the main title tag that appears in the template. + * - view_mode: View mode; for example, "teaser" or "full". + * - teaser: Flag for the teaser state. Will be true if view_mode is 'teaser'. + * - page: Flag for the full page state. Will be true if view_mode is 'full'. + * - readmore: Flag for more state. Will be true if the teaser content of the + * node cannot hold the main body content. + * - logged_in: Flag for authenticated user status. Will be true when the + * current user is a logged-in member. + * - is_admin: Flag for admin user status. Will be true when the current user + * is an administrator. + * + * @see template_preprocess_node() + * + * @todo Remove the id attribute (or make it a class), because if that gets + * rendered twice on a page this is invalid CSS for example: two lists + * in different view modes. + */ +#} + +{% + set classes = [ + 'newsfeed__item', + 'newsfeed__item--' ~ node.bundle|clean_class, + node.isPromoted() ? 'newsfeed__item--promoted', + node.isSticky() ? 'newsfeed__item--sticky', + not node.isPublished() ? 'node--unpublished newsfeed__item--unpublished', + view_mode ? 'node--view-mode-' ~ view_mode|clean_class, + ] +%} + +{{ attach_library('classy/node') }} + +
+ {{ title_prefix }} + {% if not page %} +

+ {{ label }} +

+ {% else %} +

+ {{ label }} +

+ {% endif %} + + {#block postinfo #} + {% block postinfo %} + {% include "@patterns/post_info/pattern-postinfo.html.twig" + with { + image_url: file_url(node.uid.entity.user_picture.entity.uri.value|image_style('thumbnail')), + title: node.owner.full_name.value, + url: path('entity.user.canonical', {'user': user.id}), + logged_in: logged_in, + context_text: ngf_context_text, + subpic: ngf_sub_picture, + container_class: ngf_group_container_class, + } + %} + {% endblock postinfo %} + {# end block postinfo #} + + {# block coverimage #} + + {% block coverimage %} + {{ content.field_ngf_cover_image }} + {% endblock coverimage %} +
+ + {% block content %} + + {{ content|without('field_ngf_cover_image') }} + + {% block related_topics %} + + {# TODO + + {% include "@patterns/list/pattern-list.html.twig" + with { + items: content.field_ngf_interests['#items'], + css_class: sub-section sub-section--related-taxonomy, + label: content.field_ngf_interests['#title'], + list_class: list list--taxonomy, + item_class: list__item list__item--tag, + link_class: tag tag__link, + url: '', + title: '', + } + %} + #} + + {% set label = content.field_ngf_interests['#title'] %} + {% set tags = content.field_ngf_interests['#items'] %} + {% set css_class = 'sub-section sub-section--related-taxonomy' %} + +
+ {% if label is not empty %} +

{{ label }}

+ {% endif %} + {% if tags is not empty %} + + {% endif %} +
+ {% end block related_topics %} + + {% endblock content %} + + \ No newline at end of file diff --git a/templates/content/node--ngf-discussion.html.twig b/templates/content/node--ngf-discussion.html.twig index bae0635..9074642 100644 --- a/templates/content/node--ngf-discussion.html.twig +++ b/templates/content/node--ngf-discussion.html.twig @@ -96,9 +96,9 @@ {% endif %} - {#block postinfo #} + {#block postinfo #} {% block postinfo %} - {% include "@patterns/post_info/pattern-postinfo-new.html.twig" + {% include "@patterns/post_info/pattern-postinfo.html.twig" with { image_url: file_url(node.uid.entity.user_picture.entity.uri.value|image_style('thumbnail')), title: node.owner.full_name.value, @@ -120,7 +120,45 @@
{% block content %} - {{ content|without('field_ngf_cover_image') }} + + {{ content|without('field_ngf_cover_image') }} + + {# + {% include "@patterns/tags/pattern-tags.html.twig" + with { + items: content.field_ngf_interests['#items'], + css_class: sub-section sub-section--related-taxonomy, + label: content.field_ngf_interests['#title'], + list_class: list list--taxonomy, + item_class: list__item list__item--tag, + link_class: tag tag__link, + url: '', + title: '', + } + %} + #} + + {% set label = content.field_ngf_interests['#title'] %} + {% set tags = content.field_ngf_interests['#items'] %} + {% set css_class = 'sub-section sub-section--related-taxonomy' %} + +
+ {% if label is not empty %} +

{{ label }}

+ {% endif %} + {% if tags is not empty %} + + {% endif %} +
+ {% endblock content %} \ No newline at end of file From 4a63d2cff43c84bafb6351578b3da9abe813649f Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Tue, 5 Jun 2018 13:46:06 +0200 Subject: [PATCH 059/200] NGF-195: theming related topics --- patterns/list/pattern-list.html.twig | 184 +++------------------------ 1 file changed, 16 insertions(+), 168 deletions(-) diff --git a/patterns/list/pattern-list.html.twig b/patterns/list/pattern-list.html.twig index 6569a75..94bb951 100644 --- a/patterns/list/pattern-list.html.twig +++ b/patterns/list/pattern-list.html.twig @@ -1,168 +1,16 @@ -{# -/** - * @file - * Theme override to display a node. - * - * Available variables: - * - node: The node entity with limited access to object properties and methods. - * Only method names starting with "get", "has", or "is" and a few common - * methods such as "id", "label", and "bundle" are available. For example: - * - node.getCreatedTime() will return the node creation timestamp. - * - node.hasField('field_example') returns TRUE if the node bundle includes - * field_example. (This does not indicate the presence of a value in this - * field.) - * - node.isPublished() will return whether the node is published or not. - * Calling other methods, such as node.delete(), will result in an exception. - * See \Drupal\node\Entity\Node for a full list of public properties and - * methods for the node object. - * - label: The title of the node. - * - content: All node items. Use {{ content }} to print them all, - * or print a subset such as {{ content.field_example }}. Use - * {{ content|without('field_example') }} to temporarily suppress the printing - * of a given child element. - * - author_picture: The node author user entity, rendered using the "compact" - * view mode. - * - metadata: Metadata for this node. - * - date: Themed creation date field. - * - author_name: Themed author name field. - * - url: Direct URL of the current node. - * - display_submitted: Whether submission information should be displayed. - * - attributes: HTML attributes for the containing element. - * The attributes.class element may contain one or more of the following - * classes: - * - node: The current template type (also known as a "theming hook"). - * - node--type-[type]: The current node type. For example, if the node is an - * "Article" it would result in "node--type-article". Note that the machine - * name will often be in a short form of the human readable label. - * - node--view-mode-[view_mode]: The View Mode of the node; for example, a - * teaser would result in: "node--view-mode-teaser", and - * full: "node--view-mode-full". - * The following are controlled through the node publishing options. - * - node--promoted: Appears on nodes promoted to the front page. - * - node--sticky: Appears on nodes ordered above other non-sticky nodes in - * teaser listings. - * - node--unpublished: Appears on unpublished nodes visible only to site - * admins. - * - title_attributes: Same as attributes, except applied to the main title - * tag that appears in the template. - * - content_attributes: Same as attributes, except applied to the main - * content tag that appears in the template. - * - author_attributes: Same as attributes, except applied to the author of - * the node tag that appears in the template. - * - title_prefix: Additional output populated by modules, intended to be - * displayed in front of the main title tag that appears in the template. - * - title_suffix: Additional output populated by modules, intended to be - * displayed after the main title tag that appears in the template. - * - view_mode: View mode; for example, "teaser" or "full". - * - teaser: Flag for the teaser state. Will be true if view_mode is 'teaser'. - * - page: Flag for the full page state. Will be true if view_mode is 'full'. - * - readmore: Flag for more state. Will be true if the teaser content of the - * node cannot hold the main body content. - * - logged_in: Flag for authenticated user status. Will be true when the - * current user is a logged-in member. - * - is_admin: Flag for admin user status. Will be true when the current user - * is an administrator. - * - * @see template_preprocess_node() - * - * @todo Remove the id attribute (or make it a class), because if that gets - * rendered twice on a page this is invalid CSS for example: two lists - * in different view modes. - */ -#} - -{% - set classes = [ - 'newsfeed__item', - 'newsfeed__item--' ~ node.bundle|clean_class, - node.isPromoted() ? 'newsfeed__item--promoted', - node.isSticky() ? 'newsfeed__item--sticky', - not node.isPublished() ? 'node--unpublished newsfeed__item--unpublished', - view_mode ? 'node--view-mode-' ~ view_mode|clean_class, - ] -%} - -{{ attach_library('classy/node') }} - -
- {{ title_prefix }} - {% if not page %} -

- {{ label }} -

- {% else %} -

- {{ label }} -

- {% endif %} - - {#block postinfo #} - {% block postinfo %} - {% include "@patterns/post_info/pattern-postinfo.html.twig" - with { - image_url: file_url(node.uid.entity.user_picture.entity.uri.value|image_style('thumbnail')), - title: node.owner.full_name.value, - url: path('entity.user.canonical', {'user': user.id}), - logged_in: logged_in, - context_text: ngf_context_text, - subpic: ngf_sub_picture, - container_class: ngf_group_container_class, - } - %} - {% endblock postinfo %} - {# end block postinfo #} - - {# block coverimage #} - - {% block coverimage %} - {{ content.field_ngf_cover_image }} - {% endblock coverimage %} -
- - {% block content %} - - {{ content|without('field_ngf_cover_image') }} - - {% block related_topics %} - - {# TODO - - {% include "@patterns/list/pattern-list.html.twig" - with { - items: content.field_ngf_interests['#items'], - css_class: sub-section sub-section--related-taxonomy, - label: content.field_ngf_interests['#title'], - list_class: list list--taxonomy, - item_class: list__item list__item--tag, - link_class: tag tag__link, - url: '', - title: '', - } - %} - #} - - {% set label = content.field_ngf_interests['#title'] %} - {% set tags = content.field_ngf_interests['#items'] %} - {% set css_class = 'sub-section sub-section--related-taxonomy' %} - -
- {% if label is not empty %} -

{{ label }}

- {% endif %} - {% if tags is not empty %} - - {% endif %} -
- {% end block related_topics %} - - {% endblock content %} - - \ No newline at end of file +{% if items is not empty %} +
+{% if label is not empty %} +

{{ label }}

+{% endif %} + +
+{% endif %} From bcd21f6d3271e11d9e34e07fcad80ccd5783d017 Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Tue, 5 Jun 2018 18:30:07 +0200 Subject: [PATCH 060/200] NGF-195: temp rendering related content --- patterns/list/pattern-list.html.twig | 4 +- .../content/node--ngf-discussion.html.twig | 38 ++++++++++++++++--- 2 files changed, 35 insertions(+), 7 deletions(-) diff --git a/patterns/list/pattern-list.html.twig b/patterns/list/pattern-list.html.twig index 94bb951..0e1a81b 100644 --- a/patterns/list/pattern-list.html.twig +++ b/patterns/list/pattern-list.html.twig @@ -1,13 +1,13 @@ {% if items is not empty %}
{% if label is not empty %} -

{{ label }}

+

{{ label }}

{% endif %}
    {% for item in items %}
  • - {{ item.title }} + {{ item.title }}
  • {% endfor %} diff --git a/templates/content/node--ngf-discussion.html.twig b/templates/content/node--ngf-discussion.html.twig index 9074642..9647d63 100644 --- a/templates/content/node--ngf-discussion.html.twig +++ b/templates/content/node--ngf-discussion.html.twig @@ -119,12 +119,40 @@ {% endblock coverimage %} - {% block content %} + {{ content.field_ngf_description }} - {{ content|without('field_ngf_cover_image') }} + {% block related_content %} - {# - {% include "@patterns/tags/pattern-tags.html.twig" + {% set label = content.field_ngf_related_content['#title'] %} + {% set items = content.field_ngf_related_content['#items'] %} + {% set css_class = 'sub-section sub-section--attachment' %} + +
    + {% if label is not empty %} +

    {{ label }}

    + {% endif %} + {% if items is not empty %} + + {% endif %} +
    + + {% endblock related_content %} + + {% block related_topics %} + + {# TODO + + {% include "@patterns/list/pattern-list.html.twig" with { items: content.field_ngf_interests['#items'], css_class: sub-section sub-section--related-taxonomy, @@ -159,6 +187,6 @@ {% endif %}
- {% endblock content %} + {% endblock related_topics %} \ No newline at end of file From c0dd8145ffec163c8b5336a85a4d3f2e97571f56 Mon Sep 17 00:00:00 2001 From: Nikolay Lobachev Date: Wed, 6 Jun 2018 09:55:18 +0200 Subject: [PATCH 061/200] Update discussion view mode. Update group view mode. Add preprocessing --- funkywave.theme | 36 ++++++++- .../content/backup_group--ngf-event.html.twig | 3 - .../group--ngf-discussion-group.html.twig | 79 +++++++++++++++++++ templates/content/group--ngf-event.html.twig | 2 +- .../content/node--ngf-discussion.html.twig | 2 +- 5 files changed, 114 insertions(+), 8 deletions(-) create mode 100644 templates/content/group--ngf-discussion-group.html.twig diff --git a/funkywave.theme b/funkywave.theme index 191cecc..2ad86df 100644 --- a/funkywave.theme +++ b/funkywave.theme @@ -18,10 +18,24 @@ use Drupal\Core\StringTranslation\TranslatableMarkup; */ function funkywave_preprocess_node(&$variables) { $node = $variables['elements']['#node']; - if ($variables['view_mode'] == 'full' && $node->getType() == 'ngf_discussion') { + $view_mode = $variables['view_mode']; + $display_modes = [ + 'full', + 'teaser', + 'ngf_teaser_user_commented', + 'ngf_teaser_user_created', + ]; + + if (in_array($view_mode, $display_modes) + && $node->getType() == 'ngf_discussion') { $variables['ngf_sub_picture'] = NULL; - $variables['ngf_context_text'] = NULL; + $variables['ngf_context_text'] = t( + 'Posted @created_date ago', + [ + '@created_date' => \Drupal::service('date.formatter')->formatTimeDiffSince($node->created->value) + ] + ); $variables['ngf_group_container_class'] = 'post-info--no-group'; if (isset($node->group) && $group = $node->group) { @@ -62,11 +76,13 @@ function funkywave_preprocess_node(&$variables) { $variables['ngf_context_text'] = t( 'Posted @created_date ago in ', [ - '@created_date' => \Drupal::service('date.formatter')->formatTimeDiffSince($group->created->value), + '@created_date' => \Drupal::service('date.formatter')->formatTimeDiffSince($node->created->value), ':group_url' => $group->url(), '@group_title' => $group->label(), ] ) . ' '; + } elseif ($view_mode == 'ngf_teaser_user_commented') { + $variables['ngf_context_text'] = t('Commented'); } } } @@ -88,8 +104,22 @@ function funkywave_preprocess_user(&$vars) { */ function funkywave_preprocess_group(&$variables) { $group = $variables['group']; + $view_mode = $variables['view_mode']; + if ($variables['view_mode'] == 'full' && $group->getGroupType()->id() == 'ngf_event') { // This is needed so the group name is printed along with {{content}}. $variables['content']['label']['#printed'] = FALSE; } + + $display_modes = [ + 'teaser', + 'ngf_user_created', + ]; + + if ($group->getGroupType()->id() == 'ngf_discussion_group' && in_array($view_mode, $display_modes)) { + $variables['ngf_group_container_class'] = 'post-info--group'; + $variables['ngf_context_text'] = t('Created @created_date ago', [ + '@created_date' => \Drupal::service('date.formatter')->formatTimeDiffSince($group->created->value) + ]); + } } diff --git a/templates/content/backup_group--ngf-event.html.twig b/templates/content/backup_group--ngf-event.html.twig index 69af781..f88888a 100644 --- a/templates/content/backup_group--ngf-event.html.twig +++ b/templates/content/backup_group--ngf-event.html.twig @@ -40,9 +40,6 @@ */ #} -{{ kint(content|keys) }} -{{ kint(group|keys) }} - {# block postinfo #} {% block postinfo %} {% set profile_pic_uri = group.uid.entity.user_picture.entity.uri.value %} diff --git a/templates/content/group--ngf-discussion-group.html.twig b/templates/content/group--ngf-discussion-group.html.twig new file mode 100644 index 0000000..4dc8a25 --- /dev/null +++ b/templates/content/group--ngf-discussion-group.html.twig @@ -0,0 +1,79 @@ +{# +/** + * @file + * Default theme implementation to display a group. + * + * Available variables: + * - group: The group entity with limited access to object properties and + * methods. Only "getter" methods (method names starting with "get", "has", + * or "is") and a few common methods such as "id" and "label" are available. + * Calling other methods (such as group.delete) will result in an exception. + * - label: The title of the group. + * - content: All group items. Use {{ content }} to print them all, + * or print a subset such as {{ content.field_example }}. Use + * {{ content|without('field_example') }} to temporarily suppress the + * printing of a given child element. + * - url: Direct URL of the current group. + * - attributes: HTML attributes for the containing element. + * The attributes.class element may contain one or more of the following + * classes: + * - group: The current template type (also known as a "theming hook"). + * - group--[type]: The current group type. For example, if the group is a + * "Classroom" it would result in "group--classroom". Note that the machine + * name will often be in a short form of the human readable label. + * - group--[view_mode]: The View Mode of the group; for example, a + * teaser would result in: "group--teaser", and full: "group--full". + * - title_attributes: Same as attributes, except applied to the main title + * tag that appears in the template. + * - content_attributes: Same as attributes, except applied to the main + * content tag that appears in the template. + * - title_prefix: Additional output populated by modules, intended to be + * displayed in front of the main title tag that appears in the template. + * - title_suffix: Additional output populated by modules, intended to be + * displayed after the main title tag that appears in the template. + * - view_mode: View mode; for example, "teaser" or "full". + * - page: Flag for the full page state. Will be true if view_mode is 'full'. + * + * @see template_preprocess_group() + * + * @ingroup themeable + */ +#} + + {# block postinfo #} + {% block postinfo %} + {#{% include "@patterns/post_info/pattern-postinfo.html.twig"#} + {#with {#} + {#author_pic_uri: file_url(group.uid.entity.user_picture.entity.uri.value|image_style('thumbnail')),#} + {#profile_name: group.uid.entity.name.value,#} + {#profile_uri: path('entity.user.canonical', {'user': user.id}),#} + {#creation_date: group.created.value|time_diff,#} + {#group_logo: file_url(content.field_ngf_cover_image|field_target_entity.field_media_image.entity.uri.value|image_style('thumbnail')),#} + {#group_name: 'todo',#} + {#login_check: logged_in,#} + {#}#} + {#%}#} + + {% include "@patterns/post_info/pattern-postinfo.html.twig" + with { + title: group.label(), + image_url: file_url(group.field_media_image.entity.uri.value|image_style('thumbnail')), + url: path('entity.user.canonical', {'user': user.id}), + logged_in: logged_in, + context_text: ngf_context_text, + subpic: ngf_sub_picture, + container_class: ngf_group_container_class, + } + %} + + {% endblock postinfo %} + {# end block postinfo #} + + {# block coverimage #} + {% block coverimage %} + {{ content.field_ngf_cover_image }} + {% endblock coverimage %} + + {% block content %} + {{ content|without('field_ngf_cover_image') }} + {% endblock content %} diff --git a/templates/content/group--ngf-event.html.twig b/templates/content/group--ngf-event.html.twig index d2c550c..1fbb99d 100644 --- a/templates/content/group--ngf-event.html.twig +++ b/templates/content/group--ngf-event.html.twig @@ -42,7 +42,7 @@ {# block postinfo #} {% block postinfo %} - {#{% include "@patterns/post_info/pattern-postinfo-new.html.twig"#} + {#{% include "@patterns/post_info/pattern-postinfo.html.twig"#} {#with {#} {#author_pic_uri: file_url(group.uid.entity.user_picture.entity.uri.value|image_style('thumbnail')),#} {#profile_name: group.uid.entity.name.value,#} diff --git a/templates/content/node--ngf-discussion.html.twig b/templates/content/node--ngf-discussion.html.twig index bae0635..183aac8 100644 --- a/templates/content/node--ngf-discussion.html.twig +++ b/templates/content/node--ngf-discussion.html.twig @@ -98,7 +98,7 @@ {#block postinfo #} {% block postinfo %} - {% include "@patterns/post_info/pattern-postinfo-new.html.twig" + {% include "@patterns/post_info/pattern-postinfo.html.twig" with { image_url: file_url(node.uid.entity.user_picture.entity.uri.value|image_style('thumbnail')), title: node.owner.full_name.value, From d9075bebdad36aa06bba102c4d7d3fbc090320a1 Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Wed, 6 Jun 2018 10:01:29 +0200 Subject: [PATCH 062/200] NGF-195: temp rendering related content --- templates/content/node--ngf-discussion.html.twig | 2 ++ 1 file changed, 2 insertions(+) diff --git a/templates/content/node--ngf-discussion.html.twig b/templates/content/node--ngf-discussion.html.twig index 9647d63..33771d3 100644 --- a/templates/content/node--ngf-discussion.html.twig +++ b/templates/content/node--ngf-discussion.html.twig @@ -112,6 +112,8 @@ {% endblock postinfo %} {# end block postinfo #} + {{ node.owner.full_name.value }} + {# block coverimage #} {% block coverimage %} From f874387aee3f1ce6d84fb9caefb4c8b503890496 Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Wed, 6 Jun 2018 14:24:48 +0200 Subject: [PATCH 063/200] removed related content as it will come from a view --- .../content/node--ngf-discussion.html.twig | 38 ++++--------------- 1 file changed, 7 insertions(+), 31 deletions(-) diff --git a/templates/content/node--ngf-discussion.html.twig b/templates/content/node--ngf-discussion.html.twig index 33771d3..3e77c39 100644 --- a/templates/content/node--ngf-discussion.html.twig +++ b/templates/content/node--ngf-discussion.html.twig @@ -112,8 +112,6 @@ {% endblock postinfo %} {# end block postinfo #} - {{ node.owner.full_name.value }} - {# block coverimage #} {% block coverimage %} @@ -125,31 +123,8 @@ {% block related_content %} - {% set label = content.field_ngf_related_content['#title'] %} - {% set items = content.field_ngf_related_content['#items'] %} - {% set css_class = 'sub-section sub-section--attachment' %} - -
- {% if label is not empty %} -

{{ label }}

- {% endif %} - {% if items is not empty %} - - {% endif %} -
- {% endblock related_content %} - + {# load a view with related content #} {% block related_topics %} {# TODO @@ -168,20 +143,21 @@ %} #} + {% set label = content.field_ngf_interests['#title'] %} - {% set tags = content.field_ngf_interests['#items'] %} + {% set items = content.field_ngf_interests['#items'] %} {% set css_class = 'sub-section sub-section--related-taxonomy' %}
{% if label is not empty %}

{{ label }}

{% endif %} - {% if tags is not empty %} + {% if items is not empty %}
    - {% for tag in tags %} + {% for item in items %}
  • - - {{ tag.entity.name.value }} + + {{ item.entity.name.value }}
  • {% endfor %} From 0ee605d488777eea23badcc580b43e096cb36420 Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Wed, 6 Jun 2018 15:36:59 +0200 Subject: [PATCH 064/200] NGF-213: adapted group teaser --- funkywave.theme | 24 ++++++++++++---- ...up--ngf-discussion-group--teaser.html.twig | 28 +++++-------------- 2 files changed, 25 insertions(+), 27 deletions(-) diff --git a/funkywave.theme b/funkywave.theme index 2ad86df..7b4359b 100644 --- a/funkywave.theme +++ b/funkywave.theme @@ -67,9 +67,12 @@ function funkywave_preprocess_node(&$variables) { $visibility_icon = ''; if ($group->field_ngf_group_visibility->value == NGF_GROUP_PUBLIC) { - $visibility_icon = 'far fa-eye-slash'; + $visibility_icon = 'fa fa-eye-slash'; + } + elseif ($group->field_ngf_group_visibility->value == NGF_GROUP_PRIVATE) { + $visibility_icon = 'fa fa-lock'; } - if ($group->field_ngf_group_visibility->value == NGF_GROUP_PRIVATE) { + elseif ($group->field_ngf_group_visibility->value == NGF_GROUP_SECRET) { $visibility_icon = 'fa fa-lock'; } @@ -117,9 +120,18 @@ function funkywave_preprocess_group(&$variables) { ]; if ($group->getGroupType()->id() == 'ngf_discussion_group' && in_array($view_mode, $display_modes)) { - $variables['ngf_group_container_class'] = 'post-info--group'; - $variables['ngf_context_text'] = t('Created @created_date ago', [ - '@created_date' => \Drupal::service('date.formatter')->formatTimeDiffSince($group->created->value) - ]); + $variables['ngf_group_container_class'] = 'post-info--no-group'; + if ($group->field_ngf_group_visibility->value == NGF_GROUP_PUBLIC) { + $variables['ngf_context_text'] = t('Public group'); + } + elseif ($group->field_ngf_group_visibility->value == NGF_GROUP_PRIVATE) { + $visibility_icon = 'fa fa-lock'; + $variables['ngf_context_text'] = ' ' . t('Private group'); + } + elseif ($group->field_ngf_group_visibility->value == NGF_GROUP_SECRET) { + $visibility_icon = 'fa fa-eye-slash'; + $variables['ngf_context_text'] = ' ' . t('Secret group'); + } + } } diff --git a/templates/group/group--ngf-discussion-group--teaser.html.twig b/templates/group/group--ngf-discussion-group--teaser.html.twig index e5add47..d897048 100644 --- a/templates/group/group--ngf-discussion-group--teaser.html.twig +++ b/templates/group/group--ngf-discussion-group--teaser.html.twig @@ -40,26 +40,12 @@ */ #} -{% if content.field_ngf_group_visibility[0] == 'Private' %} - {{ group.uid.entity.name.value }} -{% endif %} - -{% set group_visibility_key = content.field_ngf_group_visibility['#items'].getString() %} -{% if group_visibility_key == "1" %} - {% set group_visibility_icon_value = 'fa fa-lock' %} -{% endif %} -{% if group_visibility_key == "2" %} - {% set group_visibility_icon_value = 'far fa-eye-slash' %} -{% endif %} - -{% include "@patterns/post_info/pattern-postinfo.html.twig" - with { - profile_name: group.uid.entity.name.value, - profile_uri: path('entity.user.canonical', {'user': user.id}), - group_logo: file_url(content.field_ngf_cover_image|field_target_entity.field_media_image.entity.uri.value|image_style('thumbnail')), - group_url: url, - group_name: label, - group_visibility: content.field_ngf_group_visibility[0], - group_visibility_icon: group_visibility_icon_value +{% include "@patterns/post_info/pattern-postinfo.html.twig" + with { + image_url: file_url(content.field_ngf_cover_image|field_target_entity.field_media_image.entity.uri.value|image_style('thumbnail')), + title: label, + url: url, + context_text: ngf_context_text, + container_class: ngf_group_container_class, } %} \ No newline at end of file From 4ef54b8f72c6414b55c17f98f32b5f086f5b3fce Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Wed, 6 Jun 2018 16:37:37 +0200 Subject: [PATCH 065/200] NGF-214: renamed post-info to profile-shortinfo --- css/style.css | 653 ++++++++++++++++-- funkywave.theme | 12 +- .../profile-shortinfo--group__background.svg | 11 + patterns/post_info/pattern-postinfo.html.twig | 37 - .../_profile-shortinfo.scss} | 0 .../backup_pattern-postinfo.html.twig | 0 .../pattern-profile-shortinfo.html.twig | 37 + .../postinfo-new.ui_patterns.yml | 0 .../profile-shortinfo.ui_patterns.yml} | 0 .../group--ngf-discussion-group.html.twig | 2 +- templates/content/group--ngf-event.html.twig | 2 +- .../content/node--ngf-discussion.html.twig | 2 +- ...up--ngf-discussion-group--teaser.html.twig | 2 +- 13 files changed, 640 insertions(+), 118 deletions(-) create mode 100644 images/profile-shortinfo--group__background.svg delete mode 100644 patterns/post_info/pattern-postinfo.html.twig rename patterns/{post_info/_postinfo.scss => profile-shortinfo/_profile-shortinfo.scss} (100%) rename patterns/{post_info => profile-shortinfo}/backup_pattern-postinfo.html.twig (100%) create mode 100644 patterns/profile-shortinfo/pattern-profile-shortinfo.html.twig rename patterns/{post_info => profile-shortinfo}/postinfo-new.ui_patterns.yml (100%) rename patterns/{post_info/postinfo.ui_patterns.yml => profile-shortinfo/profile-shortinfo.ui_patterns.yml} (100%) diff --git a/css/style.css b/css/style.css index 7036b17..71de613 100644 --- a/css/style.css +++ b/css/style.css @@ -29,12 +29,18 @@ h1, h2, h3, h4, h5, h6 { font-family: "Raleway"; font-weight: bold; line-height: 1.3; + margin-bottom: -0.5em; + margin-top: 1.9em; } h4, h5, h6 { color: #88898c; } +p:last-child { + margin-bottom: 1em; +} + a:not(.toolbar-item) { color: #662D91; -webkit-transition: all 0.2s; @@ -108,6 +114,381 @@ main *:not(img):not(svg)::selection { } } +.form-wrapper { + padding: 0px 15px 75px 15px; +} + +form__block, .form__block { + margin: 1.5rem 0 1rem; +} + +form__block--text label, form__fake-label, .form__block--text label, .form__fake-label { + display: block; + font-weight: 600; + margin-bottom: 0.3em; +} + +form textarea, .form textarea { + font-family: "Raleway"; + min-height: 6rem; +} + +form input[type=text], form input[type=email], form input[type=password], form textarea, .form input[type=text], .form input[type=email], .form input[type=password], .form textarea { + padding: 0.7rem 0.9rem; + font-size: 1.6rem; + line-height: 1.8; + color: #515155; + max-width: 32em; + width: 100%; + border: solid 2px #a6a7ab; + -webkit-box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.1); + box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.1); + -webkit-transition: border-color 0.2s; + transition: border-color 0.2s; +} + +form input[type=text]:focus:hover, form input[type=text]:focus, form input[type=email]:focus:hover, form input[type=email]:focus, form input[type=password]:focus:hover, form input[type=password]:focus, form textarea:focus:hover, form textarea:focus, .form input[type=text]:focus:hover, .form input[type=text]:focus, .form input[type=email]:focus:hover, .form input[type=email]:focus, .form input[type=password]:focus:hover, .form input[type=password]:focus, .form textarea:focus:hover, .form textarea:focus { + outline: none; + border: solid 2px #662D91; + -webkit-transition: border-color 0.2s; + transition: border-color 0.2s; +} + +form input[type=text]:hover, form input[type=email]:hover, form input[type=password]:hover, form textarea:hover, .form input[type=text]:hover, .form input[type=email]:hover, .form input[type=password]:hover, .form textarea:hover { + border-color: #515155; + -webkit-transition: border-color 0.2s; + transition: border-color 0.2s; +} + +form input[type=text]::-webkit-input-placeholder, form input[type=email]::-webkit-input-placeholder, form input[type=password]::-webkit-input-placeholder, form textarea::-webkit-input-placeholder, .form input[type=text]::-webkit-input-placeholder, .form input[type=email]::-webkit-input-placeholder, .form input[type=password]::-webkit-input-placeholder, .form textarea::-webkit-input-placeholder { + opacity: 0.4; +} + +form input[type=text]:-ms-input-placeholder, form input[type=email]:-ms-input-placeholder, form input[type=password]:-ms-input-placeholder, form textarea:-ms-input-placeholder, .form input[type=text]:-ms-input-placeholder, .form input[type=email]:-ms-input-placeholder, .form input[type=password]:-ms-input-placeholder, .form textarea:-ms-input-placeholder { + opacity: 0.4; +} + +form input[type=text]::-ms-input-placeholder, form input[type=email]::-ms-input-placeholder, form input[type=password]::-ms-input-placeholder, form textarea::-ms-input-placeholder, .form input[type=text]::-ms-input-placeholder, .form input[type=email]::-ms-input-placeholder, .form input[type=password]::-ms-input-placeholder, .form textarea::-ms-input-placeholder { + opacity: 0.4; +} + +form input[type=text]::placeholder, form input[type=email]::placeholder, form input[type=password]::placeholder, form textarea::placeholder, .form input[type=text]::placeholder, .form input[type=email]::placeholder, .form input[type=password]::placeholder, .form textarea::placeholder { + opacity: 0.4; +} + +form input[type=text].error, form input[type=email].error, form input[type=password].error, form textarea.error, .form input[type=text].error, .form input[type=email].error, .form input[type=password].error, .form textarea.error { + border: solid 2px #ff3939; + -webkit-transition: border-color 0.2s; + transition: border-color 0.2s; +} + +form input[type=text] + p, form input[type=email] + p, form input[type=password] + p, form textarea + p, .form input[type=text] + p, .form input[type=email] + p, .form input[type=password] + p, .form textarea + p { + margin-top: 0.2em; + -webkit-transition: border-color 0.2s; + transition: border-color 0.2s; +} + +form .form__block--twocol, .form .form__block--twocol { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; +} + +form .form__block--twocol > *[class^="form__block--"], .form .form__block--twocol > *[class^="form__block--"] { + -ms-flex-preferred-size: 100%; + flex-basis: 100%; + width: 100%; + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; + padding: 0rem 0px; + margin: 0.8rem 0; +} + +form .form__block--toggle input[type=checkbox], form .form__block--checkbox input[type=checkbox], .form .form__block--toggle input[type=checkbox], .form .form__block--checkbox input[type=checkbox] { + -webkit-box-sizing: border-box; + box-sizing: border-box; + padding: 0; + margin: 4px 0 0; + margin-top: 0em; + opacity: 0; + z-index: 1; + position: absolute; + margin-left: -20px; +} + +form .form__block--submit, .form .form__block--submit { + margin: 2.5rem 0 2rem; +} + +form .form__block--checkbox, .form .form__block--checkbox { + margin: 1.5rem 0 1rem; +} + +form .form__block--checkbox input[type=checkbox] + label .onoffswitch-inner, .form .form__block--checkbox input[type=checkbox] + label .onoffswitch-inner { + display: inline-block; + height: 2.2rem; + width: 2.2rem; + background: #FFFFFF; + margin: 3px 20px 0 0; + -webkit-transition: 0.2s margin; + transition: 0.2s margin; + border: solid 2px #a6a7ab; + position: absolute; +} + +form .form__block--checkbox .label-text, .form .form__block--checkbox .label-text { + margin-left: 3.5rem; + display: inline-block; + line-height: 1.5; +} + +form .form__block--checkbox input[type=checkbox]:focus + label .onoffswitch-inner, .form .form__block--checkbox input[type=checkbox]:focus + label .onoffswitch-inner { + -webkit-box-shadow: 0px 0px 0px 1px #662D91; + box-shadow: 0px 0px 0px 1px #662D91; + border: solid 2px #662D91 !important; +} + +form .form__block--checkbox input[type=checkbox]:checked + label .onoffswitch-inner, .form .form__block--checkbox input[type=checkbox]:checked + label .onoffswitch-inner { + display: inline-block; + height: 2.2rem; + width: 2.2rem; + background: #1eb49c; + margin: 3px 20px 0 0; + -webkit-transition: 0.2s margin; + transition: 0.2s margin; + border: solid 2px #a6a7ab; + position: absolute; +} + +form .form__block--checkbox input[type=checkbox]:checked + label .onoffswitch-inner:before, form .form__block--checkbox input[type=checkbox]:checked + label .onoffswitch-inner:after, .form .form__block--checkbox input[type=checkbox]:checked + label .onoffswitch-inner:before, .form .form__block--checkbox input[type=checkbox]:checked + label .onoffswitch-inner:after { + position: absolute; + content: ''; + width: 3px; + height: 2.7rem; + background-color: rgba(5, 17, 30, 0.8); +} + +form .form__block--checkbox input[type=checkbox]:checked + label .onoffswitch-inner:before, .form .form__block--checkbox input[type=checkbox]:checked + label .onoffswitch-inner:before { + -webkit-transform: rotate(45deg); + transform: rotate(45deg); + margin-left: 7px; + margin-top: -5px; +} + +form .form__block--checkbox input[type=checkbox]:checked + label .onoffswitch-inner:after, .form .form__block--checkbox input[type=checkbox]:checked + label .onoffswitch-inner:after { + -webkit-transform: rotate(-45deg); + transform: rotate(-45deg); + margin-left: 7px; + margin-top: -5px; +} + +form .form__block--toggle, .form .form__block--toggle { + margin: 1.5rem 0 1rem; +} + +form .form__block--toggle input[type=checkbox] + label:before, .form .form__block--toggle input[type=checkbox] + label:before { + background-color: #FFF; + background-size: 40rem 20rem; + content: ""; + width: 3.9rem; + height: 1.9rem; + display: inline-block; + margin-right: -40px; + margin-top: 3px; + border-radius: 20px; + border: solid 2px #c6c7cc; + -webkit-transition: background-color .2s; + transition: background-color .2s; + -webkit-box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.2); + box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.2); + position: absolute; +} + +form .form__block--toggle input[type=checkbox]:focus + label:before, .form .form__block--toggle input[type=checkbox]:focus + label:before { + -webkit-box-shadow: 0px 0px 0px 1px #662D91; + box-shadow: 0px 0px 0px 1px #662D91; + border: solid 2px #662D91 !important; +} + +form .form__block--toggle input[type=checkbox]:checked + label:before, .form .form__block--toggle input[type=checkbox]:checked + label:before { + background-color: #1eb49c; + -webkit-transition: background-color .2s; + transition: background-color .2s; + border: solid 2px rgba(0, 0, 0, 0.2); +} + +form .form__block--toggle input[type=checkbox]:checked + label .onoffswitch-inner, .form .form__block--toggle input[type=checkbox]:checked + label .onoffswitch-inner { + display: inline-block; + background: #edeff5; + margin: 3px 0 0 20px; + border: solid 2px #a6a7ab; + height: 2.2rem; + width: 2.2rem; +} + +form .form__block--toggle input[type=checkbox] + label .onoffswitch-inner, .form .form__block--toggle input[type=checkbox] + label .onoffswitch-inner { + display: inline-block; + height: 2.2rem; + width: 2.2rem; + background: #edeff5; + margin: 3px 20px 0 0; + -webkit-transition: 0.2s margin; + transition: 0.2s margin; + border-radius: 1rem; + border: solid 2px #a6a7ab; + position: absolute; +} + +form .form__block--toggle .label-text, .form .form__block--toggle .label-text { + margin-left: 5rem; +} + +.js .form__input--file { + width: 0.1px; + height: 0.1px; + opacity: 0; + overflow: hidden; + position: absolute; + z-index: -1; +} + +.form__input--file + label { + padding: 0.7rem 0.9rem; + font-size: 1.6rem; + color: #515155; + max-width: 32em; + width: 100%; + border: solid 2px #a6a7ab; + -webkit-box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.1); + box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.1); + text-overflow: ellipsis; + white-space: nowrap; + cursor: pointer; + display: inline-block; + overflow: hidden; +} + +.form__input--file + label:focus { + outline: none; + border: solid 2px #662D91; +} + +.no-js .form__input--file + label { + display: none; +} + +.form__input--file:focus + label, +.form__input--file.has-focus + label { + outline: none; + border: solid 2px #662D91; +} + +.form__input--file + label * { +} + +.form__input--file + label .form__label--file { + background-color: #88898c; + color: #FFFFFF; + text-align: right; + float: right; + -webkit-transition: background-color 0.2s; + transition: background-color 0.2s; + -webkit-transition: color 0.2s; + transition: color 0.2s; +} + +.form__input--file:hover + label .form__label--file { + background-color: #515155; + color: rgba(255, 255, 255, 0.9); + -webkit-transition: background-color 0.2s; + transition: background-color 0.2s; + -webkit-transition: color 0.2s; + transition: color 0.2s; +} + +.form__input--file:focus + label .form__label--file { + background-color: #662D91; + color: rgba(255, 255, 255, 0.9); + -webkit-transition: background-color 0.2s; + transition: background-color 0.2s; + -webkit-transition: color 0.2s; + transition: color 0.2s; +} + +.form__input--file + label .form__input--selected { + text-align: left; +} + +.form__input--file + label { + color: #515155; +} + +.form__input--file + label { + border: solid 2px #a6a7ab; + -webkit-box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.1); + box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.1); + -webkit-transition: border-color 0.2s; + transition: border-color 0.2s; + background-color: #FFFFFF; + padding: 0; +} + +.form__input--file + label:hover { + border-color: #515155; + -webkit-transition: border-color 0.2s; + transition: border-color 0.2s; +} + +.form__input--file + label span, +.form__input--file + label strong { + padding: 0.7rem 1.25rem; +} + +.form__input--file + label span { + min-height: 2em; + display: inline-block; + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; + vertical-align: top; +} + +@media (min-width: 578px) { + .form .form__block--twocol { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + } + + .form .form__block--twocol > *[class^="form__block--"] { + -ms-flex-preferred-size: 50%; + flex-basis: 50%; + width: calc(50% - 15px); + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; + } + + .form .form__block--twocol > *[class^="form__block--"]:nth-child(odd) { + padding-right: 15px; + } +} + +@media (min-width: 768px) { + .form-wrapper { + padding: 0px 15px 30px 15px; + } + + main.form-wrapper { + padding: 75px 15px 30px 15px; + } +} + .icon.icon--cog { background: url(../images/settings-icon.svg) no-repeat; background-size: cover; @@ -150,6 +531,7 @@ main *:not(img):not(svg)::selection { .list--taxonomy { padding: 0; + line-height: 2.3; } .list--taxonomy .list__item--tag { @@ -196,23 +578,75 @@ main *:not(img):not(svg)::selection { } } -a.tag { +a.tag, li.tag { background-color: #515155; color: #FFFFFF; border-radius: 2rem; text-shadow: none; -webkit-box-shadow: none; box-shadow: none; - padding: 0.2rem 0.6rem; font-size: 1.3rem; border: solid 1px #515155; } +a.tag.tag--deletable, li.tag.tag--deletable { + padding-right: 0.2rem; +} + +a.tag { + padding: 0.45rem 0.6rem; +} + a.tag:hover { background-color: #c6c7cc; color: #05111E; } +li.tag { + padding: 0.2rem 0.6rem; + line-height: 1.1; +} + +.tag button.close { + line-height: 2rem; + padding: 0.1rem; + border: none; + background-color: rgba(255, 255, 255, 0.8); + -webkit-box-shadow: 0 0 0 3px #515155 !important; + box-shadow: 0 0 0 3px #515155 !important; + cursor: pointer; + color: #ff3939; + border-radius: 10rem; + font-weight: 900; + height: 2rem; + min-width: 2rem; + margin-left: 0.6rem; + -webkit-transition: all 0.2s; + transition: all 0.2s; + text-align: center; +} + +.tag button.close span { + margin-top: -0.1rem; + display: block; +} + +.tag button.close:hover { + background-color: white; + -webkit-box-shadow: 0 0 0 3px rgba(255, 57, 57, 0.5) !important; + box-shadow: 0 0 0 3px rgba(255, 57, 57, 0.5) !important; + -webkit-transition: all 0.2s; + transition: all 0.2s; +} + +.tag button.close:focus { + outline: none; + -webkit-box-shadow: 0 0 0 3px #ff3939 !important; + box-shadow: 0 0 0 3px #ff3939 !important; + -webkit-transition: all 0.2s; + transition: all 0.2s; +} + #skip-link, .skip-link { position: fixed; top: 1.5em; @@ -261,6 +695,54 @@ a.tag:hover { opacity: 0.8; } +.text-danger { + color: #ff3939; +} + +.hr-text { + line-height: 1em; + position: relative; + outline: 0; + border: 0; + color: black; + text-align: center; + height: 1.5em; + opacity: 1; + width: 80%; + margin: 5rem auto 3rem auto; +} + +.hr-text:before { + content: ''; + background: #88898c; + position: absolute; + left: 0; + top: 50%; + width: 100%; + height: 1px; + z-index: 0; +} + +.hr-text:after { + content: attr(data-content); + position: relative; + display: inline-block; + font-weight: 700; + padding: 0 3rem; + line-height: 3rem; + color: #88898c; + background-color: #FFFFFF; + z-index: 0; +} + +.extra-space--top { + margin-top: 5rem !important; +} + +.extra-space--bottom { + margin-bottom: 3rem !important; +} + @media (min-width: 768px) { .no-display--sm { position: inherit !important; @@ -374,20 +856,39 @@ a.tag:hover { .btn-list--right { text-align: right; - margin-right: 15px; +} + +.btn-list--center { + text-align: center; + width: 100%; + margin: auto; +} + +.btn-list--center > .btn { + display: block; + margin: 2.5rem auto 2rem auto; +} + +.btn.btn--large { + width: 100%; + padding: 0.3rem 1rem; + font-size: 1.8rem; } a.btn, input.btn, button.btn { color: #05111E; + font-size: 1.6rem; text-decoration: none; - padding: 0.1rem 0rem; + padding: 0.1rem 1.5rem; border-radius: 300px; text-align: center; text-shadow: none !important; - min-width: 10rem; - font-weight: 800; + min-width: 12rem; + font-weight: 700; line-height: 1.3; margin-right: 15px; + border: none; + cursor: pointer; } a.btn:last-child, input.btn:last-child, button.btn:last-child { @@ -398,6 +899,12 @@ a.btn:hover, input.btn:hover, button.btn:hover { color: #FFFFFF; } +a.btn:focus, input.btn:focus, button.btn:focus { + -webkit-box-shadow: 0 0 0 4px #662D91 !important; + box-shadow: 0 0 0 4px #662D91 !important; + outline: none; +} + .btn--green { display: inline-block; background: #1eb49c; @@ -434,10 +941,44 @@ a.btn:hover, input.btn:hover, button.btn:hover { background: #006580; } +.btn--grey { + display: inline-block; + background: #c6c7cc; + -webkit-box-shadow: 0 0 0 4px rgba(198, 199, 204, 0.5) !important; + box-shadow: 0 0 0 4px rgba(198, 199, 204, 0.5) !important; + text-shadow: none; +} + +.btn--grey:hover { + background: #b0b2b9; + -webkit-transition: all 0.3s ease; + transition: all 0.3s ease; +} + +.btn--grey:active { + background: #838590; +} + .btn-list { margin-top: 3rem; } +@media (min-width: 768px) { + .btn.btn--large { + padding: 0.4rem 0rem; + font-size: 2rem; + } + + .btn-list--center { + width: 60%; + } + + .btn-list--center > .btn { + display: block; + margin: 2.5rem auto 2rem auto; + } +} + @media (min-width: 768px) { .general-footer { position: fixed !important; @@ -641,6 +1182,14 @@ a.btn:hover, input.btn:hover, button.btn:hover { cursor: default; } +.tab-content .tab-pane { + display: none; +} + +.tab-content .tab-pane.active { + display: block; +} + .logo-area { background-image: url("../images/logo-area-bckgrd--sm.svg"); background-repeat: no-repeat; @@ -680,6 +1229,7 @@ a.btn:hover, input.btn:hover, button.btn:hover { width: 100vw; height: 25vw; max-height: 100px; + z-index: 1000; } .navigation-menu__list { @@ -1004,35 +1554,35 @@ a.btn:hover, input.btn:hover, button.btn:hover { background-color: #ffebeb; } -.post-info { +.profile-shortinfo { margin-bottom: 2rem; } -.post-info.post-info--group { - background: url(../images/post-info--group__background.svg) no-repeat left top; +.profile-shortinfo.profile-shortinfo--group { + background: url(../images/profile-shortinfo--group__background.svg) no-repeat left top; background-size: 5.7rem 8.3rem; } -.post-info.post-info--group .post-info__ilustration { +.profile-shortinfo.profile-shortinfo--group .profile-shortinfo__ilustration { width: 5.7rem; height: 8.3rem; margin-right: 1.7rem; float: left; } -.post-info.post-info--group img.responsive.post-info__picture--account { +.profile-shortinfo.profile-shortinfo--group img.responsive.profile-shortinfo__picture--account { margin-left: 0.5rem; margin-top: 0.6rem; } -.post-info.post-info--no-group { +.profile-shortinfo.profile-shortinfo--no-group { display: -webkit-box; display: -ms-flexbox; display: flex; background: none; } -.post-info.post-info--no-group .post-info__ilustration { +.profile-shortinfo.profile-shortinfo--no-group .profile-shortinfo__ilustration { width: 5.6rem; height: 5.6rem; margin-right: 1.7rem; @@ -1043,30 +1593,30 @@ a.btn:hover, input.btn:hover, button.btn:hover { border: solid 5px rgba(255, 57, 127, 0.5); } -.post-info.post-info--no-group .post-info__action { +.profile-shortinfo.profile-shortinfo--no-group .profile-shortinfo__action { -webkit-box-flex: 0; -ms-flex: 0 0 5.6rem; flex: 0 0 5.6rem; } -.post-info.post-info--no-group img.responsive.post-info__picture--account { +.profile-shortinfo.profile-shortinfo--no-group img.responsive.profile-shortinfo__picture--account { margin-left: 0rem; margin-top: 0rem; } -.post-info.post-info--no-group .post-info__link.post-info__link--account { +.profile-shortinfo.profile-shortinfo--no-group .profile-shortinfo__link.profile-shortinfo__link--account { margin-left: 0rem; margin-top: 0rem; } -.post-info img.responsive.post-info__picture--account { +.profile-shortinfo img.responsive.profile-shortinfo__picture--account { width: 4.6rem; height: 4.6rem; border-radius: 100px; display: block; } -.post-info img.responsive.post-info__picture--group { +.profile-shortinfo img.responsive.profile-shortinfo__picture--group { margin-left: 3rem; margin-top: 5px; width: 2rem; @@ -1075,27 +1625,27 @@ a.btn:hover, input.btn:hover, button.btn:hover { display: block; } -.post-info .post-info__link { +.profile-shortinfo .profile-shortinfo__link { text-shadow: none; -webkit-box-shadow: none; box-shadow: none; } -.post-info .post-info__link img.responsive.post-info__picture--account { +.profile-shortinfo .profile-shortinfo__link img.responsive.profile-shortinfo__picture--account { margin-left: 0; margin-top: 0; width: calc(4.6rem - 4px); height: calc(4.6rem - 4px); } -.post-info .post-info__link img.responsive.post-info__picture--group { +.profile-shortinfo .profile-shortinfo__link img.responsive.profile-shortinfo__picture--group { margin-left: 0; margin-top: 0; width: calc(2rem - 2px); height: calc(2rem - 2px); } -.post-info .post-info__link--group { +.profile-shortinfo .profile-shortinfo__link--group { border-radius: 100px; border: solid 1px #ff397f; -webkit-transition: border 0.2s; @@ -1109,7 +1659,7 @@ a.btn:hover, input.btn:hover, button.btn:hover { transition: border 0.2s; } -.post-info .post-info__link--group:hover, .post-info .post-info__link--group:focus { +.profile-shortinfo .profile-shortinfo__link--group:hover, .profile-shortinfo .profile-shortinfo__link--group:focus { text-shadow: none; -webkit-box-shadow: none; box-shadow: none; @@ -1120,11 +1670,11 @@ a.btn:hover, input.btn:hover, button.btn:hover { transition: border 0.2s; } -.post-info .post-info__link--group:hover img, .post-info .post-info__link--group:focus img { +.profile-shortinfo .profile-shortinfo__link--group:hover img, .profile-shortinfo .profile-shortinfo__link--group:focus img { opacity: 0.6; } -.post-info .post-info__link--account { +.profile-shortinfo .profile-shortinfo__link--account { border-radius: 100px; border: solid 2px #ff397f; -webkit-transition: border 0.2s; @@ -1136,7 +1686,7 @@ a.btn:hover, input.btn:hover, button.btn:hover { margin-top: 0.6rem; } -.post-info .post-info__link--account:hover, .post-info .post-info__link--account:focus { +.profile-shortinfo .profile-shortinfo__link--account:hover, .profile-shortinfo .profile-shortinfo__link--account:focus { text-shadow: none; -webkit-box-shadow: none; box-shadow: none; @@ -1147,16 +1697,16 @@ a.btn:hover, input.btn:hover, button.btn:hover { transition: border 0.2s; } -.post-info .post-info__link--account:hover img, .post-info .post-info__link--account:focus img { +.profile-shortinfo .profile-shortinfo__link--account:hover img, .profile-shortinfo .profile-shortinfo__link--account:focus img { opacity: 0.6; } -.post-info__details { +.profile-shortinfo__details { float: left; width: calc(100% - 7.4rem); } -.post-info__details .post-info__author { +.profile-shortinfo__details .profile-shortinfo__author { font-size: 2rem; font-weight: 700; color: #515155; @@ -1164,7 +1714,7 @@ a.btn:hover, input.btn:hover, button.btn:hover { padding: 0.2rem 0 0 0; } -.post-info__details .post-info__author .post-info__account-link { +.profile-shortinfo__details .profile-shortinfo__author .profile-shortinfo__account-link { text-shadow: none; -webkit-box-shadow: none; box-shadow: none; @@ -1172,14 +1722,14 @@ a.btn:hover, input.btn:hover, button.btn:hover { color: #515155; } -.post-info__details .post-info__author .post-info__account-link:hover { +.profile-shortinfo__details .profile-shortinfo__author .profile-shortinfo__account-link:hover { color: #662D91; text-shadow: 0 2px 0 #FFFFFF, 0 3px 0 #FFFFFF, 1px 2px 0 #FFFFFF, -1px 2px 0 #FFFFFF; -webkit-box-shadow: 0 1px 0 0 #662D91; box-shadow: 0 1px 0 0 #662D91; } -.post-info__details .post-info__metadata { +.profile-shortinfo__details .profile-shortinfo__metadata { margin-top: 0.2rem; line-height: 1.4; } @@ -1535,42 +2085,3 @@ a.share--email { } /*# sourceMappingURL=style.css.map */ - - - -/** - * @file - * Visual styles for tabs. - */ - -div.tabs { - margin: 1em 0; -} -ul.tabs { - list-style: none; - margin: 0 0 0.5em; - padding: 0; -} -.tabs > li { - display: inline-block; - margin-right: 0.3em; /* LTR */ -} -[dir="rtl"] .tabs > li { - margin-left: 0.3em; - margin-right: 0; -} -.tabs a { - display: block; - padding: 0.2em 1em; - text-decoration: none; -} -.tabs a.is-active { - background-color: #eee; -} -.tabs a:focus, -.tabs a:hover { - background-color: #f5f5f5; -} - - -/*# sourceMappingURL=style.css.map */ diff --git a/funkywave.theme b/funkywave.theme index 7b4359b..527a4e1 100644 --- a/funkywave.theme +++ b/funkywave.theme @@ -37,9 +37,9 @@ function funkywave_preprocess_node(&$variables) { ] ); - $variables['ngf_group_container_class'] = 'post-info--no-group'; + $variables['ngf_group_container_class'] = 'profile-shortinfo--no-group'; if (isset($node->group) && $group = $node->group) { - $variables['ngf_group_container_class'] = 'post-info--group'; + $variables['ngf_group_container_class'] = 'profile-shortinfo--group'; if (!$group->field_ngf_cover_image->isEmpty()) { $media_id = $group->get('field_ngf_cover_image')->target_id; @@ -49,7 +49,7 @@ function funkywave_preprocess_node(&$variables) { '#theme' => 'image_style', '#style_name' => 'thumbnail', '#uri' => $media_entity->get('field_media_image')->entity->getFileUri(), - '#attributes' => ['class' => ['post-info__picture post-info__picture--group responsive']] + '#attributes' => ['class' => ['profile-shortinfo__picture profile-shortinfo__picture--group responsive']] ]; $link_render = [ @@ -58,7 +58,7 @@ function funkywave_preprocess_node(&$variables) { '#url' => $group->toUrl(), '#attributes' => [ 'class' => [ - 'post-info__link post-info__link--group' + 'profile-shortinfo__link profile-shortinfo__link--group' ] ] ]; @@ -77,7 +77,7 @@ function funkywave_preprocess_node(&$variables) { } $variables['ngf_context_text'] = t( - 'Posted @created_date ago in ', + 'Posted @created_date ago in @group_title', [ '@created_date' => \Drupal::service('date.formatter')->formatTimeDiffSince($node->created->value), ':group_url' => $group->url(), @@ -120,7 +120,7 @@ function funkywave_preprocess_group(&$variables) { ]; if ($group->getGroupType()->id() == 'ngf_discussion_group' && in_array($view_mode, $display_modes)) { - $variables['ngf_group_container_class'] = 'post-info--no-group'; + $variables['ngf_group_container_class'] = 'profile-shortinfo--no-group'; if ($group->field_ngf_group_visibility->value == NGF_GROUP_PUBLIC) { $variables['ngf_context_text'] = t('Public group'); } diff --git a/images/profile-shortinfo--group__background.svg b/images/profile-shortinfo--group__background.svg new file mode 100644 index 0000000..0052f17 --- /dev/null +++ b/images/profile-shortinfo--group__background.svg @@ -0,0 +1,11 @@ + + + + + + diff --git a/patterns/post_info/pattern-postinfo.html.twig b/patterns/post_info/pattern-postinfo.html.twig deleted file mode 100644 index 7b75b26..0000000 --- a/patterns/post_info/pattern-postinfo.html.twig +++ /dev/null @@ -1,37 +0,0 @@ -{# -/** -* @file -* post info pattern. -*/ -#} - diff --git a/patterns/post_info/_postinfo.scss b/patterns/profile-shortinfo/_profile-shortinfo.scss similarity index 100% rename from patterns/post_info/_postinfo.scss rename to patterns/profile-shortinfo/_profile-shortinfo.scss diff --git a/patterns/post_info/backup_pattern-postinfo.html.twig b/patterns/profile-shortinfo/backup_pattern-postinfo.html.twig similarity index 100% rename from patterns/post_info/backup_pattern-postinfo.html.twig rename to patterns/profile-shortinfo/backup_pattern-postinfo.html.twig diff --git a/patterns/profile-shortinfo/pattern-profile-shortinfo.html.twig b/patterns/profile-shortinfo/pattern-profile-shortinfo.html.twig new file mode 100644 index 0000000..c2b46cb --- /dev/null +++ b/patterns/profile-shortinfo/pattern-profile-shortinfo.html.twig @@ -0,0 +1,37 @@ +{# +/** +* @file +* post info pattern. +*/ +#} +
    +
    + {% if logged_in %} + + {% endif %} + + {{ subpic }} +
    +
    +

    + {% if logged_in %} + + {% else %} + {{ title }} + {% endif %} +

    + {% if context_text %} + + {% endif %} +
    +
    diff --git a/patterns/post_info/postinfo-new.ui_patterns.yml b/patterns/profile-shortinfo/postinfo-new.ui_patterns.yml similarity index 100% rename from patterns/post_info/postinfo-new.ui_patterns.yml rename to patterns/profile-shortinfo/postinfo-new.ui_patterns.yml diff --git a/patterns/post_info/postinfo.ui_patterns.yml b/patterns/profile-shortinfo/profile-shortinfo.ui_patterns.yml similarity index 100% rename from patterns/post_info/postinfo.ui_patterns.yml rename to patterns/profile-shortinfo/profile-shortinfo.ui_patterns.yml diff --git a/templates/content/group--ngf-discussion-group.html.twig b/templates/content/group--ngf-discussion-group.html.twig index 4dc8a25..6325c50 100644 --- a/templates/content/group--ngf-discussion-group.html.twig +++ b/templates/content/group--ngf-discussion-group.html.twig @@ -54,7 +54,7 @@ {#}#} {#%}#} - {% include "@patterns/post_info/pattern-postinfo.html.twig" + {% include "@patterns/profile-shortinfo/pattern-profile-shortinfo.html.twig" with { title: group.label(), image_url: file_url(group.field_media_image.entity.uri.value|image_style('thumbnail')), diff --git a/templates/content/group--ngf-event.html.twig b/templates/content/group--ngf-event.html.twig index 1fbb99d..aa7bd10 100644 --- a/templates/content/group--ngf-event.html.twig +++ b/templates/content/group--ngf-event.html.twig @@ -54,7 +54,7 @@ {#}#} {#%}#} - {% include "@patterns/post_info/pattern-postinfo.html.twig" + {% include "@patterns/profile-shortinfo/pattern-profile-shortinfo.html.twig" with { title: group.label(), image_url: file_url(group.field_media_image.entity.uri.value|image_style('thumbnail')), diff --git a/templates/content/node--ngf-discussion.html.twig b/templates/content/node--ngf-discussion.html.twig index 3e77c39..0b1c0e5 100644 --- a/templates/content/node--ngf-discussion.html.twig +++ b/templates/content/node--ngf-discussion.html.twig @@ -98,7 +98,7 @@ {#block postinfo #} {% block postinfo %} - {% include "@patterns/post_info/pattern-postinfo.html.twig" + {% include "@patterns/profile-shortinfo/pattern-profile-shortinfo.html.twig" with { image_url: file_url(node.uid.entity.user_picture.entity.uri.value|image_style('thumbnail')), title: node.owner.full_name.value, diff --git a/templates/group/group--ngf-discussion-group--teaser.html.twig b/templates/group/group--ngf-discussion-group--teaser.html.twig index d897048..b73ebfa 100644 --- a/templates/group/group--ngf-discussion-group--teaser.html.twig +++ b/templates/group/group--ngf-discussion-group--teaser.html.twig @@ -40,7 +40,7 @@ */ #} -{% include "@patterns/post_info/pattern-postinfo.html.twig" +{% include "@patterns/profile-shortinfo/pattern-profile-shortinfo.html.twig" with { image_url: file_url(content.field_ngf_cover_image|field_target_entity.field_media_image.entity.uri.value|image_style('thumbnail')), title: label, From cf3e6d0d4e017912a0b5041e2d6db3c7390fff3d Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Thu, 7 Jun 2018 10:00:12 +0200 Subject: [PATCH 066/200] NGF-215: class added to header element in group and user --- css/style.css | 129 ++++++++++++------ ...up--ngf-discussion-group--header.html.twig | 2 +- templates/user/user.html.twig | 6 +- 3 files changed, 89 insertions(+), 48 deletions(-) diff --git a/css/style.css b/css/style.css index 71de613..4f448be 100644 --- a/css/style.css +++ b/css/style.css @@ -73,7 +73,7 @@ a:not(.toolbar-item):hover { main { margin-top: -36px; - padding: 0px 0px 75px; + padding: 0px 15px 75px 15px; min-height: 100vh; } @@ -99,7 +99,7 @@ main *:not(img):not(svg)::selection { margin-left: 33%; width: 66%; padding-top: 75px; - padding: 75px 0px 0px; + padding: 75px 15px 0px 15px; } } @@ -520,7 +520,7 @@ form .form__block--toggle .label-text, .form .form__block--toggle .label-text { margin: 0 0 0.8rem 0; } -.list--flex-space-evenly, .profile > header .profile__networks, .profile > header .profile__actions { +.list--flex-space-evenly, header.profile .profile__networks, header.profile .profile__actions { display: -webkit-box; display: -ms-flexbox; display: flex; @@ -979,6 +979,42 @@ a.btn:focus, input.btn:focus, button.btn:focus { } } +.sub-section--comments h3 { + margin-bottom: 2rem; +} + +.sub-section--comments > ul { + padding: 0; + margin: 0; +} + +.sub-section--comments li { + list-style: none; +} + +.sub-section--comments .profile-shortinfo { + margin-bottom: -2rem; +} + +.sub-section--comments .profile-shortinfo ~ p { + border-left: solid 2px #CCC; + padding-left: 1.5rem; +} + +.sub-section--comments .profile-shortinfo ~ p + p { + border-left: solid 2px #CCC; + padding-left: 1.5rem; + margin-top: -1.6rem; + padding-top: 1.6rem; +} + +.sub-section--comments ul ul { + border-left: solid 2px #CCC; + padding-left: 1.5rem; + margin-top: -1.6rem; + padding-top: 1.6rem; +} + @media (min-width: 768px) { .general-footer { position: fixed !important; @@ -1739,24 +1775,29 @@ a.btn:focus, input.btn:focus, button.btn:focus { margin-top: 30px; } -.profile { - padding-left: 0; - padding-right: 0; -} - -.profile > header { +header.profile { text-align: center; padding-left: 15px; padding-right: 15px; } -.profile > header .profile__pic { +header.profile ~ .inpage-nav { + margin-left: -15px; + margin-right: -15px; +} + +header.profile ~ .newsfeed { + margin-left: -15px; + margin-right: -15px; +} + +header.profile .profile__pic { width: 100%; height: 100%; border-radius: 300px; } -.profile > header a.profile__pic__link { +header.profile a.profile__pic__link { display: block; width: 100px; height: 100px; @@ -1771,23 +1812,23 @@ a.btn:focus, input.btn:focus, button.btn:focus { text-decoration: none; } -.profile > header a.profile__pic__link:hover { +header.profile a.profile__pic__link:hover { text-shadow: none; -webkit-box-shadow: none; box-shadow: none; background-color: #662D91; } -.profile > header a.profile__pic__link:hover .profile__pic { +header.profile a.profile__pic__link:hover .profile__pic { opacity: 0.8; } -.profile > header h2 { +header.profile h2 { margin-bottom: 0rem; color: #26252B; } -.profile > header h2 a { +header.profile h2 a { font-weight: 600; color: #26252B; text-shadow: none; @@ -1797,16 +1838,16 @@ a.btn:focus, input.btn:focus, button.btn:focus { transition: all .2s ease; } -.profile > header h2 + h4 { +header.profile h2 + h4 { margin-top: 0.4rem; } -.profile > header h2 + h4 a { +header.profile h2 + h4 a { color: #515155; font-weight: 600; } -.profile > header .profile__link--about { +header.profile .profile__link--about { display: inline-block; margin-bottom: 1.8rem; font-size: 1.4rem; @@ -1815,25 +1856,25 @@ a.btn:focus, input.btn:focus, button.btn:focus { transition: margin .2s; } -.profile > header .profile__link--about i, .profile > header .profile__link--about svg { +header.profile .profile__link--about i, header.profile .profile__link--about svg { margin-left: 0rem; -webkit-transition: margin .2s; transition: margin .2s; } -.profile > header .profile__link--about:hover { +header.profile .profile__link--about:hover { margin-left: 0.5rem; -webkit-transition: margin .2s; transition: margin .2s; } -.profile > header .profile__link--about:hover i, .profile > header .profile__link--about:hover svg { +header.profile .profile__link--about:hover i, header.profile .profile__link--about:hover svg { margin-left: 0.5rem; -webkit-transition: margin .2s; transition: margin .2s; } -.profile > header .profile__link--back { +header.profile .profile__link--back { display: inline-block; margin-bottom: 1.8rem; font-size: 1.4rem; @@ -1842,40 +1883,40 @@ a.btn:focus, input.btn:focus, button.btn:focus { transition: margin .2s; } -.profile > header .profile__link--back i, .profile > header .profile__link--back svg { +header.profile .profile__link--back i, header.profile .profile__link--back svg { margin-right: 0rem; -webkit-transition: margin .2s; transition: margin .2s; } -.profile > header .profile__link--back:hover { +header.profile .profile__link--back:hover { margin-right: 0.5rem; -webkit-transition: margin .2s; transition: margin .2s; } -.profile > header .profile__link--back:hover i, .profile > header .profile__link--back:hover svg { +header.profile .profile__link--back:hover i, header.profile .profile__link--back:hover svg { margin-right: 0.5rem; -webkit-transition: margin .2s; transition: margin .2s; } -.profile > header .profile__meta, .profile > header .profile__location { +header.profile .profile__meta, header.profile .profile__location { padding: 0; margin: 0; } -.profile > header .profile__location { +header.profile .profile__location { margin-top: 1.8rem; } -.profile > header .profile__location li::after { +header.profile .profile__location li::after { display: inline-block; content: "|"; padding: 0 1rem; } -.profile > header .profile__meta li, .profile > header .profile__location li { +header.profile .profile__meta li, header.profile .profile__location li { font-weight: bold; line-height: 1.5; color: #515155; @@ -1883,35 +1924,35 @@ a.btn:focus, input.btn:focus, button.btn:focus { list-style: none; } -.profile > header .profile__location li { +header.profile .profile__location li { font-weight: 500; display: inline-block; } -.profile > header .profile__meta li::after, .profile > header .profile__meta li::before { +header.profile .profile__meta li::after, header.profile .profile__meta li::before { display: inline-block; content: "—"; padding: 0 1.5rem; } -.profile > header .profile__networks, .profile > header .profile__actions { +header.profile .profile__networks, header.profile .profile__actions { margin: 0; padding: 1rem 0; border-bottom: solid 1px #dfe0e5; } -.profile > header .profile__networks.active { +header.profile .profile__networks.active { border-bottom: none; } -.profile > header .profile__networks li, .profile > header .profile__actions li { +header.profile .profile__networks li, header.profile .profile__actions li { list-style: none; -webkit-box-flex: 1; -ms-flex-positive: 1; flex-grow: 1; } -.profile > header .profile__networks li a.active, .profile > header .profile__actions li a.active { +header.profile .profile__networks li a.active, header.profile .profile__actions li a.active { text-shadow: none; -webkit-box-shadow: none; box-shadow: none; @@ -1920,7 +1961,7 @@ a.btn:focus, input.btn:focus, button.btn:focus { cursor: auto; } -.profile > header .profile__actions a { +header.profile .profile__actions a { text-align: center; display: block; text-shadow: none; @@ -1934,11 +1975,11 @@ a.btn:focus, input.btn:focus, button.btn:focus { margin: auto; } -.profile > header .profile__actions a:hover { +header.profile .profile__actions a:hover { background-color: #edeff5; } -.profile > header .profile__actions a:before { +header.profile .profile__actions a:before { content: ""; display: block; width: 38px; @@ -1948,32 +1989,32 @@ a.btn:focus, input.btn:focus, button.btn:focus { background-size: 76px 35px; } -.profile > header .profile__actions a.profile__actions--join:before { +header.profile .profile__actions a.profile__actions--join:before { background-image: url(../images/profile--action__join-sprite.svg); background-position: 0 0; } -.profile > header .profile__actions a.profile__actions--leave:before { +header.profile .profile__actions a.profile__actions--leave:before { background-image: url(../images/profile--action__join-sprite.svg); background-position: -38px 0; } -.profile > header .profile__actions a.profile__actions--follow:before { +header.profile .profile__actions a.profile__actions--follow:before { background-image: url(../images/profile--action__follow-sprite.svg); background-position: 0 0; } -.profile > header .profile__actions a.profile__actions--unfollow:before { +header.profile .profile__actions a.profile__actions--unfollow:before { background-image: url(../images/profile--action__follow-sprite.svg); background-position: -38px 0; } -.profile > header .profile__actions a.profile__actions--contact:before { +header.profile .profile__actions a.profile__actions--contact:before { background-image: url(../images/profile--action__contact-sprite.svg); background-position: 0 0; } -.profile > header .profile__actions a.profile__actions--add2list:before { +header.profile .profile__actions a.profile__actions--add2list:before { background-image: url(../images/profile--action__add2list-sprite.svg); background-position: 0 0; } diff --git a/templates/group/group--ngf-discussion-group--header.html.twig b/templates/group/group--ngf-discussion-group--header.html.twig index 3619073..379a2f3 100644 --- a/templates/group/group--ngf-discussion-group--header.html.twig +++ b/templates/group/group--ngf-discussion-group--header.html.twig @@ -40,7 +40,7 @@ */ #} -
    +
    {% include "@patterns/profile_header/pattern-profileheader.html.twig" with { diff --git a/templates/user/user.html.twig b/templates/user/user.html.twig index 443e248..11525d9 100644 --- a/templates/user/user.html.twig +++ b/templates/user/user.html.twig @@ -16,8 +16,8 @@ * @see template_preprocess_user() */ #} - -
    + +
    {% set first_name = content.field_ngf_first_name|field_raw.value %} {% set last_name = content.field_ngf_last_name|field_raw.value %} @@ -38,4 +38,4 @@
- + From aeeba1ab4e5f29b85750802cfe594c2999f1617d Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Wed, 30 May 2018 16:22:14 +0200 Subject: [PATCH 067/200] Reapply changes for group header commit 6919fc --- .../pattern-profile-actions.html.twig | 21 ++++++ .../pattern-profileheader-top.html.twig | 28 ++++++++ .../pattern-profile-meta.html.twig | 12 ++++ .../pattern-profile-networks.html.twig | 18 +++++ ...up--ngf-discussion-group--header.html.twig | 66 ++++++++++++------- 5 files changed, 122 insertions(+), 23 deletions(-) create mode 100644 patterns/profile_actions/pattern-profile-actions.html.twig create mode 100644 patterns/profile_header_top/pattern-profileheader-top.html.twig create mode 100644 patterns/profile_meta/pattern-profile-meta.html.twig create mode 100644 patterns/profile_networks/pattern-profile-networks.html.twig diff --git a/patterns/profile_actions/pattern-profile-actions.html.twig b/patterns/profile_actions/pattern-profile-actions.html.twig new file mode 100644 index 0000000..0ef2944 --- /dev/null +++ b/patterns/profile_actions/pattern-profile-actions.html.twig @@ -0,0 +1,21 @@ +{# +/** + * @file + * profile actions pattern. + */ +#} + + \ No newline at end of file diff --git a/patterns/profile_header_top/pattern-profileheader-top.html.twig b/patterns/profile_header_top/pattern-profileheader-top.html.twig new file mode 100644 index 0000000..dd285af --- /dev/null +++ b/patterns/profile_header_top/pattern-profileheader-top.html.twig @@ -0,0 +1,28 @@ +{# +/** + * @file + * post info pattern. + */ +#} + + +{% if profile_uri %} + + {{ profile_title }} + +{% endif %} + +{% if profile_title %} +

{{ profile_title }}

+{% endif %} + +{% if profile_uri_more %} + {% trans %} Learn more {% endtrans %}{% trans %} about {% endtrans %}{{ profile_title }} + +{% endif %} + +{% if profile_uri_back %} + {% trans %}Back to profile page {% endtrans %}{% trans %} of {% endtrans %} {{ profile_title }} + +{% endif %} + diff --git a/patterns/profile_meta/pattern-profile-meta.html.twig b/patterns/profile_meta/pattern-profile-meta.html.twig new file mode 100644 index 0000000..42bc977 --- /dev/null +++ b/patterns/profile_meta/pattern-profile-meta.html.twig @@ -0,0 +1,12 @@ +{# +/** + * @file + * profile meta pattern. + */ +#} + +{% if profile_meta %} +
    +
  • {{ profile_meta }}
  • +
+{% endif %} \ No newline at end of file diff --git a/patterns/profile_networks/pattern-profile-networks.html.twig b/patterns/profile_networks/pattern-profile-networks.html.twig new file mode 100644 index 0000000..9573be8 --- /dev/null +++ b/patterns/profile_networks/pattern-profile-networks.html.twig @@ -0,0 +1,18 @@ +{# +/** + * @file + * profile networks pattern. + */ +#} + + \ No newline at end of file diff --git a/templates/group/group--ngf-discussion-group--header.html.twig b/templates/group/group--ngf-discussion-group--header.html.twig index 379a2f3..c8f1ef9 100644 --- a/templates/group/group--ngf-discussion-group--header.html.twig +++ b/templates/group/group--ngf-discussion-group--header.html.twig @@ -42,30 +42,50 @@
-{% include "@patterns/profile_header/pattern-profileheader.html.twig" - with { - group_pic_uri: file_url(content.field_ngf_cover_image|field_target_entity.field_media_image.entity.uri.value|image_style('thumbnail')), - group_name: label, - group_profile_uri: url, - group_profile_uri_back: 'todo', - action_contact: 'todo contact', - group_action_contact_uri: 'todo', - group_action_join: content.join_follow['#items']['group-join']['#title'], - group_action_join_uri: content.join_follow['#items']['group-join']['#url'], - group_action_leave: content.join_follow['#items']['group-leave']['#title'], - group_action_leave_uri: content.join_follow['#items']['group-leave']['#url'], - group_action_follow: content.join_follow['#items']['group-follow'], - group_profile_members: content.members_followers['#items']['members']['#title'], - group_profile_members_uri: content.members_followers['#items']['members']['#url'], - group_profile_followers: content.members_followers['#items']['followers']['#title'], - group_profile_followers_uri: content.members_followers['#items']['followers']['#url'], - group_profile_subgroups: 'todo subgroups', - group_profile_subgroups_uri: 'todo', - group_visibility: content.field_ngf_group_visibility[0], - } -%} + {# profile header top #} -
+ {% include '@patterns/profile_header_top/pattern-profileheader-top.html.twig' + with { + profile_pic_uri: file_url(content.field_ngf_cover_image|field_target_entity.field_media_image.entity.uri.value|image_style('thumbnail')), + profile_title: label, + profile_uri: url, + profile_uri_back: 'todo', + } + only %} + {# profile meta #} + + {% include '@patterns/profile_meta/pattern-profile-meta.html.twig' + with { + profile_meta: content.field_ngf_group_visibility[0], + } + only %} + {# profile actions #} + + {% include '@patterns/profile_actions/pattern-profile-actions.html.twig' + with { + action_contact: 'todo contact', + action_contact_uri: 'todo', + action_join: content.join_follow['#items']['group-join']['#title'], + action_join_uri: content.join_follow['#items']['group-join']['#url'], + action_leave: content.join_follow['#items']['group-leave']['#title'], + action_leave_uri: content.join_follow['#items']['group-leave']['#url'], + action_follow: content.join_follow['#items']['group-follow'], + } + only %} + {# profile networks #} + + {% include "@patterns/profile_networks/pattern-profile-networks.html.twig" + with { + profile_members: content.members_followers['#items']['members']['#title'], + profile_members_uri: content.members_followers['#items']['members']['#url'], + profile_followers: content.members_followers['#items']['followers']['#title'], + profile_followers_uri: content.members_followers['#items']['followers']['#url'], + profile_subgroups: 'todo subgroups', + profile_subgroups_uri: 'todo', + } + only %} + +
From 969e8da8b0cd828caf11afa2ee591be7081b8298 Mon Sep 17 00:00:00 2001 From: Nikolay Lobachev Date: Fri, 8 Jun 2018 16:29:14 +0200 Subject: [PATCH 068/200] Add classes for event. Add ngf follow up in preprocessing. Display related content --- funkywave.theme | 2 ++ templates/content/node--ngf-discussion.html.twig | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/funkywave.theme b/funkywave.theme index 527a4e1..718aa42 100644 --- a/funkywave.theme +++ b/funkywave.theme @@ -24,6 +24,7 @@ function funkywave_preprocess_node(&$variables) { 'teaser', 'ngf_teaser_user_commented', 'ngf_teaser_user_created', + 'ngf_follow_up', ]; if (in_array($view_mode, $display_modes) @@ -112,6 +113,7 @@ function funkywave_preprocess_group(&$variables) { if ($variables['view_mode'] == 'full' && $group->getGroupType()->id() == 'ngf_event') { // This is needed so the group name is printed along with {{content}}. $variables['content']['label']['#printed'] = FALSE; + $variables['ngf_group_container_class'] = 'profile-shortinfo--group'; } $display_modes = [ diff --git a/templates/content/node--ngf-discussion.html.twig b/templates/content/node--ngf-discussion.html.twig index 0b1c0e5..cf4f29e 100644 --- a/templates/content/node--ngf-discussion.html.twig +++ b/templates/content/node--ngf-discussion.html.twig @@ -122,7 +122,7 @@ {{ content.field_ngf_description }} {% block related_content %} - + {{ content.related_content }} {% endblock related_content %} {# load a view with related content #} {% block related_topics %} @@ -167,4 +167,5 @@ {% endblock related_topics %} + \ No newline at end of file From 6fb62af2ab6731c900c1134cfffb86f0d9670217 Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Fri, 8 Jun 2018 18:18:51 +0200 Subject: [PATCH 069/200] NGF-208: changes for events --- css/style.css | 90 ++++++++++---- funkywave.theme | 10 +- patterns/button/pattern-button.html.twig | 5 +- templates/content/group--ngf-event.html.twig | 114 ++++++++++++++---- .../content/node--ngf-discussion.html.twig | 16 ++- templates/field/show-more-link.html.twig | 3 + .../views/views-view-unformatted.html.twig | 23 ++++ 7 files changed, 207 insertions(+), 54 deletions(-) create mode 100644 templates/field/show-more-link.html.twig create mode 100644 templates/views/views-view-unformatted.html.twig diff --git a/css/style.css b/css/style.css index 4f448be..d1ae980 100644 --- a/css/style.css +++ b/css/style.css @@ -497,29 +497,33 @@ form .form__block--toggle .label-text, .form .form__block--toggle .label-text { width: 100%; } -.list--file { +.list--file, .list--event { padding: 0; } -.list--file .list__item--file { +.list--file .list__item--file, .list--file .list__item--event, .list--event .list__item--file, .list--event .list__item--event { list-style: none; background: transparent no-repeat left top; background-size: 32px 38px; padding-left: 45px; } -.list--file .list__item--file.list__item--pdf { +.list--file .list__item--file.list__item--pdf, .list--file .list__item--event.list__item--pdf, .list--event .list__item--file.list__item--pdf, .list--event .list__item--event.list__item--pdf { background-image: url(../images/file--pdf.jpg); } -.list--file .list__item--file.list__item--url { +.list--file .list__item--file.list__item--url, .list--file .list__item--event.list__item--url, .list--event .list__item--file.list__item--url, .list--event .list__item--event.list__item--url { background-image: url(../images/file--url.jpg); } -.list--file .list__item--file p { +.list--file .list__item--file p, .list--file .list__item--event p, .list--event .list__item--file p, .list--event .list__item--event p { margin: 0 0 0.8rem 0; } +.list--file .list__item--event, .list--event .list__item--event { + background-image: url(../images/article--event-icon.svg); +} + .list--flex-space-evenly, header.profile .profile__networks, header.profile .profile__actions { display: -webkit-box; display: -ms-flexbox; @@ -979,8 +983,14 @@ a.btn:focus, input.btn:focus, button.btn:focus { } } -.sub-section--comments h3 { - margin-bottom: 2rem; +.sub-section--comments__title { + padding-left: 3.6rem; + min-height: 3.7rem; + margin-bottom: 0.7rem; + background-image: url(../images/article--comment-icon.svg); + background-position: 0.5rem 0; + background-repeat: no-repeat; + background-size: 2.38rem 2.5rem; } .sub-section--comments > ul { @@ -1015,6 +1025,21 @@ a.btn:focus, input.btn:focus, button.btn:focus { padding-top: 1.6rem; } +.sub-section--comments ul ul ul ul { + border-left: none; + padding-left: 0; +} + +.sub-section--comments .comment__link--reply { + padding-left: 2.6rem; + min-height: 3.7rem; + background-image: url(../images/article--comment-outline-icon.svg); + background-position: 0.5rem 0; + background-repeat: no-repeat; + background-size: 1.7rem 1.7rem; + text-decoration: none; +} + @media (min-width: 768px) { .general-footer { position: fixed !important; @@ -1476,6 +1501,10 @@ a.btn:focus, input.btn:focus, button.btn:focus { } } +.newsfeed:first-child { + margin: 0 -15px; +} + .newsfeed { background-color: #FFFFFF; text-align: left; @@ -1491,6 +1520,10 @@ a.btn:focus, input.btn:focus, button.btn:focus { padding-top: 5.5rem; } +.newsfeed .sub-section { + border-top: solid 1px #a6a7ab; +} + .newsfeed__item h2 { padding-left: 32px; background: transparent left top no-repeat; @@ -1523,12 +1556,17 @@ a.btn:focus, input.btn:focus, button.btn:focus { border-radius: 10px; } -.newsfeed__item--discussion h2 { +.newsfeed__item--ngf-discussion h2 { background-image: url(../images/article--discussion-icon.svg); background-size: 2.38rem 2.5rem; } -.newsfeed__item--draft h2 { +.newsfeed__item--ngf-event h2 { + background-image: url(../images/article--event-icon.svg); + background-size: 2.38rem 2.5rem; +} + +.newsfeed__item--unpublished h2 { background-image: url(../images/article--draft-icon.svg); background-size: 2.38rem 2.5rem; } @@ -1539,21 +1577,19 @@ a.btn:focus, input.btn:focus, button.btn:focus { padding-left: 25px; } -.newsfeed .sub-section { - border-top: solid 1px #a6a7ab; -} - -.newsfeed .newsfeed__item--short { +.newsfeed .newsfeed__item--teaser { background-image: url(../images/hr--wavy.svg); background-repeat: no-repeat; background-position: center top; padding: 7.5rem 15px 4rem 15px; background-size: 100% 40px; + margin-top: -30px; } -.newsfeed .newsfeed__item--short:first-child { +.newsfeed .newsfeed__item--teaser:first-child { padding-top: 4rem; background-image: none !important; + margin-top: 0px; } .newsfeed .newsfeed__item--pinned { @@ -1569,11 +1605,11 @@ a.btn:focus, input.btn:focus, button.btn:focus { text-shadow: 0 2px 0 #f0e7f7, 0 3px 0 #f0e7f7, 1px 2px 0 #f0e7f7, -1px 2px 0 #f0e7f7; } -.newsfeed .newsfeed__item--pinned.newsfeed__item--short:first-child { +.newsfeed .newsfeed__item--pinned.newsfeed__item--teaser:first-child { background-color: #f0e7f7; } -.newsfeed .newsfeed__item--draft { +.newsfeed .newsfeed__item--unpublished { color: #05111E; background-image: url(../images/hr--wavy.svg), -webkit-gradient(linear, left top, left bottom, color-stop(50%, #ffebeb), color-stop(50%, #ffebeb)); background-image: url(../images/hr--wavy.svg), linear-gradient(#ffebeb 50%, #ffebeb 50%); @@ -1582,11 +1618,11 @@ a.btn:focus, input.btn:focus, button.btn:focus { background-size: 100% 40px, 100% calc(100% - 28px); } -.newsfeed .newsfeed__item--draft > * a, .newsfeed .newsfeed__item--draft > * a:hover, .newsfeed .newsfeed__item--draft h2 a, .newsfeed .newsfeed__item--draft h2 a:hover { +.newsfeed .newsfeed__item--unpublished > * a, .newsfeed .newsfeed__item--unpublished > * a:hover, .newsfeed .newsfeed__item--unpublished h2 a, .newsfeed .newsfeed__item--unpublished h2 a:hover { text-shadow: 0 2px 0 #ffebeb, 0 3px 0 #ffebeb, 1px 2px 0 #ffebeb, -1px 2px 0 #ffebeb; } -.newsfeed .newsfeed__item--draft.newsfeed__item--short:first-child { +.newsfeed .newsfeed__item--unpublished.newsfeed__item--teaser:first-child { background-color: #ffebeb; } @@ -1771,14 +1807,14 @@ a.btn:focus, input.btn:focus, button.btn:focus { } .profile-listing { - padding: 0 15px; + padding: 0 0px; margin-top: 30px; } header.profile { text-align: center; - padding-left: 15px; - padding-right: 15px; + padding-left: 0px; + padding-right: 0px; } header.profile ~ .inpage-nav { @@ -2022,6 +2058,7 @@ header.profile .profile__actions a.profile__actions--add2list:before { .sub-section--related__title { padding-left: 3.6rem; min-height: 3.7rem; + margin-bottom: 0.7rem; } .sub-section--related__title--discussion { @@ -2125,4 +2162,13 @@ a.share--email { } } +.related-events h3 { + margin-bottom: 1rem; +} + +.related-events h3 a { + font-weight: 700; + font-size: 1.6rem; +} + /*# sourceMappingURL=style.css.map */ diff --git a/funkywave.theme b/funkywave.theme index 527a4e1..2cf00aa 100644 --- a/funkywave.theme +++ b/funkywave.theme @@ -109,9 +109,13 @@ function funkywave_preprocess_group(&$variables) { $group = $variables['group']; $view_mode = $variables['view_mode']; - if ($variables['view_mode'] == 'full' && $group->getGroupType()->id() == 'ngf_event') { - // This is needed so the group name is printed along with {{content}}. - $variables['content']['label']['#printed'] = FALSE; + if ($group->getGroupType()->id() == 'ngf_event') { + if ($variables['view_mode'] == 'full') { + // This is needed so the group name is printed along with {{content}}. + $variables['content']['label']['#printed'] = FALSE; + } + + $variables['ngf_group_container_class'] = 'profile-shortinfo--group'; } $display_modes = [ diff --git a/patterns/button/pattern-button.html.twig b/patterns/button/pattern-button.html.twig index 84df300..5dbb93d 100644 --- a/patterns/button/pattern-button.html.twig +++ b/patterns/button/pattern-button.html.twig @@ -4,4 +4,7 @@ * Button pattern. */ #} -{{ title }} + + \ No newline at end of file diff --git a/templates/content/group--ngf-event.html.twig b/templates/content/group--ngf-event.html.twig index aa7bd10..fd95f34 100644 --- a/templates/content/group--ngf-event.html.twig +++ b/templates/content/group--ngf-event.html.twig @@ -40,35 +40,47 @@ */ #} +{% + set classes = [ + 'newsfeed__item', + 'newsfeed__item--' ~ node.bundle|clean_class, + node.isPromoted() ? 'newsfeed__item--promoted', + node.isSticky() ? 'newsfeed__item--sticky', + not node.isPublished() ? 'node--unpublished newsfeed__item--unpublished', + view_mode ? 'newsfeed__item--' ~ view_mode|clean_class, + ] +%} + + +
+ + {% if not group %} +

+ {{ label }} +

+ {% else %} +

+ {{ label }} +

+ {% endif %} + {# block postinfo #} {% block postinfo %} - {#{% include "@patterns/post_info/pattern-postinfo.html.twig"#} - {#with {#} - {#author_pic_uri: file_url(group.uid.entity.user_picture.entity.uri.value|image_style('thumbnail')),#} - {#profile_name: group.uid.entity.name.value,#} - {#profile_uri: path('entity.user.canonical', {'user': user.id}),#} - {#creation_date: group.created.value|time_diff,#} - {#group_logo: file_url(content.field_ngf_cover_image|field_target_entity.field_media_image.entity.uri.value|image_style('thumbnail')),#} - {#group_name: 'todo',#} - {#login_check: logged_in,#} - {#}#} - {#%}#} - - {% include "@patterns/profile-shortinfo/pattern-profile-shortinfo.html.twig" - with { - title: group.label(), - image_url: file_url(group.field_media_image.entity.uri.value|image_style('thumbnail')), - url: path('entity.user.canonical', {'user': user.id}), - logged_in: logged_in, - context_text: ngf_context_text, - subpic: ngf_sub_picture, - container_class: ngf_group_container_class, - } - %} + {% include "@patterns/profile-shortinfo/pattern-profile-shortinfo.html.twig" + with { + title: group.uid.entity.name.value, + image_url: file_url(group.uid.entity.user_picture.entity.uri.value|image_style('thumbnail')), + context_text: ngf_context_text, + subpic: ngf_sub_picture, + container_class: ngf_group_container_class, + } + %} {% endblock postinfo %} {# end block postinfo #} +
+ {# block coverimage #} {% block coverimage %} @@ -98,8 +110,9 @@ {# Start date & end date the same #} -
-

{% trans %} When {% endtrans %}

+
+

{% trans %} Date and time {% endtrans %}

+

{% if event_end_date is null %} {% else %} @@ -120,5 +133,54 @@ {% endif %} {% endif %} +

+ + {% if content.field_ngf_address is not empty %} +
+

{% trans %} Location {% endtrans %}

+ {{ content.field_ngf_venue|field_raw('value') }} {{ content.field_ngf_address|field_value }} +
+ {% endif %}
- {% endblock eventdata %} \ No newline at end of file + + {% endblock eventdata %} + + {# Event Summary #} + {% block eventintrotext %} + {% if content.field_ngf_introtext is not empty %} + {{ content.field_ngf_introtext }} + {% endif %} + {% endblock eventintrotext %} + + {# Event Description #} + {% block eventdescritption %} + {% if content.field_ngf_description is not empty %} + {{ content.field_ngf_description }} + {% endif %} + {% endblock eventdescritption %} + + {# Event speakers #} + {% block eventspeakers %} + {# todo needs development #} + {% endblock eventspeakers %} + + + {# End Event speakers #} + + {# Event register #} + {% block eventregister %} + {% set event_registration_url = content.field_ngf_registration_link|field_raw('uri') %} + {% set event_registration_title = content.field_ngf_registration_link|field_raw('title') %} + {% if event_registration_url is not empty %} + {% include "@patterns/button/pattern-button.html.twig" + with{ + url: event_registration_url, + title: event_registration_title, + container_class: 'btn-list--center extra-space--top', + button_class: 'btn--blue btn--large', + } + %} + {% endif %} + {% endblock eventregister %} + + \ No newline at end of file diff --git a/templates/content/node--ngf-discussion.html.twig b/templates/content/node--ngf-discussion.html.twig index 0b1c0e5..5d58b77 100644 --- a/templates/content/node--ngf-discussion.html.twig +++ b/templates/content/node--ngf-discussion.html.twig @@ -78,7 +78,7 @@ node.isPromoted() ? 'newsfeed__item--promoted', node.isSticky() ? 'newsfeed__item--sticky', not node.isPublished() ? 'node--unpublished newsfeed__item--unpublished', - view_mode ? 'node--view-mode-' ~ view_mode|clean_class, + view_mode ? 'newsfeed__item--' ~ view_mode|clean_class, ] %} @@ -117,16 +117,26 @@ {% block coverimage %} {{ content.field_ngf_cover_image }} {% endblock coverimage %} +
+ {# Show more button (will only be printed in teaser view mode) #} + {{ content.field_ngf_introtext }} + + {# Show more button (will only be printed in teaser view mode) #} + {{ content.show_more }} + + {# Show description (paragraphs) #} {{ content.field_ngf_description }} - + {% block related_content %} {% endblock related_content %} {# load a view with related content #} {% block related_topics %} + + {# TODO {% include "@patterns/list/pattern-list.html.twig" @@ -148,6 +158,7 @@ {% set items = content.field_ngf_interests['#items'] %} {% set css_class = 'sub-section sub-section--related-taxonomy' %} + {% if items is not empty %}
{% if label is not empty %}

{{ label }}

@@ -164,6 +175,7 @@ {% endif %}
+ {% endif %} {% endblock related_topics %} diff --git a/templates/field/show-more-link.html.twig b/templates/field/show-more-link.html.twig new file mode 100644 index 0000000..dc70b93 --- /dev/null +++ b/templates/field/show-more-link.html.twig @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/templates/views/views-view-unformatted.html.twig b/templates/views/views-view-unformatted.html.twig new file mode 100644 index 0000000..da17c8c --- /dev/null +++ b/templates/views/views-view-unformatted.html.twig @@ -0,0 +1,23 @@ +{# +/** + * @file + * Theme override to display a view of unformatted rows. + * + * Available variables: + * - title: The title of this group of rows. May be empty. + * - rows: A list of the view's row items. + * - attributes: The row's HTML attributes. + * - content: The row's content. + * - view: The view object. + * - default_row_class: A flag indicating whether default classes should be + * used on rows. + * + * @see template_preprocess_views_view_unformatted() + */ +#} +{% if title %} +

{{ title }}

+{% endif %} +{% for row in rows %} + {{ row.content }} +{% endfor %} From cf5baf67a8ada2237a22b6bfa6028e697b1a89a2 Mon Sep 17 00:00:00 2001 From: Nikolay Lobachev Date: Mon, 11 Jun 2018 13:45:30 +0200 Subject: [PATCH 070/200] Add group context information for subgroups --- funkywave.theme | 108 +++++++++++++++++++++++++----------------------- 1 file changed, 57 insertions(+), 51 deletions(-) diff --git a/funkywave.theme b/funkywave.theme index 718aa42..1f80255 100644 --- a/funkywave.theme +++ b/funkywave.theme @@ -32,65 +32,69 @@ function funkywave_preprocess_node(&$variables) { $variables['ngf_sub_picture'] = NULL; $variables['ngf_context_text'] = t( - 'Posted @created_date ago', - [ + 'Posted @created_date ago', [ '@created_date' => \Drupal::service('date.formatter')->formatTimeDiffSince($node->created->value) - ] - ); + ]); $variables['ngf_group_container_class'] = 'profile-shortinfo--no-group'; if (isset($node->group) && $group = $node->group) { - $variables['ngf_group_container_class'] = 'profile-shortinfo--group'; - - if (!$group->field_ngf_cover_image->isEmpty()) { - $media_id = $group->get('field_ngf_cover_image')->target_id; - $media_entity = Media::load($media_id); - - $render = [ - '#theme' => 'image_style', - '#style_name' => 'thumbnail', - '#uri' => $media_entity->get('field_media_image')->entity->getFileUri(), - '#attributes' => ['class' => ['profile-shortinfo__picture profile-shortinfo__picture--group responsive']] - ]; - - $link_render = [ - '#title' => $render, - '#type' => 'link', - '#url' => $group->toUrl(), - '#attributes' => [ - 'class' => [ - 'profile-shortinfo__link profile-shortinfo__link--group' - ] - ] - ]; - $variables['ngf_sub_picture'] = $link_render; - } - - $visibility_icon = ''; - if ($group->field_ngf_group_visibility->value == NGF_GROUP_PUBLIC) { - $visibility_icon = 'fa fa-eye-slash'; - } - elseif ($group->field_ngf_group_visibility->value == NGF_GROUP_PRIVATE) { - $visibility_icon = 'fa fa-lock'; - } - elseif ($group->field_ngf_group_visibility->value == NGF_GROUP_SECRET) { - $visibility_icon = 'fa fa-lock'; - } - - $variables['ngf_context_text'] = t( - 'Posted @created_date ago in @group_title', - [ - '@created_date' => \Drupal::service('date.formatter')->formatTimeDiffSince($node->created->value), - ':group_url' => $group->url(), - '@group_title' => $group->label(), - ] - ) . ' '; + _funkywave_group_context($node, $node->group, $variables); } elseif ($view_mode == 'ngf_teaser_user_commented') { $variables['ngf_context_text'] = t('Commented'); } } } +function _funkywave_group_context($entity, $group, &$variables) { + $variables['ngf_group_container_class'] = 'profile-shortinfo--group'; + + if (!$group->field_ngf_cover_image->isEmpty()) { + $media_id = $group->get('field_ngf_cover_image')->target_id; + $media_entity = Media::load($media_id); + + $render = [ + '#theme' => 'image_style', + '#style_name' => 'thumbnail', + '#uri' => $media_entity->get('field_media_image')->entity->getFileUri(), + '#attributes' => ['class' => ['profile-shortinfo__picture profile-shortinfo__picture--group responsive']] + ]; + + $link_render = [ + '#title' => $render, + '#type' => 'link', + '#url' => $group->toUrl(), + '#attributes' => [ + 'class' => [ + 'profile-shortinfo__link profile-shortinfo__link--group' + ] + ] + ]; + $variables['ngf_sub_picture'] = $link_render; + } + + $visibility_icon = ''; + if (!empty($group->field_ngf_group_visibility)) { + if ($group->field_ngf_group_visibility->value == NGF_GROUP_PUBLIC) { + $visibility_icon = 'fa fa-eye-slash'; + } + elseif ($group->field_ngf_group_visibility->value == NGF_GROUP_PRIVATE) { + $visibility_icon = 'fa fa-lock'; + } + elseif ($group->field_ngf_group_visibility->value == NGF_GROUP_SECRET) { + $visibility_icon = 'fa fa-lock'; + } + } + + $variables['ngf_context_text'] = t( + 'Posted @created_date ago in @group_title', + [ + '@created_date' => \Drupal::service('date.formatter')->formatTimeDiffSince($entity->created->value), + ':group_url' => $group->url(), + '@group_title' => $group->label(), + ] + ) . ' '; +} + function funkywave_preprocess_user(&$vars) { $user = $vars['user']; // get user image @@ -109,11 +113,13 @@ function funkywave_preprocess_user(&$vars) { function funkywave_preprocess_group(&$variables) { $group = $variables['group']; $view_mode = $variables['view_mode']; - - if ($variables['view_mode'] == 'full' && $group->getGroupType()->id() == 'ngf_event') { + if ($view_mode == 'full' && $group->getGroupType()->id() == 'ngf_event') { // This is needed so the group name is printed along with {{content}}. $variables['content']['label']['#printed'] = FALSE; $variables['ngf_group_container_class'] = 'profile-shortinfo--group'; + if (!empty($group->group)) { + _funkywave_group_context($group, $group->group, $variables); + } } $display_modes = [ From bfc8502e46814f868a570d462a74f8f0be8650ff Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Tue, 12 Jun 2018 17:19:20 +0200 Subject: [PATCH 071/200] NGF-208-bis: group event template and more button --- funkywave.theme | 13 +- images/article--comment-icon.svg | 37 ++ images/article--comment-outline-icon.svg | 8 + images/article--draft-icon.svg | 46 +- images/article--event-icon.svg | 18 + images/article--pinned-icon.svg | 50 +-- images/hr--wavy.svg | 26 +- images/post-info--group__background.svg | 14 + images/profile--action__add2list-sprite.svg | 46 +- images/profile--action__contact-sprite.svg | 62 +-- images/profile--action__follow-sprite.svg | 76 ++-- images/profile--action__join-sprite.svg | 410 +++++++++--------- patterns/button/pattern-button.html.twig | 2 +- templates/content/group--ngf-event.html.twig | 54 ++- .../content/node--ngf-discussion.html.twig | 37 +- .../views/views-view-unformatted.html.twig | 2 +- 16 files changed, 503 insertions(+), 398 deletions(-) create mode 100644 images/article--comment-icon.svg create mode 100644 images/article--comment-outline-icon.svg create mode 100644 images/article--event-icon.svg diff --git a/funkywave.theme b/funkywave.theme index 1f80255..2cf2781 100644 --- a/funkywave.theme +++ b/funkywave.theme @@ -92,7 +92,7 @@ function _funkywave_group_context($entity, $group, &$variables) { ':group_url' => $group->url(), '@group_title' => $group->label(), ] - ) . ' '; + ); } function funkywave_preprocess_user(&$vars) { @@ -113,10 +113,15 @@ function funkywave_preprocess_user(&$vars) { function funkywave_preprocess_group(&$variables) { $group = $variables['group']; $view_mode = $variables['view_mode']; - if ($view_mode == 'full' && $group->getGroupType()->id() == 'ngf_event') { + $display_modes = [ + 'full', + 'teaser', + 'ngf_follow_up', + ]; + + if (in_array($view_mode, $display_modes) && $group->getGroupType()->id() == 'ngf_event') { // This is needed so the group name is printed along with {{content}}. $variables['content']['label']['#printed'] = FALSE; - $variables['ngf_group_container_class'] = 'profile-shortinfo--group'; if (!empty($group->group)) { _funkywave_group_context($group, $group->group, $variables); } @@ -142,4 +147,4 @@ function funkywave_preprocess_group(&$variables) { } } -} +} \ No newline at end of file diff --git a/images/article--comment-icon.svg b/images/article--comment-icon.svg new file mode 100644 index 0000000..c23379e --- /dev/null +++ b/images/article--comment-icon.svg @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/images/article--comment-outline-icon.svg b/images/article--comment-outline-icon.svg new file mode 100644 index 0000000..df76f5a --- /dev/null +++ b/images/article--comment-outline-icon.svg @@ -0,0 +1,8 @@ + + + + + + diff --git a/images/article--draft-icon.svg b/images/article--draft-icon.svg index 06e17f5..73be582 100644 --- a/images/article--draft-icon.svg +++ b/images/article--draft-icon.svg @@ -1,23 +1,23 @@ - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + diff --git a/images/article--event-icon.svg b/images/article--event-icon.svg new file mode 100644 index 0000000..7b73cef --- /dev/null +++ b/images/article--event-icon.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + diff --git a/images/article--pinned-icon.svg b/images/article--pinned-icon.svg index de19b66..34b4a8e 100644 --- a/images/article--pinned-icon.svg +++ b/images/article--pinned-icon.svg @@ -1,25 +1,25 @@ - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + diff --git a/images/hr--wavy.svg b/images/hr--wavy.svg index 0818dae..8ef4352 100644 --- a/images/hr--wavy.svg +++ b/images/hr--wavy.svg @@ -1,13 +1,13 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/images/post-info--group__background.svg b/images/post-info--group__background.svg index 0052f17..6980dff 100644 --- a/images/post-info--group__background.svg +++ b/images/post-info--group__background.svg @@ -1,3 +1,4 @@ +<<<<<<< HEAD @@ -9,3 +10,16 @@ c6.595,3.541,4.173,10.178,6.673,15.219c0.023,0.048,0.059,0.082,0.085,0.127c1.347,3.537,4.206,6.469,8.072,7.773 c6.868,2.316,14.315-1.371,16.634-8.24C49.28,58.616,48.594,54.447,46.448,51.186z"/> +======= + + + + + + +>>>>>>> d8775734bd7c5fc91f87c18da270f277c10a52e0 diff --git a/images/profile--action__add2list-sprite.svg b/images/profile--action__add2list-sprite.svg index 7219c2d..c025335 100644 --- a/images/profile--action__add2list-sprite.svg +++ b/images/profile--action__add2list-sprite.svg @@ -1,23 +1,23 @@ - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + diff --git a/images/profile--action__contact-sprite.svg b/images/profile--action__contact-sprite.svg index 27c70e4..dde8b28 100644 --- a/images/profile--action__contact-sprite.svg +++ b/images/profile--action__contact-sprite.svg @@ -1,31 +1,31 @@ - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + diff --git a/images/profile--action__follow-sprite.svg b/images/profile--action__follow-sprite.svg index c9c649d..6a5fc24 100644 --- a/images/profile--action__follow-sprite.svg +++ b/images/profile--action__follow-sprite.svg @@ -1,38 +1,38 @@ - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/images/profile--action__join-sprite.svg b/images/profile--action__join-sprite.svg index 9c52b95..76beb70 100644 --- a/images/profile--action__join-sprite.svg +++ b/images/profile--action__join-sprite.svg @@ -1,205 +1,205 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/patterns/button/pattern-button.html.twig b/patterns/button/pattern-button.html.twig index 5dbb93d..acb4cbc 100644 --- a/patterns/button/pattern-button.html.twig +++ b/patterns/button/pattern-button.html.twig @@ -6,5 +6,5 @@ #} \ No newline at end of file diff --git a/templates/content/group--ngf-event.html.twig b/templates/content/group--ngf-event.html.twig index fd95f34..7b42d5d 100644 --- a/templates/content/group--ngf-event.html.twig +++ b/templates/content/group--ngf-event.html.twig @@ -43,10 +43,7 @@ {% set classes = [ 'newsfeed__item', - 'newsfeed__item--' ~ node.bundle|clean_class, - node.isPromoted() ? 'newsfeed__item--promoted', - node.isSticky() ? 'newsfeed__item--sticky', - not node.isPublished() ? 'node--unpublished newsfeed__item--unpublished', + 'newsfeed__item--' ~ group.bundle|clean_class, view_mode ? 'newsfeed__item--' ~ view_mode|clean_class, ] %} @@ -54,7 +51,7 @@
- {% if not group %} + {% if not page %}

{{ label }}

@@ -71,6 +68,7 @@ with { title: group.uid.entity.name.value, image_url: file_url(group.uid.entity.user_picture.entity.uri.value|image_style('thumbnail')), + logged_in: logged_in, context_text: ngf_context_text, subpic: ngf_sub_picture, container_class: ngf_group_container_class, @@ -83,14 +81,13 @@ {# block coverimage #} {% block coverimage %} - - {% if group.field_media_image %} - {{ group.label }} + {% if content.field_ngf_cover_image is not empty %} + {{ content.field_ngf_cover_image }} {% endif %} - {% endblock coverimage %} {% block eventdata %} + {# convert date to an integer stamp #} {% set event_start_date = group.field_ngf_event_start_date.value|date('U') %} {# Convert event_end_date to an integer stamp if not empty #} @@ -108,9 +105,10 @@ {% set event_start_date_month = event_start_date|date('m') %} {% set event_end_date_month = event_end_date|date('m') %} - {# Start date & end date the same #} - + {# Start date & end date the same #} +
+ {% if content.field_ngf_event_start_date is not empty %}

{% trans %} Date and time {% endtrans %}

{% if event_end_date is null %} @@ -133,16 +131,19 @@ {% endif %} {% endif %} -

+

+ {% endif %} - {% if content.field_ngf_address is not empty %} -
-

{% trans %} Location {% endtrans %}

- {{ content.field_ngf_venue|field_raw('value') }} {{ content.field_ngf_address|field_value }} -
- {% endif %} + {% if content.field_ngf_address is not empty %} +
+

{% trans %} Location {% endtrans %}

+

{{ content.field_ngf_venue|field_raw('value') }}

+ {{ content.field_ngf_address|field_value }} +
+ {% endif %}
+ {% endblock eventdata %} {# Event Summary #} @@ -152,6 +153,18 @@ {% endif %} {% endblock eventintrotext %} + {# Show more button (will only be printed in teaser view mode) #} + {% if content.show_more %} + {% include "@patterns/button/pattern-button.html.twig" + with { + url: path('entity.group.canonical', {'group': content.show_more['#url'].routeParameters.group }), + label: content.show_more['#title'], + container_class: 'btn-list btn-list--right', + button_class: 'btn--green', + } + %} + {% endif %} + {# Event Description #} {% block eventdescritption %} {% if content.field_ngf_description is not empty %} @@ -163,9 +176,6 @@ {% block eventspeakers %} {# todo needs development #} {% endblock eventspeakers %} - - - {# End Event speakers #} {# Event register #} {% block eventregister %} @@ -175,7 +185,7 @@ {% include "@patterns/button/pattern-button.html.twig" with{ url: event_registration_url, - title: event_registration_title, + label: event_registration_title, container_class: 'btn-list--center extra-space--top', button_class: 'btn--blue btn--large', } diff --git a/templates/content/node--ngf-discussion.html.twig b/templates/content/node--ngf-discussion.html.twig index 705382d..4b90b84 100644 --- a/templates/content/node--ngf-discussion.html.twig +++ b/templates/content/node--ngf-discussion.html.twig @@ -112,31 +112,33 @@ {% endblock postinfo %} {# end block postinfo #} - {# block coverimage #} - + {# block coverimage #} {% block coverimage %} + {% if content.field_ngf_cover_image is not empty %} {{ content.field_ngf_cover_image }} + {% endif %} {% endblock coverimage %} -
- - {# Show more button (will only be printed in teaser view mode) #} + {# Introtext #} {{ content.field_ngf_introtext }} {# Show more button (will only be printed in teaser view mode) #} - {{ content.show_more }} + {% if content.show_more %} + {% include "@patterns/button/pattern-button.html.twig" + with { + url: path('entity.node.canonical', {'node': content.show_more['#url'].routeParameters.node }), + label: content.show_more['#title'], + container_class: 'btn-list btn-list--right', + button_class: 'btn--green', + } + %} + {% endif %} {# Show description (paragraphs) #} {{ content.field_ngf_description }} - {% block related_content %} - {{ content.related_content }} - {% endblock related_content %} - {# load a view with related content #} {% block related_topics %} - - {# TODO {% include "@patterns/list/pattern-list.html.twig" @@ -179,5 +181,16 @@ {% endblock related_topics %} + {# Call view related content #} + {% block related_content %} + {# to avoid endless loop #} + {% if view_mode == "full" %} + {{ drupal_view('ngf_discussion_related_content', 'block') }} + {% endif %} + {% endblock related_content %} + + {# Comments #} + {{ content.field_comments }} + \ No newline at end of file diff --git a/templates/views/views-view-unformatted.html.twig b/templates/views/views-view-unformatted.html.twig index da17c8c..e8cffbb 100644 --- a/templates/views/views-view-unformatted.html.twig +++ b/templates/views/views-view-unformatted.html.twig @@ -19,5 +19,5 @@

{{ title }}

{% endif %} {% for row in rows %} - {{ row.content }} + {{ row.content }} {% endfor %} From 5b7b5e677bac59669cea16560c622db52f426c8f Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Wed, 13 Jun 2018 15:59:30 +0200 Subject: [PATCH 072/200] NGF-208-bis: small fixes event and discussion --- templates/content/group--ngf-event.html.twig | 47 +++++++++++++++- .../content/node--ngf-discussion.html.twig | 26 ++++----- .../paragraphs/paragraph--ngf-file.html.twig | 54 +++++++++++++++++++ 3 files changed, 113 insertions(+), 14 deletions(-) create mode 100644 templates/paragraphs/paragraph--ngf-file.html.twig diff --git a/templates/content/group--ngf-event.html.twig b/templates/content/group--ngf-event.html.twig index 7b42d5d..50aab50 100644 --- a/templates/content/group--ngf-event.html.twig +++ b/templates/content/group--ngf-event.html.twig @@ -109,7 +109,7 @@
{% if content.field_ngf_event_start_date is not empty %} -

{% trans %} Date and time {% endtrans %}

+

{% trans %} Date and time {% endtrans %}

{% if event_end_date is null %} @@ -136,7 +136,7 @@ {% if content.field_ngf_address is not empty %}

-

{% trans %} Location {% endtrans %}

+

{% trans %} Location {% endtrans %}

{{ content.field_ngf_venue|field_raw('value') }}

{{ content.field_ngf_address|field_value }}
@@ -193,4 +193,47 @@ {% endif %} {% endblock eventregister %} + {% block related_topics %} + + {# TODO + + {% include "@patterns/list/pattern-list.html.twig" + with { + items: content.field_ngf_interests['#items'], + css_class: sub-section sub-section--related-taxonomy, + label: content.field_ngf_interests['#title'], + list_class: list list--taxonomy, + item_class: list__item list__item--tag, + link_class: tag tag__link, + url: '', + title: '', + } + %} + #} + + {% set label = content.field_ngf_interests['#title'] %} + {% set items = content.field_ngf_interests['#items'] %} + {% set css_class = 'sub-section sub-section--related-taxonomy' %} + + {% if items is not empty %} +
+ {% if label is not empty %} +

{{ label }}

+ {% endif %} + {% if items is not empty %} + + {% endif %} +
+ {% endif %} + + {% endblock related_topics %} + \ No newline at end of file diff --git a/templates/content/node--ngf-discussion.html.twig b/templates/content/node--ngf-discussion.html.twig index 4b90b84..56d0230 100644 --- a/templates/content/node--ngf-discussion.html.twig +++ b/templates/content/node--ngf-discussion.html.twig @@ -98,17 +98,17 @@ {#block postinfo #} {% block postinfo %} - {% include "@patterns/profile-shortinfo/pattern-profile-shortinfo.html.twig" - with { - image_url: file_url(node.uid.entity.user_picture.entity.uri.value|image_style('thumbnail')), - title: node.owner.full_name.value, - url: path('entity.user.canonical', {'user': user.id}), - logged_in: logged_in, - context_text: ngf_context_text, - subpic: ngf_sub_picture, - container_class: ngf_group_container_class, - } - %} + {% include "@patterns/profile-shortinfo/pattern-profile-shortinfo.html.twig" + with { + image_url: file_url(node.uid.entity.user_picture.entity.uri.value|image_style('thumbnail')), + title: node.owner.full_name.value, + url: path('entity.user.canonical', {'user': user.id}), + logged_in: logged_in, + context_text: ngf_context_text, + subpic: ngf_sub_picture, + container_class: ngf_group_container_class, + } + %} {% endblock postinfo %} {# end block postinfo #} @@ -185,7 +185,9 @@ {% block related_content %} {# to avoid endless loop #} {% if view_mode == "full" %} - {{ drupal_view('ngf_discussion_related_content', 'block') }} + {% endif %} {% endblock related_content %} diff --git a/templates/paragraphs/paragraph--ngf-file.html.twig b/templates/paragraphs/paragraph--ngf-file.html.twig new file mode 100644 index 0000000..f2ef92b --- /dev/null +++ b/templates/paragraphs/paragraph--ngf-file.html.twig @@ -0,0 +1,54 @@ +{# +/** + * @file + * Default theme implementation to display a paragraph. + * + * Available variables: + * - paragraph: Full paragraph entity. + * Only method names starting with "get", "has", or "is" and a few common + * methods such as "id", "label", and "bundle" are available. For example: + * - paragraph.getCreatedTime() will return the paragraph creation timestamp. + * - paragraph.id(): The paragraph ID. + * - paragraph.bundle(): The type of the paragraph, for example, "image" or "text". + * - paragraph.getOwnerId(): The user ID of the paragraph author. + * See Drupal\paragraphs\Entity\Paragraph for a full list of public properties + * and methods for the paragraph object. + * - content: All paragraph items. Use {{ content }} to print them all, + * or print a subset such as {{ content.field_example }}. Use + * {{ content|without('field_example') }} to temporarily suppress the printing + * of a given child element. + * - attributes: HTML attributes for the containing element. + * The attributes.class element may contain one or more of the following + * classes: + * - paragraphs: The current template type (also known as a "theming hook"). + * - paragraphs--type-[type]: The current paragraphs type. For example, if the paragraph is an + * "Image" it would result in "paragraphs--type--image". Note that the machine + * name will often be in a short form of the human readable label. + * - paragraphs--view-mode--[view_mode]: The View Mode of the paragraph; for example, a + * preview would result in: "paragraphs--view-mode--preview", and + * default: "paragraphs--view-mode--default". + * - view_mode: View mode; for example, "preview" or "full". + * - logged_in: Flag for authenticated user status. Will be true when the + * current user is a logged-in member. + * - is_admin: Flag for admin user status. Will be true when the current user + * is an administrator. + * + * @see template_preprocess_paragraph() + * + * @ingroup themeable + */ +#} +{% + set classes = [ + 'paragraph', + 'paragraph--type--' ~ paragraph.bundle|clean_class, + view_mode ? 'paragraph--view-mode--' ~ view_mode|clean_class, + ] +%} +{% block paragraph %} + + {% block content %} + {{ content }} + {% endblock %} +
+{% endblock paragraph %} From 738e695368ae94b13321ce75ae040c8996635e44 Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Fri, 15 Jun 2018 17:39:04 +0200 Subject: [PATCH 073/200] NGF-199: templates added for comments and fix for events --- css/style.css | 84 +++++++++++++- funkywave.theme | 9 ++ images/article--delete-outline-icon.svg | 14 +++ images/article--edit-outline-icon.svg | 10 ++ images/article--editt-outline-icon.svg | 10 ++ images/body-bckgrd--md.svg | 42 +++++++ images/file--ppt.jpg | Bin 0 -> 3980 bytes images/file--txt.jpg | Bin 0 -> 4071 bytes images/file--xls.jpg | Bin 0 -> 3922 bytes images/logo-area-bckgrd--md--no-action.svg | 28 +++++ images/logo-area-bckgrd--md--one-action.svg | 27 +++++ images/logo-area-bckgrd--md.svg | 48 ++------ templates/content/comment.html.twig | 106 ++++++++++++++++++ templates/content/group--ngf-event.html.twig | 61 +++++----- .../content/node--ngf-discussion.html.twig | 5 + templates/field/field--comment.html.twig | 60 ++++++++++ templates/user/user--compact.html.twig | 35 ++++++ 17 files changed, 472 insertions(+), 67 deletions(-) create mode 100644 images/article--delete-outline-icon.svg create mode 100644 images/article--edit-outline-icon.svg create mode 100644 images/article--editt-outline-icon.svg create mode 100644 images/body-bckgrd--md.svg create mode 100644 images/file--ppt.jpg create mode 100644 images/file--txt.jpg create mode 100644 images/file--xls.jpg create mode 100644 images/logo-area-bckgrd--md--no-action.svg create mode 100644 images/logo-area-bckgrd--md--one-action.svg create mode 100644 templates/content/comment.html.twig create mode 100644 templates/field/field--comment.html.twig create mode 100644 templates/user/user--compact.html.twig diff --git a/css/style.css b/css/style.css index d1ae980..500b5de 100644 --- a/css/style.css +++ b/css/style.css @@ -18,6 +18,11 @@ body { padding: 0; line-height: 1.8; background-color: #1f1e23; + background-image: url(../images/body-bckgrd--md.svg); + background-repeat: no-repeat; + background-position: 50% top; + background-attachment: fixed; + background-size: 100% 80px; } .wf-active body { @@ -998,10 +1003,22 @@ a.btn:focus, input.btn:focus, button.btn:focus { margin: 0; } +.sub-section--comments ul.links.inline { + padding-bottom: 15px; +} + +.sub-section--comments ul.links.inline li { + display: inline-block; +} + .sub-section--comments li { list-style: none; } +.sub-section--comments li .profile-shortinfo { + margin-top: 15px; +} + .sub-section--comments .profile-shortinfo { margin-bottom: -2rem; } @@ -1030,7 +1047,7 @@ a.btn:focus, input.btn:focus, button.btn:focus { padding-left: 0; } -.sub-section--comments .comment__link--reply { +.sub-section--comments .comment-reply a { padding-left: 2.6rem; min-height: 3.7rem; background-image: url(../images/article--comment-outline-icon.svg); @@ -1040,6 +1057,26 @@ a.btn:focus, input.btn:focus, button.btn:focus { text-decoration: none; } +.sub-section--comments .comment-edit a { + padding-left: 2.6rem; + min-height: 3.7rem; + background-image: url(../images/article--edit-outline-icon.svg); + background-position: 0.5rem 0; + background-repeat: no-repeat; + background-size: 1.7rem 1.7rem; + text-decoration: none; +} + +.sub-section--comments .comment-delete a { + padding-left: 2.6rem; + min-height: 3.7rem; + background-image: url(../images/article--delete-outline-icon.svg); + background-position: 0.5rem 0; + background-repeat: no-repeat; + background-size: 1.7rem 1.7rem; + text-decoration: none; +} + @media (min-width: 768px) { .general-footer { position: fixed !important; @@ -1091,6 +1128,11 @@ a.btn:focus, input.btn:focus, button.btn:focus { height: 100vh; float: right; background-color: #26252B; + background-image: url(../images/body-bckgrd--md.svg); + background-repeat: no-repeat; + background-position: 50% top; + background-attachment: fixed; + background-size: 100% 80px; z-index: 4; padding: 60px 15px; padding-bottom: 500em; @@ -1102,6 +1144,12 @@ a.btn:focus, input.btn:focus, button.btn:focus { width: calc(25% - 30px); max-width: 270px; } + + .general-footer ul { + position: fixed; + width: 100%; + bottom: 0; + } } .new-item { @@ -1426,12 +1474,28 @@ a.btn:focus, input.btn:focus, button.btn:focus { margin-left: -15px; } + .navigation-menu__list--tools:empty { + background-image: url(../images/logo-area-bckgrd--md--no-action.svg); + } + + .navigation-menu__list--tools.navigation-menu__list--single-tool { + background-image: url(../images/logo-area-bckgrd--md--one-action.svg); + } + .navigation-menu__list--tools .navigation-menu__item { display: inline-block; padding: 0; margin-left: 0px; } + .navigation-menu__list--tools .navigation-menu__item:only-child { + display: block; + margin: 0px 0% 0 -2.45% !important; + position: absolute; + height: 54px; + width: 54px; + } + .navigation-menu__list--tools .navigation-menu__item:first-child { display: block; margin: 11px 0% 0 -8.75%; @@ -1499,6 +1563,24 @@ a.btn:focus, input.btn:focus, button.btn:focus { max-width: 900px; margin-left: -15px; } + + .navigation-menu__list--tools .navigation-menu__item:only-child { + display: block; + margin: 0px 0% 0 -18px !important; + position: absolute; + height: 54px; + width: 54px; + } +} + +@media (min-width: 1100px) { + .navigation-menu__list--tools .navigation-menu__item:only-child { + display: block; + margin: 0px 0% 0 -2.75% !important; + position: absolute; + height: 54px; + width: 54px; + } } .newsfeed:first-child { diff --git a/funkywave.theme b/funkywave.theme index 2cf2781..278a759 100644 --- a/funkywave.theme +++ b/funkywave.theme @@ -147,4 +147,13 @@ function funkywave_preprocess_group(&$variables) { } } +} + +/** + * Implements hook_theme_suggestions_HOOK_alter() + * Create theme suggestions for user profile templates +**/ +function funkywave_theme_suggestions_user_alter(&$suggestions, array $variables) { + $viewmode = $variables['elements']['#view_mode']; + $suggestions[] = 'user__' . $viewmode; } \ No newline at end of file diff --git a/images/article--delete-outline-icon.svg b/images/article--delete-outline-icon.svg new file mode 100644 index 0000000..837d0c0 --- /dev/null +++ b/images/article--delete-outline-icon.svg @@ -0,0 +1,14 @@ + + + + + + + + + + diff --git a/images/article--edit-outline-icon.svg b/images/article--edit-outline-icon.svg new file mode 100644 index 0000000..9130d9e --- /dev/null +++ b/images/article--edit-outline-icon.svg @@ -0,0 +1,10 @@ + + + + + + + diff --git a/images/article--editt-outline-icon.svg b/images/article--editt-outline-icon.svg new file mode 100644 index 0000000..9130d9e --- /dev/null +++ b/images/article--editt-outline-icon.svg @@ -0,0 +1,10 @@ + + + + + + + diff --git a/images/body-bckgrd--md.svg b/images/body-bckgrd--md.svg new file mode 100644 index 0000000..380ff14 --- /dev/null +++ b/images/body-bckgrd--md.svg @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/images/file--ppt.jpg b/images/file--ppt.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8f2c0fb96da4f3823c4cc2e225347e4cd54206e4 GIT binary patch literal 3980 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 literal 0 HcmV?d00001 diff --git a/images/file--xls.jpg b/images/file--xls.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e2bf268783a834e5d424a89b5519ecea968369ff GIT binary patch literal 3922 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 literal 0 HcmV?d00001 diff --git a/images/logo-area-bckgrd--md--no-action.svg b/images/logo-area-bckgrd--md--no-action.svg new file mode 100644 index 0000000..e26a892 --- /dev/null +++ b/images/logo-area-bckgrd--md--no-action.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/images/logo-area-bckgrd--md--one-action.svg b/images/logo-area-bckgrd--md--one-action.svg new file mode 100644 index 0000000..5c06f9f --- /dev/null +++ b/images/logo-area-bckgrd--md--one-action.svg @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/images/logo-area-bckgrd--md.svg b/images/logo-area-bckgrd--md.svg index 0f7b20a..5948a11 100644 --- a/images/logo-area-bckgrd--md.svg +++ b/images/logo-area-bckgrd--md.svg @@ -3,52 +3,24 @@ - + - + - + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/templates/content/comment.html.twig b/templates/content/comment.html.twig new file mode 100644 index 0000000..7ede77b --- /dev/null +++ b/templates/content/comment.html.twig @@ -0,0 +1,106 @@ +{# +/** + * @file + * Theme override for comments. + * + * Available variables: + * - author: Comment author. Can be a link or plain text. + * - content: The content-related items for the comment display. Use + * {{ content }} to print them all, or print a subset such as + * {{ content.field_example }}. Use the following code to temporarily suppress + * the printing of a given child element: + * @code + * {{ content|without('field_example') }} + * @endcode + * - created: Formatted date and time for when the comment was created. + * Preprocess functions can reformat it by calling format_date() with the + * desired parameters on the 'comment.created' variable. + * - changed: Formatted date and time for when the comment was last changed. + * Preprocess functions can reformat it by calling format_date() with the + * desired parameters on the 'comment.changed' variable. + * - permalink: Comment permalink. + * - submitted: Submission information created from author and created + * during template_preprocess_comment(). + * - user_picture: The comment author's profile picture. + * - status: Comment status. Possible values are: + * unpublished, published, or preview. + * - title: Comment title, linked to the comment. + * - attributes: HTML attributes for the containing element. + * The attributes.class may contain one or more of the following classes: + * - comment: The current template type; e.g., 'theming hook'. + * - by-anonymous: Comment by an unregistered user. + * - by-{entity-type}-author: Comment by the author of the parent entity, + * eg. by-node-author. + * - preview: When previewing a new or edited comment. + * The following applies only to viewers who are registered users: + * - unpublished: An unpublished comment visible only to administrators. + * - title_prefix: Additional output populated by modules, intended to be + * displayed in front of the main title tag that appears in the template. + * - title_suffix: Additional output populated by modules, intended to be + * displayed after the main title tag that appears in the template. + * - content_attributes: List of classes for the styling of the comment content. + * - title_attributes: Same as attributes, except applied to the main title + * tag that appears in the template. + * - threaded: A flag indicating whether the comments are threaded or not. + * + * These variables are provided to give context about the parent comment (if + * any): + * - comment_parent: Full parent comment entity (if any). + * - parent_author: Equivalent to author for the parent comment. + * - parent_created: Equivalent to created for the parent comment. + * - parent_changed: Equivalent to changed for the parent comment. + * - parent_title: Equivalent to title for the parent comment. + * - parent_permalink: Equivalent to permalink for the parent comment. + * - parent: A text string of parent comment submission information created from + * 'parent_author' and 'parent_created' during template_preprocess_comment(). + * This information is presented to help screen readers follow lengthy + * discussion threads. You can hide this from sighted users using the class + * visually-hidden. + * + * These two variables are provided for context: + * - comment: Full comment object. + * - entity: Entity the comments are attached to. + * + * @see template_preprocess_comment() + */ +#} + +{% if threaded %} + {{ attach_library('classy/indented') }} +{% endif %} + +{% + set classes = [ + 'comment', + 'js-comment', + status != 'published' ? status, + comment.owner.anonymous ? 'by-anonymous', + author_id and author_id == commented_entity.getOwnerId() ? 'by-' ~ commented_entity.getEntityTypeId() ~ '-author', + ] +%} + + {# + Hide the "new" indicator by default, let a piece of JavaScript ask the + server which comments are new for the user. Rendering the final "new" + indicator here would break the render cache. + #} + {# #} + +
+ {{ user_picture }} + + {# + Indicate the semantic relationship between parent and child comments for + accessibility. The list is difficult to navigate in a screen reader + without this information. + #} + {% if parent %} +

{{ parent }}

+ {% endif %} + +
+ + + {{ content }} +
+ diff --git a/templates/content/group--ngf-event.html.twig b/templates/content/group--ngf-event.html.twig index 50aab50..68939e4 100644 --- a/templates/content/group--ngf-event.html.twig +++ b/templates/content/group--ngf-event.html.twig @@ -60,7 +60,7 @@ {{ label }} {% endif %} - + {# block postinfo #} {% block postinfo %} @@ -77,8 +77,6 @@ {% endblock postinfo %} {# end block postinfo #} - - {# block coverimage #} {% block coverimage %} {% if content.field_ngf_cover_image is not empty %} @@ -90,25 +88,25 @@ {# convert date to an integer stamp #} {% set event_start_date = group.field_ngf_event_start_date.value|date('U') %} - {# Convert event_end_date to an integer stamp if not empty #} + {# Convert event_end_date to an integer stamp if not empty #} {% if group.field_ngf_event_end_date is not empty %} {% set event_end_date = group.field_ngf_event_end_date.value|date('U') %} {% else %} {% set event_end_date = NULL %} {% endif %} - - {# Event year #} + + {# Event year #} {% set event_start_date_year = event_start_date|date('Y') %} {% set event_end_date_year = event_end_date|date('Y') %} - {# Event month #} + {# Event month #} {% set event_start_date_month = event_start_date|date('m') %} - {% set event_end_date_month = event_end_date|date('m') %} + {% set event_end_date_month = event_end_date|date('m') %} {# Start date & end date the same #} - +
- {% if content.field_ngf_event_start_date is not empty %} + {% if content.field_ngf_event_start_date is not empty %}

{% trans %} Date and time {% endtrans %}

{% if event_end_date is null %} @@ -117,24 +115,24 @@ {# same month same year #} {% if (event_start_date_month == event_end_date_month) and (event_start_date_year == event_end_date_year) %} - - - + - + {# different month same year #} {% elseif (event_start_date_month != event_end_date_month) and (event_start_date_year == event_end_date_year) %} - - - + - + {# different year for event start date & end date #} {% elseif (event_start_date_year != event_end_date_year) %} - - + - {% endif %} {% endif %}

{% endif %} - {% if content.field_ngf_address is not empty %} + {% if content.field_ngf_address['#items'] is not empty %}

{% trans %} Location {% endtrans %}

{{ content.field_ngf_venue|field_raw('value') }}

@@ -144,13 +142,15 @@
- {% endblock eventdata %} + {% endblock eventdata %} + + {# Event Summary #} {% block eventintrotext %} {% if content.field_ngf_introtext is not empty %} {{ content.field_ngf_introtext }} - {% endif %} + {% endif %} {% endblock eventintrotext %} {# Show more button (will only be printed in teaser view mode) #} @@ -158,9 +158,9 @@ {% include "@patterns/button/pattern-button.html.twig" with { url: path('entity.group.canonical', {'group': content.show_more['#url'].routeParameters.group }), - label: content.show_more['#title'], + label: content.show_more['#title'], container_class: 'btn-list btn-list--right', - button_class: 'btn--green', + button_class: 'btn--green', } %} {% endif %} @@ -169,7 +169,7 @@ {% block eventdescritption %} {% if content.field_ngf_description is not empty %} {{ content.field_ngf_description }} - {% endif %} + {% endif %} {% endblock eventdescritption %} {# Event speakers #} @@ -182,7 +182,7 @@ {% set event_registration_url = content.field_ngf_registration_link|field_raw('uri') %} {% set event_registration_title = content.field_ngf_registration_link|field_raw('title') %} {% if event_registration_url is not empty %} - {% include "@patterns/button/pattern-button.html.twig" + {% include "@patterns/button/pattern-button.html.twig" with{ url: event_registration_url, label: event_registration_title, @@ -190,15 +190,15 @@ button_class: 'btn--blue btn--large', } %} - {% endif %} + {% endif %} {% endblock eventregister %} {% block related_topics %} - {# TODO + {# TODO {% include "@patterns/list/pattern-list.html.twig" - with { + with { items: content.field_ngf_interests['#items'], css_class: sub-section sub-section--related-taxonomy, label: content.field_ngf_interests['#title'], @@ -213,7 +213,7 @@ {% set label = content.field_ngf_interests['#title'] %} {% set items = content.field_ngf_interests['#items'] %} - {% set css_class = 'sub-section sub-section--related-taxonomy' %} + {% set css_class = 'sub-section sub-section--related-taxonomy' %} {% if items is not empty %}
@@ -232,8 +232,13 @@ {% endif %}
- {% endif %} + {% endif %} {% endblock related_topics %} - \ No newline at end of file + {# Comments #} + {% if view_mode == "full" %} + {{ content.field_ngf_comments }} + {% endif %} + + diff --git a/templates/content/node--ngf-discussion.html.twig b/templates/content/node--ngf-discussion.html.twig index 56d0230..3603470 100644 --- a/templates/content/node--ngf-discussion.html.twig +++ b/templates/content/node--ngf-discussion.html.twig @@ -119,6 +119,8 @@ {% endif %} {% endblock coverimage %} + + {# Introtext #} {{ content.field_ngf_introtext }} @@ -192,7 +194,10 @@ {% endblock related_content %} {# Comments #} + {% if view_mode == "full" %} {{ content.field_comments }} + {% endif %} + \ No newline at end of file diff --git a/templates/field/field--comment.html.twig b/templates/field/field--comment.html.twig new file mode 100644 index 0000000..d67fdc0 --- /dev/null +++ b/templates/field/field--comment.html.twig @@ -0,0 +1,60 @@ +{# +/** + * @file + * Theme override for comment fields. + * + * Available variables: + * - attributes: HTML attributes for the containing element. + * - label_hidden: Whether to show the field label or not. + * - title_attributes: HTML attributes for the title. + * - label: The label for the field. + * - title_prefix: Additional output populated by modules, intended to be + * displayed in front of the main title tag that appears in the template. + * - title_suffix: Additional title output populated by modules, intended to + * be displayed after the main title tag that appears in the template. + * - comments: List of comments rendered through comment.html.twig. + * - comment_form: The 'Add new comment' form. + * - comment_display_mode: Is the comments are threaded. + * - comment_type: The comment type bundle ID for the comment field. + * - entity_type: The entity type to which the field belongs. + * - field_name: The name of the field. + * - field_type: The type of the field. + * - label_display: The display settings for the label. + * + * @see template_preprocess_field() + * @see comment_preprocess_field() + */ +#} +{% + set classes = [ + 'sub-section', + 'sub-section--comments', + 'sub-section--' ~ field_name|clean_class, + ] +%} +{% + set title_classes = [ + 'sub-section__title', + 'sub-section--related__title', + 'sub-section--comments__title', + label_display == 'visually_hidden' ? 'visually-hidden', + ] +%} + + + {% if comments and not label_hidden %} + {{ title_prefix }} + {{ label }} + {{ title_suffix }} + {% endif %} + + {{ comments }} + + {% if comment_form %} +
+ + {{ comment_form }} +
+ {% endif %} + + diff --git a/templates/user/user--compact.html.twig b/templates/user/user--compact.html.twig new file mode 100644 index 0000000..a094556 --- /dev/null +++ b/templates/user/user--compact.html.twig @@ -0,0 +1,35 @@ +{# +/** + * @file + * Theme override to present all user data. + * + * This template is used when viewing a registered user's page, + * e.g., example.com/user/123. 123 being the user's ID. + * + * Available variables: + * - content: A list of content items. Use 'content' to print all content, or + * print a subset such as 'content.field_example'. Fields attached to a user + * such as 'user_picture' are available as 'content.user_picture'. + * - attributes: HTML attributes for the container element. + * - user: A Drupal User entity. + * + * @see template_preprocess_user() + */ +#} + +{# block profile #} + +{% block profileinfo %} + {% include "@patterns/profile-shortinfo/pattern-profile-shortinfo.html.twig" + with { + image_url: file_url(user.user_picture.entity.uri.value|image_style('thumbnail')), + title: content.full_name.0['#context'].value, + url: path('entity.user.canonical', {'user': user.id}), + context_text: 'ngf_context_text', + logged_in: logged_in, + container_class: 'profile-shortinfo--no-group', + } + %} +{% endblock profileinfo %} + +{# |field_target_entity.uri.value|image_style('thumbnail') #} \ No newline at end of file From 8191ea649569b133cc68f64464f33c85e9a0a538 Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Tue, 19 Jun 2018 16:20:10 +0200 Subject: [PATCH 074/200] NGF-199: added theme hook for comment form buttons and comment form wrapper --- css/style.css | 658 ++++++++++++++++-- funkywave.theme | 36 +- templates/content/group--ngf-event.html.twig | 2 +- templates/field/field--comment.html.twig | 1 - templates/form/container--actions.html.twig | 30 + .../input--submit--comment-form.html.twig | 24 + .../input--submit--comments-abc.html.twig | 22 + templates/user/user--compact.html.twig | 2 +- 8 files changed, 722 insertions(+), 53 deletions(-) create mode 100644 templates/form/container--actions.html.twig create mode 100644 templates/form/input--submit--comment-form.html.twig create mode 100644 templates/form/input--submit--comments-abc.html.twig diff --git a/css/style.css b/css/style.css index 500b5de..1183eaa 100644 --- a/css/style.css +++ b/css/style.css @@ -30,6 +30,10 @@ body { font-weight: 500; } +p, h2, h3, h4, h5, h6, li { + max-width: 32em; +} + h1, h2, h3, h4, h5, h6 { font-family: "Raleway"; font-weight: bold; @@ -39,7 +43,7 @@ h1, h2, h3, h4, h5, h6 { } h4, h5, h6 { - color: #88898c; + opacity: 0.9; } p:last-child { @@ -120,7 +124,11 @@ main *:not(img):not(svg)::selection { } .form-wrapper { - padding: 0px 15px 75px 15px; + padding: inherit; +} + +.wf-active input, .wf-active textarea { + font-family: "Raleway"; } form__block, .form__block { @@ -150,6 +158,7 @@ form input[type=text], form input[type=email], form input[type=password], form t box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.1); -webkit-transition: border-color 0.2s; transition: border-color 0.2s; + font-family: "Raleway"; } form input[type=text]:focus:hover, form input[type=text]:focus, form input[type=email]:focus:hover, form input[type=email]:focus, form input[type=password]:focus:hover, form input[type=password]:focus, form textarea:focus:hover, form textarea:focus, .form input[type=text]:focus:hover, .form input[type=text]:focus, .form input[type=email]:focus:hover, .form input[type=email]:focus, .form input[type=password]:focus:hover, .form input[type=password]:focus, .form textarea:focus:hover, .form textarea:focus { @@ -461,6 +470,42 @@ form .form__block--toggle .label-text, .form .form__block--toggle .label-text { vertical-align: top; } +.chosen-container.error .chosen-single, +.chosen-container.error .chosen-single span { + line-height: inherit; +} + +.chosen-container-single .chosen-search { + display: block; +} + +.chosen-container-multi .chosen-choices li.search-field input[type="text"] { + height: auto; +} + +.chosen-container { + display: block !important; +} + +.container-inline div.chosen-container div { + display: block; +} + +.chosen-container.error .chosen-choices, +.chosen-container.error .chosen-single { + border: 2px solid red; +} + +.filter-wrapper { + overflow: visible !important; +} + +.filter-wrapper:after { + content: ""; + display: block; + clear: both; +} + @media (min-width: 578px) { .form .form__block--twocol { display: -webkit-box; @@ -744,6 +789,10 @@ li.tag { z-index: 0; } +.no-margins { + margin: 0 !important; +} + .extra-space--top { margin-top: 5rem !important; } @@ -988,6 +1037,507 @@ a.btn:focus, input.btn:focus, button.btn:focus { } } +.chosen-container { + position: relative; + width: 100% !important; + border-radius: 0; + display: block !important; + padding: 0.7rem 0.9rem; + font-size: 1.6rem; + line-height: 1.8; + color: #515155; + max-width: 32em; + width: 100%; + border: solid 2px #a6a7ab; + -webkit-box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.1); + box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.1); + -webkit-transition: border-color 0.2s; + transition: border-color 0.2s; + vertical-align: middle; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + transition: border-color 0.2s; +} + +.chosen-container:hover { + border-color: #515155; + -webkit-transition: border-color 0.2s; + transition: border-color 0.2s; +} + +.chosen-container:focus:hover, .chosen-container:focus { + outline: none; + border: solid 2px #662D91; + -webkit-transition: border-color 0.2s; + transition: border-color 0.2s; +} + +.form-item label { + display: block; + font-weight: 600; + margin-bottom: 0.3em; +} + +.chosen-container * { + -webkit-box-sizing: border-box; + box-sizing: border-box; +} + +.chosen-container .chosen-drop { + position: absolute; + top: 100%; + z-index: 1010; + width: calc(100% + 0.4rem); + padding: 0.7rem 0.9rem 0.7rem 1.6rem; + margin-left: -1.1rem; + border: solid 2px #a6a7ab; + border-top: 0; + background: #fff; + clip: rect(0, 0, 0, 0); +} + +.chosen-container:hover .chosen-drop { + border-color: #515155; + -webkit-transition: border-color 0.2s; + transition: border-color 0.2s; +} + +.chosen-container.chosen-with-drop .chosen-drop { + clip: auto; +} + +.chosen-container a { + cursor: pointer; +} + +.chosen-container .search-choice .group-name, .chosen-container a.chosen-single .group-name { + margin-right: 4px; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + font-weight: normal; + color: #515155; + text-decoration: none; + text-shadow: none; + -webkit-box-shadow: none; + box-shadow: none; +} + +.chosen-container .search-choice .group-name:after, .chosen-container a.chosen-single .group-name:after { + content: ":"; + padding-left: 2px; + vertical-align: top; +} + +.chosen-container-single a.chosen-single { + position: relative; + display: block; + overflow: hidden; + padding: 0 0 0 8px; + height: 25px; + text-decoration: none; + white-space: nowrap; + line-height: 24px; + color: #515155; + text-decoration: none; + text-shadow: none; + -webkit-box-shadow: none; + box-shadow: none; + font-size: 1.6rem; + font-family: Raleway; +} + +.chosen-container-single .chosen-default { + color: #999; +} + +.chosen-container-single a.chosen-single span { + display: block; + overflow: hidden; + margin-right: 26px; + text-overflow: ellipsis; + white-space: nowrap; + color: #515155; + text-decoration: none; + text-shadow: none; + -webkit-box-shadow: none; + box-shadow: none; +} + +.chosen-container-single .chosen-single-with-deselect span { + margin-right: 38px; +} + +.chosen-container-single .chosen-single abbr { + position: absolute; + top: 6px; + right: 26px; + display: block; + width: 12px; + height: 12px; + background: url("chosen-sprite.png") -42px 1px no-repeat; + font-size: 1px; +} + +.chosen-container-single .chosen-single abbr:hover { + background-position: -42px -10px; +} + +.chosen-container-single.chosen-disabled .chosen-single abbr:hover { + background-position: -42px -10px; +} + +.chosen-container-single .chosen-single div { + position: absolute; + top: 0; + right: 0; + display: block; + width: 18px; + height: 100%; +} + +.chosen-container-single .chosen-single div b { + display: block; + width: 100%; + height: 100%; + background: url("chosen-sprite.png") no-repeat 0px 2px; +} + +.chosen-container-single .chosen-search { + position: relative; + z-index: 1010; + margin: 0; + padding: 3px 4px; + white-space: nowrap; +} + +.chosen-container-single .chosen-search input[type="text"] { + margin: 1px 0; + padding: 4px 20px 4px 5px; + width: 100%; + height: auto; + outline: 0; + border: 1px solid #aaa; + background: url("chosen-sprite.png") no-repeat 100% -20px; + font-size: 1em; + font-family: sans-serif; + line-height: normal; + border-radius: 0; + border: solid 2px #a6a7ab; +} + +.chosen-container-single .chosen-drop { + margin-top: -1px; + border-radius: 0 0 4px 4px; + background-clip: padding-box; +} + +.chosen-container-single.chosen-container-single-nosearch .chosen-search { + position: absolute; + clip: rect(0, 0, 0, 0); +} + +.chosen-container .chosen-results { + color: #444; + position: relative; + overflow-x: hidden; + overflow-y: auto; + margin: 0 4px 4px 0; + padding: 0 0 0 4px; + max-height: 240px; + -webkit-overflow-scrolling: touch; +} + +.chosen-container .chosen-results li { + display: none; + margin: 0; + padding: 5px 6px; + list-style: none; + line-height: 15px; + word-wrap: break-word; + -webkit-touch-callout: none; +} + +.chosen-container .chosen-results li.active-result { + display: list-item; + cursor: pointer; +} + +.chosen-container .chosen-results li.disabled-result { + display: list-item; + color: #ccc; + cursor: default; +} + +.chosen-container .chosen-results li.highlighted { + background-color: #662D91; + color: #fff; +} + +.chosen-container .chosen-results li.no-results { + color: #777; + display: list-item; + background: #f4f4f4; +} + +.chosen-container .chosen-results li.group-result { + display: list-item; + font-weight: bold; + cursor: default; +} + +.chosen-container .chosen-results li.group-option { + padding-left: 15px; +} + +.chosen-container .chosen-results li em { + font-style: normal; + text-decoration: underline; +} + +.chosen-container-multi .chosen-choices { + position: relative; + overflow: hidden; + margin: 0; + padding: 0 5px; + width: 100%; + height: auto; + border: 1px solid #aaa; + background-color: #fff; + background-image: -webkit-gradient(linear, left top, left bottom, color-stop(1%, #eee), color-stop(15%, #fff)); + background-image: linear-gradient(#eee 1%, #fff 15%); + cursor: text; +} + +.chosen-container-multi .chosen-choices li { + float: left; + list-style: none; +} + +.chosen-container-multi .chosen-choices li.search-field { + margin: 0; + padding: 0; + white-space: nowrap; +} + +.chosen-container-multi .chosen-choices li.search-field input[type="text"] { + margin: 1px 0; + padding: 0; + height: 25px; + outline: 0; + border: 0 !important; + background: transparent !important; + -webkit-box-shadow: none; + box-shadow: none; + color: #999; + font-size: 100%; + font-family: sans-serif; + line-height: normal; + border-radius: 0; + width: 25px; +} + +.chosen-container-multi .chosen-choices li.search-choice { + position: relative; + margin: 3px 5px 3px 0; + padding: 3px 20px 3px 5px; + border: 1px solid #aaa; + max-width: 100%; + border-radius: 3px; + background-color: #eeeeee; + background-image: -webkit-gradient(linear, left top, left bottom, color-stop(20%, #f4f4f4), color-stop(50%, #f0f0f0), color-stop(52%, #e8e8e8), to(#eee)); + background-image: linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eee 100%); + background-size: 100% 19px; + background-repeat: repeat-x; + background-clip: padding-box; + -webkit-box-shadow: 0 0 2px #fff inset, 0 1px 0 rgba(0, 0, 0, 0.05); + box-shadow: 0 0 2px #fff inset, 0 1px 0 rgba(0, 0, 0, 0.05); + color: #333; + line-height: 13px; + cursor: default; +} + +.chosen-container-multi .chosen-choices li.search-choice span { + word-wrap: break-word; +} + +.chosen-container-multi .chosen-choices li.search-choice .search-choice-close { + position: absolute; + top: 4px; + right: 3px; + display: block; + width: 12px; + height: 12px; + background: url("chosen-sprite.png") -42px 1px no-repeat; + font-size: 1px; +} + +.chosen-container-multi .chosen-choices li.search-choice .search-choice-close:hover { + background-position: -42px -10px; +} + +.chosen-container-multi .chosen-choices li.search-choice-disabled { + padding-right: 5px; + border: 1px solid #ccc; + background-color: #e4e4e4; + background-image: -webkit-gradient(linear, left top, left bottom, color-stop(20%, #f4f4f4), color-stop(50%, #f0f0f0), color-stop(52%, #e8e8e8), to(#eee)); + background-image: linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eee 100%); + color: #666; +} + +.chosen-container-multi .chosen-choices li.search-choice-focus { + background: #d4d4d4; +} + +.chosen-container-multi .chosen-choices li.search-choice-focus .search-choice-close { + background-position: -42px -10px; +} + +.chosen-container-multi .chosen-results { + margin: 0; + padding: 0; +} + +.chosen-container-multi .chosen-drop .result-selected { + display: list-item; + color: #ccc; + cursor: default; +} + +.chosen-container-active a.chosen-single { + color: #515155; + text-decoration: none; + text-shadow: none; + -webkit-box-shadow: none; + box-shadow: none; +} + +.chosen-container-active.chosen-with-drop a.chosen-single div { + border-left: none; + background: transparent; +} + +.chosen-container-active.chosen-with-drop a.chosen-single div b { + background-position: -18px 2px; +} + +.chosen-container-active .chosen-choices { + border: 1px solid #5897fb; + -webkit-box-shadow: 0 0 5px rgba(0, 0, 0, 0.3); + box-shadow: 0 0 5px rgba(0, 0, 0, 0.3); +} + +.chosen-container-active .chosen-choices li.search-field input[type="text"] { + color: #222 !important; +} + +.chosen-disabled { + opacity: 0.5 !important; + cursor: default; +} + +.chosen-disabled .chosen-single { + cursor: default; +} + +.chosen-disabled .chosen-choices .search-choice .search-choice-close { + cursor: default; +} + +.chosen-rtl { + text-align: right; +} + +.chosen-rtl .chosen-single { + overflow: visible; + padding: 0 8px 0 0; +} + +.chosen-rtl .chosen-single span { + margin-right: 0; + margin-left: 26px; + direction: rtl; +} + +.chosen-rtl .chosen-single-with-deselect span { + margin-left: 38px; +} + +.chosen-rtl .chosen-single div { + right: auto; + left: 3px; +} + +.chosen-rtl .chosen-single abbr { + right: auto; + left: 26px; +} + +.chosen-rtl .chosen-choices li { + float: right; +} + +.chosen-rtl .chosen-choices li.search-field input[type="text"] { + direction: rtl; +} + +.chosen-rtl .chosen-choices li.search-choice { + margin: 3px 5px 3px 0; + padding: 3px 5px 3px 19px; +} + +.chosen-rtl .chosen-choices li.search-choice .search-choice-close { + right: auto; + left: 4px; +} + +.chosen-rtl.chosen-container-single .chosen-results { + margin: 0 0 4px 4px; + padding: 0 4px 0 0; +} + +.chosen-rtl .chosen-results li.group-option { + padding-right: 15px; + padding-left: 0; +} + +.chosen-rtl.chosen-container-active.chosen-with-drop .chosen-single div { + border-right: none; +} + +.chosen-rtl .chosen-search input[type="text"] { + padding: 4px 5px 4px 20px; + background: url("chosen-sprite.png") no-repeat -30px -20px; + direction: rtl; +} + +.chosen-rtl.chosen-container-single .chosen-single div b { + background-position: 6px 2px; +} + +.chosen-rtl.chosen-container-single.chosen-with-drop .chosen-single div b { + background-position: -12px 2px; +} + +@media only screen and (-webkit-min-device-pixel-ratio: 1.5), only screen and (min-resolution: 144dpi), only screen and (min-resolution: 1.5dppx) { + .chosen-rtl .chosen-search input[type="text"], + .chosen-container-single .chosen-single abbr, + .chosen-container-single .chosen-single div b, + .chosen-container-single .chosen-search input[type="text"], + .chosen-container-multi .chosen-choices .search-choice .search-choice-close, + .chosen-container .chosen-results-scroll-down span, + .chosen-container .chosen-results-scroll-up span { + background-image: url("chosen-sprite@2x.png") !important; + background-size: 52px 37px !important; + background-repeat: no-repeat !important; + } +} + +.sub-section--comments { +} + .sub-section--comments__title { padding-left: 3.6rem; min-height: 3.7rem; @@ -998,6 +1548,17 @@ a.btn:focus, input.btn:focus, button.btn:focus { background-size: 2.38rem 2.5rem; } +.sub-section--comments .indented { + border-left: solid 2px #CCC; + padding-left: 1.5rem; +} + +.sub-section--comments .indented > .indented > .indented > .indented { + margin-left: 0rem; + border-left: none; + padding-left: 0rem; +} + .sub-section--comments > ul { padding: 0; margin: 0; @@ -1035,18 +1596,6 @@ a.btn:focus, input.btn:focus, button.btn:focus { padding-top: 1.6rem; } -.sub-section--comments ul ul { - border-left: solid 2px #CCC; - padding-left: 1.5rem; - margin-top: -1.6rem; - padding-top: 1.6rem; -} - -.sub-section--comments ul ul ul ul { - border-left: none; - padding-left: 0; -} - .sub-section--comments .comment-reply a { padding-left: 2.6rem; min-height: 3.7rem; @@ -1077,6 +1626,35 @@ a.btn:focus, input.btn:focus, button.btn:focus { text-decoration: none; } +.media--type-file { + margin-top: 16px; +} + +.field--type-file .file { + list-style: none; + background: transparent no-repeat left top; + background-size: 32px 38px; + padding-left: 45px; + display: block; + min-height: 38px; +} + +.field--type-file .file.file--mime-application-pdf { + background-image: url(../images/file--pdf.jpg); +} + +.field--type-file .file.file--mime-application-txt, .field--type-file .file.file--mime-application-rtf, .field--type-file .file.file--mime-application-doc, .field--type-file .file.file--mime-application-docx, .field--type-file .file.file--mime-application-odf, .field--type-file .file.file--mime-application-odg, .field--type-file .file.file--mime-application-odp, .field--type-file .file.file--mime-application-ods, .field--type-file .file.file--mime-application-odt, .field--type-file .file.file--mime-application-fodt, .field--type-file .file.file--mime-application-fodg, .field--type-file .file.file--mime-application-apges { + background-image: url(../images/file--txt.jpg); +} + +.field--type-file .file.file--mime-application-ppt, .field--type-file .file.file--mime-application-pptx, .field--type-file .file.file--mime-application-key { + background-image: url(../images/file--ppt.ppt); +} + +.field--type-file .file.file--mime-application-xls, .field--type-file .file.file--mime-application-xlsx, .field--type-file .file.file--mime-application-numbers { + background-image: url(../images/file--xls.jpg); +} + @media (min-width: 768px) { .general-footer { position: fixed !important; @@ -1587,23 +2165,9 @@ a.btn:focus, input.btn:focus, button.btn:focus { margin: 0 -15px; } -.newsfeed { - background-color: #FFFFFF; - text-align: left; -} - -.newsfeed p, .newsfeed h2, .newsfeed h3, .newsfeed h4, .newsfeed h5, .newsfeed h6, .newsfeed li { - max-width: 32em; -} - -.newsfeed article { - padding-left: 15px; - padding-right: 15px; - padding-top: 5.5rem; -} - -.newsfeed .sub-section { +.sub-section { border-top: solid 1px #a6a7ab; + margin-bottom: 16px; } .newsfeed__item h2 { @@ -1659,7 +2223,7 @@ a.btn:focus, input.btn:focus, button.btn:focus { padding-left: 25px; } -.newsfeed .newsfeed__item--teaser { +.newsfeed__item--teaser { background-image: url(../images/hr--wavy.svg); background-repeat: no-repeat; background-position: center top; @@ -1668,13 +2232,13 @@ a.btn:focus, input.btn:focus, button.btn:focus { margin-top: -30px; } -.newsfeed .newsfeed__item--teaser:first-child { +.newsfeed__item--teaser:first-child { padding-top: 4rem; background-image: none !important; margin-top: 0px; } -.newsfeed .newsfeed__item--pinned { +.newsfeed__item--pinned { color: #05111E; background-image: url(../images/hr--wavy.svg), -webkit-gradient(linear, left top, left bottom, color-stop(50%, #f0e7f7), color-stop(50%, #f0e7f7)); background-image: url(../images/hr--wavy.svg), linear-gradient(#f0e7f7 50%, #f0e7f7 50%); @@ -1683,15 +2247,15 @@ a.btn:focus, input.btn:focus, button.btn:focus { background-size: 100% 40px, 100% calc(100% - 28px); } -.newsfeed .newsfeed__item--pinned a, .newsfeed .newsfeed__item--pinned a:hover, .newsfeed .newsfeed__item--pinned h2 a, .newsfeed .newsfeed__item--pinned h2 a:hover { +.newsfeed__item--pinned a, .newsfeed__item--pinned a:hover, .newsfeed__item--pinned h2 a, .newsfeed__item--pinned h2 a:hover { text-shadow: 0 2px 0 #f0e7f7, 0 3px 0 #f0e7f7, 1px 2px 0 #f0e7f7, -1px 2px 0 #f0e7f7; } -.newsfeed .newsfeed__item--pinned.newsfeed__item--teaser:first-child { +.newsfeed__item--pinned.newsfeed__item--teaser:first-child { background-color: #f0e7f7; } -.newsfeed .newsfeed__item--unpublished { +.newsfeed__item--unpublished { color: #05111E; background-image: url(../images/hr--wavy.svg), -webkit-gradient(linear, left top, left bottom, color-stop(50%, #ffebeb), color-stop(50%, #ffebeb)); background-image: url(../images/hr--wavy.svg), linear-gradient(#ffebeb 50%, #ffebeb 50%); @@ -1700,11 +2264,11 @@ a.btn:focus, input.btn:focus, button.btn:focus { background-size: 100% 40px, 100% calc(100% - 28px); } -.newsfeed .newsfeed__item--unpublished > * a, .newsfeed .newsfeed__item--unpublished > * a:hover, .newsfeed .newsfeed__item--unpublished h2 a, .newsfeed .newsfeed__item--unpublished h2 a:hover { +.newsfeed__item--unpublished > * a, .newsfeed__item--unpublished > * a:hover, .newsfeed__item--unpublished h2 a, .newsfeed__item--unpublished h2 a:hover { text-shadow: 0 2px 0 #ffebeb, 0 3px 0 #ffebeb, 1px 2px 0 #ffebeb, -1px 2px 0 #ffebeb; } -.newsfeed .newsfeed__item--unpublished.newsfeed__item--teaser:first-child { +.newsfeed__item--unpublished.newsfeed__item--teaser:first-child { background-color: #ffebeb; } @@ -2150,6 +2714,15 @@ header.profile .profile__actions a.profile__actions--add2list:before { background-size: 2.7rem 2.3rem, 2.38rem 2.5rem; } +.related-events h3 { + margin-bottom: 1rem; +} + +.related-events h3 a { + font-weight: 700; + font-size: 1.6rem; +} + a.share { background: #515155 url(../images/share-icons.svg) no-repeat; display: inline-block; @@ -2244,13 +2817,4 @@ a.share--email { } } -.related-events h3 { - margin-bottom: 1rem; -} - -.related-events h3 a { - font-weight: 700; - font-size: 1.6rem; -} - /*# sourceMappingURL=style.css.map */ diff --git a/funkywave.theme b/funkywave.theme index 278a759..81c3c71 100644 --- a/funkywave.theme +++ b/funkywave.theme @@ -13,6 +13,7 @@ use Drupal\file\Entity\File; use Drupal\Core\Link; use Drupal\Core\StringTranslation\TranslatableMarkup; + /** * Implement template_preprocess_node(). */ @@ -136,7 +137,7 @@ function funkywave_preprocess_group(&$variables) { $variables['ngf_group_container_class'] = 'profile-shortinfo--no-group'; if ($group->field_ngf_group_visibility->value == NGF_GROUP_PUBLIC) { $variables['ngf_context_text'] = t('Public group'); - } + } elseif ($group->field_ngf_group_visibility->value == NGF_GROUP_PRIVATE) { $visibility_icon = 'fa fa-lock'; $variables['ngf_context_text'] = ' ' . t('Private group'); @@ -145,7 +146,7 @@ function funkywave_preprocess_group(&$variables) { $visibility_icon = 'fa fa-eye-slash'; $variables['ngf_context_text'] = ' ' . t('Secret group'); } - + } } @@ -156,4 +157,33 @@ function funkywave_preprocess_group(&$variables) { function funkywave_theme_suggestions_user_alter(&$suggestions, array $variables) { $viewmode = $variables['elements']['#view_mode']; $suggestions[] = 'user__' . $viewmode; -} \ No newline at end of file +} + +/** + * Implements hook_theme_form_alter() + * The form id becomes the data attribute on the input fields and submit button +**/ +function funkywave_form_alter(&$form, FormStateInterface $form_state, $form_id) { + $form['actions']['submit']['#attributes']['data-twig-suggestion'] = $form['#id']; + $suggestion = str_replace(['-'], '_', $form['#id']); + $form['keys']['#attributes']['data-twig-suggestion'] = $suggestion; +} + +/** + * theme suggestions input alter to create the completely custom and flexible template suggestion +**/ +function funkywave_theme_suggestions_input_alter(&$suggestions, array $variables) { + $element = $variables['element']; + if (isset($element['#attributes']['data-twig-suggestion'])) { + $suggestion_suffix = str_replace(['-'], '_', $element['#attributes']['data-twig-suggestion']); + $suggestions[] = 'input__' . $element['#type'] . '__' . $suggestion_suffix; + } +} + +/** + * Implements hook_theme_suggestions_container_alter(). + */ +function funkywave_theme_suggestions_container_alter(&$suggestions, array $variables) { + $element = $variables['element']; + $suggestions[] = 'container__' . $element['#type']; +} diff --git a/templates/content/group--ngf-event.html.twig b/templates/content/group--ngf-event.html.twig index 68939e4..347d015 100644 --- a/templates/content/group--ngf-event.html.twig +++ b/templates/content/group--ngf-event.html.twig @@ -135,7 +135,7 @@ {% if content.field_ngf_address['#items'] is not empty %}

{% trans %} Location {% endtrans %}

-

{{ content.field_ngf_venue|field_raw('value') }}

+

{{ content.field_ngf_venue|field_raw('value') }}

{{ content.field_ngf_address|field_value }}
{% endif %} diff --git a/templates/field/field--comment.html.twig b/templates/field/field--comment.html.twig index d67fdc0..9dd8b6c 100644 --- a/templates/field/field--comment.html.twig +++ b/templates/field/field--comment.html.twig @@ -52,7 +52,6 @@ {% if comment_form %}
- {{ comment_form }}
{% endif %} diff --git a/templates/form/container--actions.html.twig b/templates/form/container--actions.html.twig new file mode 100644 index 0000000..9884ca1 --- /dev/null +++ b/templates/form/container--actions.html.twig @@ -0,0 +1,30 @@ +{# +/** + * @file + * Theme override of a container used to wrap child elements. + * + * Used for grouped form items. Can also be used as a theme wrapper for any + * renderable element, to surround it with a
and HTML attributes. + * See \Drupal\Core\Render\Element\RenderElement for more + * information on the #theme_wrappers render array property, and + * \Drupal\Core\Render\Element\container for usage of the container render + * element. + * + * Available variables: + * - attributes: HTML attributes for the containing element. + * - children: The rendered child elements of the container. + * - has_parent: A flag to indicate that the container has one or more parent + containers. + * + * @see template_preprocess_container() + */ +#} + +{% + set classes = [ + 'form__block', + 'form__block--onecol', + 'btn-list--right', + ] +%} +{{ children }}
diff --git a/templates/form/input--submit--comment-form.html.twig b/templates/form/input--submit--comment-form.html.twig new file mode 100644 index 0000000..5cc8d18 --- /dev/null +++ b/templates/form/input--submit--comment-form.html.twig @@ -0,0 +1,24 @@ +{# +/** + * @file + * Theme override for an 'input' #type form element. + * + * Available variables: + * - attributes: A list of HTML attributes for the input element. + * - children: Optional additional rendered elements. + * + * @see template_preprocess_input() + */ +#} + +{% + set classes = [ + 'btn', + 'btn--green', + ] +%} + + + + {{ attributes.value }} + diff --git a/templates/form/input--submit--comments-abc.html.twig b/templates/form/input--submit--comments-abc.html.twig new file mode 100644 index 0000000..d5f4c8d --- /dev/null +++ b/templates/form/input--submit--comments-abc.html.twig @@ -0,0 +1,22 @@ +{# +/** + * @file + * Theme override for an 'input' #type form element. + * + * Available variables: + * - attributes: A list of HTML attributes for the input element. + * - children: Optional additional rendered elements. + * + * @see template_preprocess_input() + */ +#} + +{% + set classes = [ + 'btn', + 'btn-green', + ] +%} + +{{ children }} +
abc
diff --git a/templates/user/user--compact.html.twig b/templates/user/user--compact.html.twig index a094556..76f115e 100644 --- a/templates/user/user--compact.html.twig +++ b/templates/user/user--compact.html.twig @@ -32,4 +32,4 @@ %} {% endblock profileinfo %} -{# |field_target_entity.uri.value|image_style('thumbnail') #} \ No newline at end of file +{# |field_target_entity.uri.value|image_style('thumbnail') #} From 421b6602a8d15b13afeff0eba99debceb86a843d Mon Sep 17 00:00:00 2001 From: Eric Lemonne Date: Tue, 19 Jun 2018 16:51:38 +0200 Subject: [PATCH 075/200] NGF-246: implement theme suggestion and twig templates bases for error pages like 404 --- funkywave.theme | 18 ++++++ templates/layout/page--error--404.html.twig | 72 +++++++++++++++++++++ templates/layout/page--error.html.twig | 72 +++++++++++++++++++++ 3 files changed, 162 insertions(+) create mode 100644 templates/layout/page--error--404.html.twig create mode 100644 templates/layout/page--error.html.twig diff --git a/funkywave.theme b/funkywave.theme index 81c3c71..ec247d6 100644 --- a/funkywave.theme +++ b/funkywave.theme @@ -187,3 +187,21 @@ function funkywave_theme_suggestions_container_alter(&$suggestions, array $varia $element = $variables['element']; $suggestions[] = 'container__' . $element['#type']; } + +/** + * Implements hook_theme_suggestions_HOOK_alter(). + */ +function funkywave_theme_suggestions_page_alter(array &$suggestions, array $variables) { + // Get Request Object. + $request = \Drupal::request(); + + // If there is HTTP Exception.. + if ($exception = $request->attributes->get('exception')) { + // Get the status code. + $status_code = $exception->getStatusCode(); + if (in_array($status_code, array(401, 403, 404))) { + $suggestions[] = 'page__error'; + $suggestions[] .= 'page__error__' . $status_code; + } + } +} diff --git a/templates/layout/page--error--404.html.twig b/templates/layout/page--error--404.html.twig new file mode 100644 index 0000000..fcd9f7b --- /dev/null +++ b/templates/layout/page--error--404.html.twig @@ -0,0 +1,72 @@ +{# +/** + * @file + * Theme override to display a single page. + * + * The doctype, html, head and body tags are not in this template. Instead they + * can be found in the html.html.twig template in this directory. + * + * Available variables: + * + * General utility variables: + * - base_path: The base URL path of the Drupal installation. Will usually be + * "/" unless you have installed Drupal in a sub-directory. + * - is_front: A flag indicating if the current page is the front page. + * - logged_in: A flag indicating if the user is registered and signed in. + * - is_admin: A flag indicating if the user has permission to access + * administration pages. + * + * Site identity: + * - front_page: The URL of the front page. Use this instead of base_path when + * linking to the front page. This includes the language domain or prefix. + * + * Page content (in order of occurrence in the default page.html.twig): + * - node: Fully loaded node, if there is an automatically-loaded node + * associated with the page and the node ID is the second argument in the + * page's path (e.g. node/12345 and node/12345/revisions, but not + * comment/reply/12345). + * + * Regions: + * - page.header: Items for the header region. + * - page.primary_menu: Items for the primary menu region. + * - page.secondary_menu: Items for the secondary menu region. + * - page.highlighted: Items for the highlighted content region. + * - page.help: Dynamic help text, mostly for admin pages. + * - page.content: The main content of the current page. + * - page.sidebar_first: Items for the first sidebar. + * - page.sidebar_second: Items for the second sidebar. + * - page.footer: Items for the footer region. + * - page.breadcrumb: Items for the breadcrumb region. + * + * @see template_preprocess_page() + * @see html.html.twig + */ +#} +
+ +
+ {{ page.logo_area }} +
+ +
+ {{ page.header }} +
+ +
+ + {# link is in html.html.twig #} + +
+ {{ page.content }} + +
{# /.layout-content #} + +
+ + {% if page.footer %} +
+ {{ page.footer }} +
+ {% endif %} + +
{# /.layout-container #} diff --git a/templates/layout/page--error.html.twig b/templates/layout/page--error.html.twig new file mode 100644 index 0000000..fcd9f7b --- /dev/null +++ b/templates/layout/page--error.html.twig @@ -0,0 +1,72 @@ +{# +/** + * @file + * Theme override to display a single page. + * + * The doctype, html, head and body tags are not in this template. Instead they + * can be found in the html.html.twig template in this directory. + * + * Available variables: + * + * General utility variables: + * - base_path: The base URL path of the Drupal installation. Will usually be + * "/" unless you have installed Drupal in a sub-directory. + * - is_front: A flag indicating if the current page is the front page. + * - logged_in: A flag indicating if the user is registered and signed in. + * - is_admin: A flag indicating if the user has permission to access + * administration pages. + * + * Site identity: + * - front_page: The URL of the front page. Use this instead of base_path when + * linking to the front page. This includes the language domain or prefix. + * + * Page content (in order of occurrence in the default page.html.twig): + * - node: Fully loaded node, if there is an automatically-loaded node + * associated with the page and the node ID is the second argument in the + * page's path (e.g. node/12345 and node/12345/revisions, but not + * comment/reply/12345). + * + * Regions: + * - page.header: Items for the header region. + * - page.primary_menu: Items for the primary menu region. + * - page.secondary_menu: Items for the secondary menu region. + * - page.highlighted: Items for the highlighted content region. + * - page.help: Dynamic help text, mostly for admin pages. + * - page.content: The main content of the current page. + * - page.sidebar_first: Items for the first sidebar. + * - page.sidebar_second: Items for the second sidebar. + * - page.footer: Items for the footer region. + * - page.breadcrumb: Items for the breadcrumb region. + * + * @see template_preprocess_page() + * @see html.html.twig + */ +#} +
+ +
+ {{ page.logo_area }} +
+ +
+ {{ page.header }} +
+ +
+ + {# link is in html.html.twig #} + +
+ {{ page.content }} + +
{# /.layout-content #} + +
+ + {% if page.footer %} +
+ {{ page.footer }} +
+ {% endif %} + +
{# /.layout-container #} From 12cff169d2eda9da20ae1e5d70c330679b4e97b5 Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Wed, 20 Jun 2018 12:07:43 +0200 Subject: [PATCH 076/200] NGF-256: fix related content --- css/style.css | 4 +-- images/default_group.jpg | Bin 0 -> 23747 bytes images/default_user.jpg | Bin 0 -> 20264 bytes templates/content/group--ngf-event.html.twig | 2 +- .../content/node--ngf-discussion.html.twig | 32 ++++++++++-------- 5 files changed, 20 insertions(+), 18 deletions(-) create mode 100644 images/default_group.jpg create mode 100644 images/default_user.jpg diff --git a/css/style.css b/css/style.css index 1183eaa..a799581 100644 --- a/css/style.css +++ b/css/style.css @@ -135,7 +135,7 @@ form__block, .form__block { margin: 1.5rem 0 1rem; } -form__block--text label, form__fake-label, .form__block--text label, .form__fake-label { +form__block label, form__fake-label, .form__block label, .form__fake-label { display: block; font-weight: 600; margin-bottom: 0.3em; @@ -1723,7 +1723,7 @@ a.btn:focus, input.btn:focus, button.btn:focus { max-width: 270px; } - .general-footer ul { + .general-footer ul.menu { position: fixed; width: 100%; bottom: 0; diff --git a/images/default_group.jpg b/images/default_group.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2eb25ca66335838183c2e680dcc50d435ae4763d GIT binary patch literal 23747 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 diff --git a/templates/content/node--ngf-discussion.html.twig b/templates/content/node--ngf-discussion.html.twig index 3603470..75876ff 100644 --- a/templates/content/node--ngf-discussion.html.twig +++ b/templates/content/node--ngf-discussion.html.twig @@ -129,9 +129,9 @@ {% include "@patterns/button/pattern-button.html.twig" with { url: path('entity.node.canonical', {'node': content.show_more['#url'].routeParameters.node }), - label: content.show_more['#title'], + label: content.show_more['#title'], container_class: 'btn-list btn-list--right', - button_class: 'btn--green', + button_class: 'btn--green', } %} {% endif %} @@ -141,10 +141,10 @@ {% block related_topics %} - {# TODO + {# TODO {% include "@patterns/list/pattern-list.html.twig" - with { + with { items: content.field_ngf_interests['#items'], css_class: sub-section sub-section--related-taxonomy, label: content.field_ngf_interests['#title'], @@ -160,7 +160,7 @@ {% set label = content.field_ngf_interests['#title'] %} {% set items = content.field_ngf_interests['#items'] %} - {% set css_class = 'sub-section sub-section--related-taxonomy' %} + {% set css_class = 'sub-section sub-section--related-taxonomy' %} {% if items is not empty %}
@@ -187,17 +187,19 @@ {% block related_content %} {# to avoid endless loop #} {% if view_mode == "full" %} - - {% endif %} - {% endblock related_content %} + {# checks if the view returns a result, it needs a wrapper. needs improvement #} + {% if drupal_view_result('ngf_discussion_related_content', 'block') %} + + {% endif %} + {% endif %} + {% endblock related_content %} {# Comments #} {% if view_mode == "full" %} - {{ content.field_comments }} - {% endif %} - - + {{ content.field_comments }} + {% endif %} - \ No newline at end of file + From b866856d20bb5cfbb798b0739e0a66e99abc864f Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Wed, 20 Jun 2018 13:11:39 +0200 Subject: [PATCH 077/200] subgroups --- .../pattern-profile-networks.html.twig | 5 ++++- .../group--ngf-discussion-group--header.html.twig | 12 ++++++------ 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/patterns/profile_networks/pattern-profile-networks.html.twig b/patterns/profile_networks/pattern-profile-networks.html.twig index 9573be8..0d907a9 100644 --- a/patterns/profile_networks/pattern-profile-networks.html.twig +++ b/patterns/profile_networks/pattern-profile-networks.html.twig @@ -15,4 +15,7 @@ {% if profile_groups %}
  • {{ profile_groups }}
  • {% endif %} - \ No newline at end of file + {% if profile_subgroups %} +
  • {{ profile_subgroups }}
  • + {% endif %} + diff --git a/templates/group/group--ngf-discussion-group--header.html.twig b/templates/group/group--ngf-discussion-group--header.html.twig index c8f1ef9..1963f57 100644 --- a/templates/group/group--ngf-discussion-group--header.html.twig +++ b/templates/group/group--ngf-discussion-group--header.html.twig @@ -54,7 +54,7 @@ only %} {# profile meta #} - + {% include '@patterns/profile_meta/pattern-profile-meta.html.twig' with { profile_meta: content.field_ngf_group_visibility[0], @@ -62,7 +62,7 @@ only %} {# profile actions #} - + {% include '@patterns/profile_actions/pattern-profile-actions.html.twig' with { action_contact: 'todo contact', @@ -77,14 +77,14 @@ {# profile networks #} - {% include "@patterns/profile_networks/pattern-profile-networks.html.twig" - with { + {% include "@patterns/profile_networks/pattern-profile-networks.html.twig" + with { profile_members: content.members_followers['#items']['members']['#title'], profile_members_uri: content.members_followers['#items']['members']['#url'], profile_followers: content.members_followers['#items']['followers']['#title'], profile_followers_uri: content.members_followers['#items']['followers']['#url'], - profile_subgroups: 'todo subgroups', - profile_subgroups_uri: 'todo', + profile_subgroups: content.members_followers['#items']['subgroups']['#title'], + profile_subgroups_uri: content.members_followers['#items']['subgroups']['#url'], } only %} From 8af43bdfd8d5ae9a6a86d5a30ddd6ba9751402da Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Wed, 20 Jun 2018 17:14:09 +0200 Subject: [PATCH 078/200] NGF-258: group-full template for group info page added --- .../content/node--ngf-discussion.html.twig | 100 ++++++++++-------- ...roup--ngf-discussion-group--full.html.twig | 56 ++++++++++ templates/user/user.html.twig | 4 +- 3 files changed, 113 insertions(+), 47 deletions(-) create mode 100644 templates/group/group--ngf-discussion-group--full.html.twig diff --git a/templates/content/node--ngf-discussion.html.twig b/templates/content/node--ngf-discussion.html.twig index 75876ff..614e763 100644 --- a/templates/content/node--ngf-discussion.html.twig +++ b/templates/content/node--ngf-discussion.html.twig @@ -83,58 +83,67 @@ %} {{ attach_library('classy/node') }} - -
    - {{ title_prefix }} - {% if not page %} -

    - {{ label }} -

    - {% else %} -

    - {{ label }} -

    - {% endif %} - {#block postinfo #} - {% block postinfo %} - {% include "@patterns/profile-shortinfo/pattern-profile-shortinfo.html.twig" - with { - image_url: file_url(node.uid.entity.user_picture.entity.uri.value|image_style('thumbnail')), - title: node.owner.full_name.value, - url: path('entity.user.canonical', {'user': user.id}), - logged_in: logged_in, - context_text: ngf_context_text, - subpic: ngf_sub_picture, - container_class: ngf_group_container_class, - } - %} - {% endblock postinfo %} - {# end block postinfo #} - {# block coverimage #} - {% block coverimage %} - {% if content.field_ngf_cover_image is not empty %} - {{ content.field_ngf_cover_image }} +{% block article %} + + {% block header %} +
    + {{ title_prefix }} + {% if not page %} +

    + {{ label }} +

    + {% else %} +

    + {{ label }} +

    {% endif %} - {% endblock coverimage %} + + {#block postinfo #} + {% block postinfo %} + {% include "@patterns/profile-shortinfo/pattern-profile-shortinfo.html.twig" + with { + image_url: file_url(node.uid.entity.user_picture.entity.uri.value|image_style('thumbnail')), + title: node.owner.full_name.value, + url: path('entity.user.canonical', {'user': user.id}), + logged_in: logged_in, + context_text: ngf_context_text, + subpic: ngf_sub_picture, + container_class: ngf_group_container_class, + } + %} + {% endblock postinfo %} + {# end block postinfo #} + + {# block coverimage #} + {% block coverimage %} + {% if content.field_ngf_cover_image is not empty %} + {{ content.field_ngf_cover_image }} + {% endif %} + {% endblock coverimage %}
    + {% endblock header %} {# Introtext #} - {{ content.field_ngf_introtext }} - - {# Show more button (will only be printed in teaser view mode) #} - {% if content.show_more %} - {% include "@patterns/button/pattern-button.html.twig" - with { - url: path('entity.node.canonical', {'node': content.show_more['#url'].routeParameters.node }), - label: content.show_more['#title'], - container_class: 'btn-list btn-list--right', - button_class: 'btn--green', - } - %} - {% endif %} + {% block introtext %} + {{ content.field_ngf_introtext }} + {% endblock introtext %} + + {% block show_more %} + {# Show more button (will only be printed in teaser view mode) #} + {% if content.show_more %} + {% include "@patterns/button/pattern-button.html.twig" + with { + url: path('entity.node.canonical', {'node': content.show_more['#url'].routeParameters.node }), + label: content.show_more['#title'], + container_class: 'btn-list btn-list--right', + button_class: 'btn--green', + } + %} + {% endif %} + {% endblock show_more %} {# Show description (paragraphs) #} {{ content.field_ngf_description }} @@ -203,3 +212,4 @@ {% endif %} +{% endblock article %} diff --git a/templates/group/group--ngf-discussion-group--full.html.twig b/templates/group/group--ngf-discussion-group--full.html.twig new file mode 100644 index 0000000..92b2ff0 --- /dev/null +++ b/templates/group/group--ngf-discussion-group--full.html.twig @@ -0,0 +1,56 @@ +{# +/** + * @file + * Default theme implementation to display a group. + * + * Available variables: + * - group: The group entity with limited access to object properties and + * methods. Only "getter" methods (method names starting with "get", "has", + * or "is") and a few common methods such as "id" and "label" are available. + * Calling other methods (such as group.delete) will result in an exception. + * - label: The title of the group. + * - content: All group items. Use {{ content }} to print them all, + * or print a subset such as {{ content.field_example }}. Use + * {{ content|without('field_example') }} to temporarily suppress the + * printing of a given child element. + * - url: Direct URL of the current group. + * - attributes: HTML attributes for the containing element. + * The attributes.class element may contain one or more of the following + * classes: + * - group: The current template type (also known as a "theming hook"). + * - group--[type]: The current group type. For example, if the group is a + * "Classroom" it would result in "group--classroom". Note that the machine + * name will often be in a short form of the human readable label. + * - group--[view_mode]: The View Mode of the group; for example, a + * teaser would result in: "group--teaser", and full: "group--full". + * - title_attributes: Same as attributes, except applied to the main title + * tag that appears in the template. + * - content_attributes: Same as attributes, except applied to the main + * content tag that appears in the template. + * - title_prefix: Additional output populated by modules, intended to be + * displayed in front of the main title tag that appears in the template. + * - title_suffix: Additional output populated by modules, intended to be + * displayed after the main title tag that appears in the template. + * - view_mode: View mode; for example, "teaser" or "full". + * - page: Flag for the full page state. Will be true if view_mode is 'full'. + * + * @see template_preprocess_group() + * + * @ingroup themeable + */ +#} + + +{% embed '@funkywave/group/group--ngf-discussion-group--header.html.twig' %} +{% endembed %} + +{{ content.field_ngf_description }} + +{% embed '@funkywave/content/node--ngf-discussion.html.twig' %} + {% block article %} + {# Grab only related_topics block #} + {% block related_topics %} + {{ parent() }} + {% endblock related_topics %} + {% endblock article %} +{% endembed %} diff --git a/templates/user/user.html.twig b/templates/user/user.html.twig index 11525d9..671b779 100644 --- a/templates/user/user.html.twig +++ b/templates/user/user.html.twig @@ -23,9 +23,9 @@ {% set last_name = content.field_ngf_last_name|field_raw.value %} {% set profile_pic_url = file_url(content.user_picture|field_target_entity.uri.value|image_style('thumbnail')) %} - {% if profile_pic_url %} + {% if profile_pic_url %} - {{ first_name }} {{ last_name }} {% trans %} Profile picture {% endtrans %} + {{ first_name }} {{ last_name }} {% trans %} Profile picture {% endtrans %} {% endif %} From 8fe34ed8e1af4f7c102c98ac09ef7994702d1a98 Mon Sep 17 00:00:00 2001 From: Nikolay Lobachev Date: Thu, 21 Jun 2018 18:14:37 +0200 Subject: [PATCH 079/200] User styling --- css/autocomplete.css | 12 +++++++ funkywave.theme | 13 +++++--- .../pattern-profileheader-top.html.twig | 6 +++- templates/form/input--textfield.html.twig | 3 ++ templates/user/user--profile.html.twig | 33 +++++++++++++++++++ templates/user/user.html.twig | 1 + 6 files changed, 62 insertions(+), 6 deletions(-) create mode 100644 css/autocomplete.css create mode 100644 templates/form/input--textfield.html.twig create mode 100644 templates/user/user--profile.html.twig diff --git a/css/autocomplete.css b/css/autocomplete.css new file mode 100644 index 0000000..b7f0b95 --- /dev/null +++ b/css/autocomplete.css @@ -0,0 +1,12 @@ +/** + * @file + * Table drag behavior. + * + * @see tabledrag.js + */ +.field-multiple-drag, +.tabledrag-hide, +.tabledrag-toggle-weight-wrapper, +a.tabledrag-handle .handle { + display: none; +} diff --git a/funkywave.theme b/funkywave.theme index ec247d6..e041b8a 100644 --- a/funkywave.theme +++ b/funkywave.theme @@ -98,14 +98,17 @@ function _funkywave_group_context($entity, $group, &$variables) { function funkywave_preprocess_user(&$vars) { $user = $vars['user']; +// var_dump($user->full_name->value); +// exit(); // get user image - if (!empty($user->user_picture[0])) { - $cover_image = $user->user_picture[0]->entity->getFileUri(); - $image_url = ImageStyle::load('thumbnail')->buildUrl($cover_image); - $vars['user_pic'] = $image_url; +// kint($user->user_picture); + if (!empty($user->user_picture->entity)) { + $cover_image = $user->user_picture->entity->getFileUri(); + $vars['user_pic'] = ImageStyle::load('thumbnail')->buildUrl($cover_image); // get user name - $vars['user_name'] = $user->getUsername(); } + $vars['user_name'] = $user->getUsername(); + $vars['full_name'] = $user->full_name->value; } /** diff --git a/patterns/profile_header_top/pattern-profileheader-top.html.twig b/patterns/profile_header_top/pattern-profileheader-top.html.twig index dd285af..e27bcfa 100644 --- a/patterns/profile_header_top/pattern-profileheader-top.html.twig +++ b/patterns/profile_header_top/pattern-profileheader-top.html.twig @@ -8,7 +8,11 @@ {% if profile_uri %} - {{ profile_title }} +{% endif %} + {% if profile_pic_uri %} + {{ profile_title }} + {% endif %} +{% if profile_uri %} {% endif %} diff --git a/templates/form/input--textfield.html.twig b/templates/form/input--textfield.html.twig new file mode 100644 index 0000000..04b6d0d --- /dev/null +++ b/templates/form/input--textfield.html.twig @@ -0,0 +1,3 @@ +
    +{{ children }} +
    diff --git a/templates/user/user--profile.html.twig b/templates/user/user--profile.html.twig new file mode 100644 index 0000000..fa1c406 --- /dev/null +++ b/templates/user/user--profile.html.twig @@ -0,0 +1,33 @@ +{# +/** + * @file + * Theme override to present all user data. + * + * This template is used when viewing a registered user's page, + * e.g., example.com/user/123. 123 being the user's ID. + * + * Available variables: + * - content: A list of content items. Use 'content' to print all content, or + * print a subset such as 'content.field_example'. Fields attached to a user + * such as 'user_picture' are available as 'content.user_picture'. + * - attributes: HTML attributes for the container element. + * - user: A Drupal User entity. + * + * @see template_preprocess_user() + */ +#} +
    + {# profile header top #} + {% include '@patterns/profile_header_top/pattern-profileheader-top.html.twig' + with { + profile_pic_uri: user_pic, + profile_title: full_name, + profile_uri: '/profile/' ~ user.id(), + profile_uri_back: 'back', + profile_uri_more: '/profile/' ~ user.id() ~ '/about' + } + only %} + + {{ content.action_panel }} + {{ content.followers_panel }} +
    diff --git a/templates/user/user.html.twig b/templates/user/user.html.twig index 11525d9..eb73007 100644 --- a/templates/user/user.html.twig +++ b/templates/user/user.html.twig @@ -39,3 +39,4 @@
    +{{ content }} \ No newline at end of file From 06de402ddcd224bf25d9875c317d4332b2693899 Mon Sep 17 00:00:00 2001 From: Sergey An Date: Thu, 21 Jun 2018 18:17:10 +0200 Subject: [PATCH 080/200] Fixed active state of the local tasks menu --- css/style.css | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/css/style.css b/css/style.css index a799581..6ce94fc 100644 --- a/css/style.css +++ b/css/style.css @@ -1857,6 +1857,11 @@ a.btn:focus, input.btn:focus, button.btn:focus { font-weight: 600; } +.inpage-nav .nav--tabs li a.is-active { + color: #515155; + font-weight: 600; +} + .inpage-nav .nav--tabs li a.active::after { margin-top: 2px; height: 5px; @@ -1865,6 +1870,14 @@ a.btn:focus, input.btn:focus, button.btn:focus { transition: all 0.2s; } +.inpage-nav .nav--tabs li a.is-active::after { + margin-top: 2px; + height: 5px; + background-color: #662D91; + -webkit-transition: all 0.2s; + transition: all 0.2s; +} + .inpage-nav .nav--tabs li a.active:hover { cursor: default; } From b13e8afb1a475a366da018baac0009e46fdec0c5 Mon Sep 17 00:00:00 2001 From: Nikolay Lobachev Date: Fri, 22 Jun 2018 16:38:37 +0200 Subject: [PATCH 081/200] Rename header view mode to ngf_header. Add override.css. Add new field template for interests. Improve discussions and group templates --- css/override.css | 0 funkywave.libraries.yml | 1 + funkywave.theme | 121 +++++++++++------- .../pattern-profileheader-top.html.twig | 19 ++- .../content/node--ngf-discussion.html.twig | 54 ++------ .../field--field-ngf-interests.html.twig | 16 +++ ...roup--ngf-discussion-group--full.html.twig | 2 +- ...-ngf-discussion-group--ngf-about.html.twig | 42 ++++++ ...gf-discussion-group--ngf-header.html.twig} | 4 +- templates/user/user--compact.html.twig | 2 +- templates/user/user--ngf-about.html.twig | 22 ++++ ....html.twig => user--ngf-profile.html.twig} | 7 +- 12 files changed, 186 insertions(+), 104 deletions(-) create mode 100644 css/override.css create mode 100644 templates/field/field--field-ngf-interests.html.twig create mode 100644 templates/group/group--ngf-discussion-group--ngf-about.html.twig rename templates/group/{group--ngf-discussion-group--header.html.twig => group--ngf-discussion-group--ngf-header.html.twig} (97%) create mode 100644 templates/user/user--ngf-about.html.twig rename templates/user/{user--profile.html.twig => user--ngf-profile.html.twig} (82%) diff --git a/css/override.css b/css/override.css new file mode 100644 index 0000000..e69de29 diff --git a/funkywave.libraries.yml b/funkywave.libraries.yml index d00220b..ed8b735 100644 --- a/funkywave.libraries.yml +++ b/funkywave.libraries.yml @@ -2,6 +2,7 @@ global-css: css: theme: css/style.css: {} + css/override.css: {} global-js: js: js/script.js: {} diff --git a/funkywave.theme b/funkywave.theme index e041b8a..32d12b1 100644 --- a/funkywave.theme +++ b/funkywave.theme @@ -12,6 +12,7 @@ use Drupal\media\Entity\Media; use Drupal\file\Entity\File; use Drupal\Core\Link; use Drupal\Core\StringTranslation\TranslatableMarkup; +use \Drupal\Core\Url; /** @@ -43,6 +44,15 @@ function funkywave_preprocess_node(&$variables) { } elseif ($view_mode == 'ngf_teaser_user_commented') { $variables['ngf_context_text'] = t('Commented'); } + + $variables['classes'] = [ + 'newsfeed__item', + 'newsfeed__item--' . $node->bundle(), + $node->isPromoted() ? 'newsfeed__item--promoted' : '', + $node->isSticky() ? 'newsfeed__item--sticky' : '', + !$node->isPublished() ? 'node--unpublished newsfeed__item--unpublished' : '', + 'newsfeed__item--' . $view_mode, + ]; } } @@ -73,19 +83,6 @@ function _funkywave_group_context($entity, $group, &$variables) { $variables['ngf_sub_picture'] = $link_render; } - $visibility_icon = ''; - if (!empty($group->field_ngf_group_visibility)) { - if ($group->field_ngf_group_visibility->value == NGF_GROUP_PUBLIC) { - $visibility_icon = 'fa fa-eye-slash'; - } - elseif ($group->field_ngf_group_visibility->value == NGF_GROUP_PRIVATE) { - $visibility_icon = 'fa fa-lock'; - } - elseif ($group->field_ngf_group_visibility->value == NGF_GROUP_SECRET) { - $visibility_icon = 'fa fa-lock'; - } - } - $variables['ngf_context_text'] = t( 'Posted @created_date ago in @group_title', [ @@ -98,17 +95,31 @@ function _funkywave_group_context($entity, $group, &$variables) { function funkywave_preprocess_user(&$vars) { $user = $vars['user']; -// var_dump($user->full_name->value); -// exit(); - // get user image -// kint($user->user_picture); + + $view_mode = $vars['elements']['#view_mode']; + $user_id = $user->id(); + if (!empty($user->user_picture->entity)) { $cover_image = $user->user_picture->entity->getFileUri(); $vars['user_pic'] = ImageStyle::load('thumbnail')->buildUrl($cover_image); - // get user name } $vars['user_name'] = $user->getUsername(); $vars['full_name'] = $user->full_name->value; + $vars['profile_uri'] = Url::fromRoute('ngf_user_profile.page.profile', [ + 'user' => $user_id, + ])->toString(); + + if (\Drupal::routeMatch()->getRouteName() == 'ngf_user_profile.page.user_about') { + $vars['profile_uri_back'] = $vars['profile_uri']; + $vars['profile_uri_more'] = ''; + } + else { + $vars['profile_uri_back'] = ''; + $vars['profile_uri_more'] = Url::fromRoute('ngf_user_profile.page.user_about', [ + 'user' => $user_id, + ])->toString(); + } + } /** @@ -117,37 +128,57 @@ function funkywave_preprocess_user(&$vars) { function funkywave_preprocess_group(&$variables) { $group = $variables['group']; $view_mode = $variables['view_mode']; - $display_modes = [ - 'full', - 'teaser', - 'ngf_follow_up', - ]; - if (in_array($view_mode, $display_modes) && $group->getGroupType()->id() == 'ngf_event') { - // This is needed so the group name is printed along with {{content}}. - $variables['content']['label']['#printed'] = FALSE; - if (!empty($group->group)) { - _funkywave_group_context($group, $group->group, $variables); + if ($group->getGroupType()->id() == 'ngf_event') { + + $display_modes = [ + 'full', + 'teaser', + 'ngf_follow_up', + ]; + + if (in_array($view_mode, $display_modes)) { + // This is needed so the group name is printed along with {{content}}. + $variables['content']['label']['#printed'] = FALSE; + if (!empty($group->group)) { + _funkywave_group_context($group, $group->group, $variables); + } } + } + else if ($group->getGroupType()->id() == 'ngf_discussion_group') { - $display_modes = [ - 'teaser', - 'ngf_user_created', - ]; + $display_modes = [ + 'teaser', + 'ngf_user_created', + ]; - if ($group->getGroupType()->id() == 'ngf_discussion_group' && in_array($view_mode, $display_modes)) { - $variables['ngf_group_container_class'] = 'profile-shortinfo--no-group'; - if ($group->field_ngf_group_visibility->value == NGF_GROUP_PUBLIC) { - $variables['ngf_context_text'] = t('Public group'); - } - elseif ($group->field_ngf_group_visibility->value == NGF_GROUP_PRIVATE) { - $visibility_icon = 'fa fa-lock'; - $variables['ngf_context_text'] = ' ' . t('Private group'); + if (in_array($view_mode, $display_modes)) { + $variables['ngf_group_container_class'] = 'profile-shortinfo--no-group'; + if ($group->field_ngf_group_visibility->value == NGF_GROUP_PUBLIC) { + $variables['ngf_context_text'] = t('Public group'); + } + elseif ($group->field_ngf_group_visibility->value == NGF_GROUP_PRIVATE) { + $visibility_icon = 'fa fa-lock'; + $variables['ngf_context_text'] = ' ' . t('Private group'); + } + elseif ($group->field_ngf_group_visibility->value == NGF_GROUP_SECRET) { + $visibility_icon = 'fa fa-eye-slash'; + $variables['ngf_context_text'] = ' ' . t('Secret group'); + } } - elseif ($group->field_ngf_group_visibility->value == NGF_GROUP_SECRET) { - $visibility_icon = 'fa fa-eye-slash'; - $variables['ngf_context_text'] = ' ' . t('Secret group'); + + if ($view_mode == 'ngf_header') { + if (\Drupal::routeMatch()->getRouteName() == 'ngf_group.page.info') { + $variables['profile_uri_back'] = $group->url(); + $variables['profile_uri_more'] = ''; + } + else { + $variables['profile_uri_back'] = ''; + $variables['profile_uri_more'] = Url::fromRoute('ngf_group.page.info', [ + 'group' => $group->id(), + ])->toString(); + } } } @@ -202,9 +233,9 @@ function funkywave_theme_suggestions_page_alter(array &$suggestions, array $vari if ($exception = $request->attributes->get('exception')) { // Get the status code. $status_code = $exception->getStatusCode(); - if (in_array($status_code, array(401, 403, 404))) { + if (in_array($status_code, [401, 403, 404])) { $suggestions[] = 'page__error'; - $suggestions[] .= 'page__error__' . $status_code; + $suggestions[] = 'page__error__' . $status_code; } } } diff --git a/patterns/profile_header_top/pattern-profileheader-top.html.twig b/patterns/profile_header_top/pattern-profileheader-top.html.twig index e27bcfa..2df5b4c 100644 --- a/patterns/profile_header_top/pattern-profileheader-top.html.twig +++ b/patterns/profile_header_top/pattern-profileheader-top.html.twig @@ -4,8 +4,6 @@ * post info pattern. */ #} - - {% if profile_uri %} {% endif %} @@ -21,12 +19,21 @@ {% endif %} {% if profile_uri_more %} - {% trans %} Learn more {% endtrans %}{% trans %} about {% endtrans %}{{ profile_title }} + + {% trans %} Learn more {% endtrans %}{% trans %} about {% endtrans %}{{ profile_title }} {% endif %} {% if profile_uri_back %} - {% trans %}Back to profile page {% endtrans %}{% trans %} of {% endtrans %} {{ profile_title }} - + + {% trans %}Back to page {% endtrans %}{% trans %} of {% endtrans %} {{ profile_title }} + {% endif %} - + +{% if profile_location %} +
      +
    • + {{ profile_location }} +
    • +
    +{% endif %} \ No newline at end of file diff --git a/templates/content/node--ngf-discussion.html.twig b/templates/content/node--ngf-discussion.html.twig index 614e763..1b1fd62 100644 --- a/templates/content/node--ngf-discussion.html.twig +++ b/templates/content/node--ngf-discussion.html.twig @@ -71,35 +71,20 @@ */ #} -{% - set classes = [ - 'newsfeed__item', - 'newsfeed__item--' ~ node.bundle|clean_class, - node.isPromoted() ? 'newsfeed__item--promoted', - node.isSticky() ? 'newsfeed__item--sticky', - not node.isPublished() ? 'node--unpublished newsfeed__item--unpublished', - view_mode ? 'newsfeed__item--' ~ view_mode|clean_class, - ] -%} - {{ attach_library('classy/node') }} - {% block article %} {% block header %}
    {{ title_prefix }} - {% if not page %} -

    - {{ label }} -

    - {% else %} -

    - {{ label }} -

    - {% endif %} - +

    + {% if not page %} + {{ label }} + {% else %} + {{ label }} + {% endif %} +

    {#block postinfo #} {% block postinfo %} {% include "@patterns/profile-shortinfo/pattern-profile-shortinfo.html.twig" @@ -165,30 +150,7 @@ } %} #} - - - {% set label = content.field_ngf_interests['#title'] %} - {% set items = content.field_ngf_interests['#items'] %} - {% set css_class = 'sub-section sub-section--related-taxonomy' %} - - {% if items is not empty %} -
    - {% if label is not empty %} -

    {{ label }}

    - {% endif %} - {% if items is not empty %} - - {% endif %} -
    - {% endif %} + {{ content.field_ngf_interests }} {% endblock related_topics %} diff --git a/templates/field/field--field-ngf-interests.html.twig b/templates/field/field--field-ngf-interests.html.twig new file mode 100644 index 0000000..558ff9d --- /dev/null +++ b/templates/field/field--field-ngf-interests.html.twig @@ -0,0 +1,16 @@ +{% if items is not empty %} + +{% endif %} \ No newline at end of file diff --git a/templates/group/group--ngf-discussion-group--full.html.twig b/templates/group/group--ngf-discussion-group--full.html.twig index 92b2ff0..62d5bec 100644 --- a/templates/group/group--ngf-discussion-group--full.html.twig +++ b/templates/group/group--ngf-discussion-group--full.html.twig @@ -41,7 +41,7 @@ #} -{% embed '@funkywave/group/group--ngf-discussion-group--header.html.twig' %} +{% embed '@funkywave/group/group--ngf-discussion-group--ngf-header.html.twig' %} {% endembed %} {{ content.field_ngf_description }} diff --git a/templates/group/group--ngf-discussion-group--ngf-about.html.twig b/templates/group/group--ngf-discussion-group--ngf-about.html.twig new file mode 100644 index 0000000..1e7ab65 --- /dev/null +++ b/templates/group/group--ngf-discussion-group--ngf-about.html.twig @@ -0,0 +1,42 @@ +{# +/** + * @file + * Default theme implementation to display a group. + * + * Available variables: + * - group: The group entity with limited access to object properties and + * methods. Only "getter" methods (method names starting with "get", "has", + * or "is") and a few common methods such as "id" and "label" are available. + * Calling other methods (such as group.delete) will result in an exception. + * - label: The title of the group. + * - content: All group items. Use {{ content }} to print them all, + * or print a subset such as {{ content.field_example }}. Use + * {{ content|without('field_example') }} to temporarily suppress the + * printing of a given child element. + * - url: Direct URL of the current group. + * - attributes: HTML attributes for the containing element. + * The attributes.class element may contain one or more of the following + * classes: + * - group: The current template type (also known as a "theming hook"). + * - group--[type]: The current group type. For example, if the group is a + * "Classroom" it would result in "group--classroom". Note that the machine + * name will often be in a short form of the human readable label. + * - group--[view_mode]: The View Mode of the group; for example, a + * teaser would result in: "group--teaser", and full: "group--full". + * - title_attributes: Same as attributes, except applied to the main title + * tag that appears in the template. + * - content_attributes: Same as attributes, except applied to the main + * content tag that appears in the template. + * - title_prefix: Additional output populated by modules, intended to be + * displayed in front of the main title tag that appears in the template. + * - title_suffix: Additional output populated by modules, intended to be + * displayed after the main title tag that appears in the template. + * - view_mode: View mode; for example, "teaser" or "full". + * - page: Flag for the full page state. Will be true if view_mode is 'full'. + * + * @see template_preprocess_group() + * + * @ingroup themeable + */ +#} +{{ content }} \ No newline at end of file diff --git a/templates/group/group--ngf-discussion-group--header.html.twig b/templates/group/group--ngf-discussion-group--ngf-header.html.twig similarity index 97% rename from templates/group/group--ngf-discussion-group--header.html.twig rename to templates/group/group--ngf-discussion-group--ngf-header.html.twig index 1963f57..f400b04 100644 --- a/templates/group/group--ngf-discussion-group--header.html.twig +++ b/templates/group/group--ngf-discussion-group--ngf-header.html.twig @@ -43,13 +43,13 @@
    {# profile header top #} - {% include '@patterns/profile_header_top/pattern-profileheader-top.html.twig' with { profile_pic_uri: file_url(content.field_ngf_cover_image|field_target_entity.field_media_image.entity.uri.value|image_style('thumbnail')), profile_title: label, profile_uri: url, - profile_uri_back: 'todo', + profile_uri_back: profile_uri_back, + profile_uri_more: profile_uri_more } only %} diff --git a/templates/user/user--compact.html.twig b/templates/user/user--compact.html.twig index 76f115e..ded5746 100644 --- a/templates/user/user--compact.html.twig +++ b/templates/user/user--compact.html.twig @@ -23,7 +23,7 @@ {% include "@patterns/profile-shortinfo/pattern-profile-shortinfo.html.twig" with { image_url: file_url(user.user_picture.entity.uri.value|image_style('thumbnail')), - title: content.full_name.0['#context'].value, + title: full_name, url: path('entity.user.canonical', {'user': user.id}), context_text: 'ngf_context_text', logged_in: logged_in, diff --git a/templates/user/user--ngf-about.html.twig b/templates/user/user--ngf-about.html.twig new file mode 100644 index 0000000..dde2f9c --- /dev/null +++ b/templates/user/user--ngf-about.html.twig @@ -0,0 +1,22 @@ +{# +/** + * @file + * Theme override to present all user data. + * + * This template is used when viewing a registered user's page, + * e.g., example.com/user/123. 123 being the user's ID. + * + * Available variables: + * - content: A list of content items. Use 'content' to print all content, or + * print a subset such as 'content.field_example'. Fields attached to a user + * such as 'user_picture' are available as 'content.user_picture'. + * - attributes: HTML attributes for the container element. + * - user: A Drupal User entity. + * + * @see template_preprocess_user() + */ +#} +
    +

    {% trans %}About{% endtrans %} {{ full_name }}

    + {{ content }} +
    \ No newline at end of file diff --git a/templates/user/user--profile.html.twig b/templates/user/user--ngf-profile.html.twig similarity index 82% rename from templates/user/user--profile.html.twig rename to templates/user/user--ngf-profile.html.twig index fa1c406..3eab20a 100644 --- a/templates/user/user--profile.html.twig +++ b/templates/user/user--ngf-profile.html.twig @@ -22,9 +22,10 @@ with { profile_pic_uri: user_pic, profile_title: full_name, - profile_uri: '/profile/' ~ user.id(), - profile_uri_back: 'back', - profile_uri_more: '/profile/' ~ user.id() ~ '/about' + profile_location: content.field_ngf_city|field_value, + profile_uri: profile_uri, + profile_uri_back: profile_uri_back, + profile_uri_more: profile_uri_more } only %} From 29b2dd3fc38081cd8f344c6fb9d7799ea05c3c95 Mon Sep 17 00:00:00 2001 From: Eric Lemonne Date: Fri, 22 Jun 2018 16:43:00 +0200 Subject: [PATCH 082/200] NGF-257: set a default user picture --- funkywave.theme | 7 +++---- .../profile-shortinfo/pattern-profile-shortinfo.html.twig | 5 +++++ 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/funkywave.theme b/funkywave.theme index e041b8a..a93370d 100644 --- a/funkywave.theme +++ b/funkywave.theme @@ -98,15 +98,14 @@ function _funkywave_group_context($entity, $group, &$variables) { function funkywave_preprocess_user(&$vars) { $user = $vars['user']; -// var_dump($user->full_name->value); -// exit(); - // get user image -// kint($user->user_picture); if (!empty($user->user_picture->entity)) { $cover_image = $user->user_picture->entity->getFileUri(); $vars['user_pic'] = ImageStyle::load('thumbnail')->buildUrl($cover_image); // get user name } + else { + $vars['user_pic'] = file_create_url($vars['directory'] . '/images/default_user.jpg');; + } $vars['user_name'] = $user->getUsername(); $vars['full_name'] = $user->full_name->value; } diff --git a/patterns/profile-shortinfo/pattern-profile-shortinfo.html.twig b/patterns/profile-shortinfo/pattern-profile-shortinfo.html.twig index c2b46cb..5ac049c 100644 --- a/patterns/profile-shortinfo/pattern-profile-shortinfo.html.twig +++ b/patterns/profile-shortinfo/pattern-profile-shortinfo.html.twig @@ -4,6 +4,11 @@ * post info pattern. */ #} + +{% if node.uid.entity.user_picture.entity.uri.value is empty %} + {% set image_url = file_url(directory ~ '/images/default_user.jpg') %} +{% endif %} +
    {% if logged_in %} From 90a87e6b9f64f742a9e4885f404754d7b4ac1204 Mon Sep 17 00:00:00 2001 From: Eric Lemonne Date: Fri, 22 Jun 2018 17:18:48 +0200 Subject: [PATCH 083/200] NGF-257: remove semi-colon --- funkywave.theme | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/funkywave.theme b/funkywave.theme index a93370d..337f15d 100644 --- a/funkywave.theme +++ b/funkywave.theme @@ -104,7 +104,7 @@ function funkywave_preprocess_user(&$vars) { // get user name } else { - $vars['user_pic'] = file_create_url($vars['directory'] . '/images/default_user.jpg');; + $vars['user_pic'] = file_create_url($vars['directory'] . '/images/default_user.jpg'); } $vars['user_name'] = $user->getUsername(); $vars['full_name'] = $user->full_name->value; From db169cb1bad5f9f00a03633b16c724b1cc67b4c8 Mon Sep 17 00:00:00 2001 From: Sergey An Date: Fri, 22 Jun 2018 18:47:58 +0200 Subject: [PATCH 084/200] Added styles and images for login page --- css/style.css | 186 +++++++++++++++--- images/header-arch-only.svg | 23 +++ images/homepage-illustration.jpg | Bin 0 -> 92570 bytes images/logo_futurium_lab.svg | 47 +++++ .../layout/page--front--anonymous.html.twig | 65 ++++++ templates/layout/page.html.twig | 4 +- 6 files changed, 299 insertions(+), 26 deletions(-) create mode 100644 images/header-arch-only.svg create mode 100644 images/homepage-illustration.jpg create mode 100644 images/logo_futurium_lab.svg create mode 100644 templates/layout/page--front--anonymous.html.twig diff --git a/css/style.css b/css/style.css index 6ce94fc..4d3b277 100644 --- a/css/style.css +++ b/css/style.css @@ -80,6 +80,29 @@ a:not(.toolbar-item):hover { overflow: hidden; } +.general-container--card { + height: auto; + width: 100%; + max-width: 768px; + background-color: #FFFFFF; + margin: auto; + text-align: center; + border-bottom-left-radius: 25px; + border-bottom-right-radius: 25px; + -webkit-box-shadow: 0px 0px 25px black; + box-shadow: 0px 0px 25px black; +} + +.general-container--card main { + min-height: auto; + float: none; + width: 100%; + max-width: 32em; + margin: auto !important; + padding: 75px 0px 0px 0px; + text-align: left; +} + main { margin-top: -36px; padding: 0px 15px 75px 15px; @@ -107,7 +130,6 @@ main *:not(img):not(svg)::selection { margin-top: 0; margin-left: 33%; width: 66%; - padding-top: 75px; padding: 75px 15px 0px 15px; } } @@ -124,7 +146,7 @@ main *:not(img):not(svg)::selection { } .form-wrapper { - padding: inherit; + padding: 0px 15px 30px 15px; } .wf-active input, .wf-active textarea { @@ -138,6 +160,7 @@ form__block, .form__block { form__block label, form__fake-label, .form__block label, .form__fake-label { display: block; font-weight: 600; + text-align: left; margin-bottom: 0.3em; } @@ -531,7 +554,7 @@ form .form__block--toggle .label-text, .form .form__block--toggle .label-text { @media (min-width: 768px) { .form-wrapper { - padding: 0px 15px 30px 15px; + padding: 0px 0px 30px 0px; } main.form-wrapper { @@ -1535,9 +1558,6 @@ a.btn:focus, input.btn:focus, button.btn:focus { } } -.sub-section--comments { -} - .sub-section--comments__title { padding-left: 3.6rem; min-height: 3.7rem; @@ -1549,6 +1569,7 @@ a.btn:focus, input.btn:focus, button.btn:focus { } .sub-section--comments .indented { + margin-left: 0rem !important; border-left: solid 2px #CCC; padding-left: 1.5rem; } @@ -1655,6 +1676,44 @@ a.btn:focus, input.btn:focus, button.btn:focus { background-image: url(../images/file--xls.jpg); } +.general-footer--card { + position: relative !important; + bottom: auto; + z-index: auto; + width: 100%; +} + +.general-footer--card ul.menu { + padding: 0; + margin: 1.5rem; + margin-top: 3rem; +} + +.general-footer--card ul.menu li { + display: inline-block; +} + +.general-footer--card ul.menu li::after { + content: " | "; +} + +.general-footer--card ul.menu li a { + color: #a6a7ab; + text-shadow: 0 2px 0 #FFFFFF, 0 3px 0 #FFFFFF, 1px 2px 0 #FFFFFF, -1px 2px 0 #FFFFFF; + -webkit-box-shadow: 0 1px 0 0 #662D91; + box-shadow: 0 1px 0 0 #662D91; + -webkit-transition: all .2s ease; + transition: all .2s ease; +} + +.general-footer--card ul.menu li a:hover { + color: #1a3773; + -webkit-box-shadow: 0 1px 0 0 #662D91; + box-shadow: 0 1px 0 0 #662D91; + -webkit-transition: all .2s ease; + transition: all .2s ease; +} + @media (min-width: 768px) { .general-footer { position: fixed !important; @@ -1663,20 +1722,21 @@ a.btn:focus, input.btn:focus, button.btn:focus { width: 33%; } - .general-footer ul { + .general-footer ul.menu { padding: 0; margin: 1.5rem; + margin-top: 3rem; } - .general-footer ul li { + .general-footer ul.menu li { display: inline-block; } - .general-footer ul li::after { + .general-footer ul.menu li::after { content: " | "; } - .general-footer ul li a { + .general-footer ul.menu li a { color: #a6a7ab; text-shadow: 0 2px 0 #26252B, 0 3px 0 #26252B, 1px 2px 0 #26252B, -1px 2px 0 #26252B; -webkit-box-shadow: 0 1px 0 0 #c6c7cc; @@ -1685,13 +1745,51 @@ a.btn:focus, input.btn:focus, button.btn:focus { transition: all .2s ease; } - .general-footer ul li a:hover { + .general-footer ul.menu li a:hover { color: #1a3773; -webkit-box-shadow: 0 1px 0 0 #FFFFFF; box-shadow: 0 1px 0 0 #FFFFFF; -webkit-transition: all .2s ease; transition: all .2s ease; } + + .general-footer--card { + position: relative !important; + bottom: auto; + z-index: auto; + width: 100%; + } + + .general-footer--card ul.menu { + padding: 0; + margin: 1.5rem; + margin-top: 3rem; + } + + .general-footer--card ul.menu li { + display: inline-block; + } + + .general-footer--card ul.menu li::after { + content: " | "; + } + + .general-footer--card ul.menu li a { + color: #a6a7ab; + text-shadow: 0 2px 0 #FFFFFF, 0 3px 0 #FFFFFF, 1px 2px 0 #FFFFFF, -1px 2px 0 #FFFFFF; + -webkit-box-shadow: 0 1px 0 0 #662D91; + box-shadow: 0 1px 0 0 #662D91; + -webkit-transition: all .2s ease; + transition: all .2s ease; + } + + .general-footer--card ul.menu li a:hover { + color: #1a3773; + -webkit-box-shadow: 0 1px 0 0 #662D91; + box-shadow: 0 1px 0 0 #662D91; + -webkit-transition: all .2s ease; + transition: all .2s ease; + } } @media (min-width: 992px) { @@ -1728,6 +1826,28 @@ a.btn:focus, input.btn:focus, button.btn:focus { width: 100%; bottom: 0; } + + .general-footer--card { + background-color: transparent; + bottom: auto; + z-index: auto; + width: 100%; + height: auto; + padding: 0; + margin-bottom: 0; + } + + .general-footer--card > * { + position: auto; + width: 100%; + max-width: 100%; + } + + .general-footer--card ul.menu { + position: relative; + width: 100%; + bottom: 0; + } } .new-item { @@ -1747,6 +1867,37 @@ a.btn:focus, input.btn:focus, button.btn:focus { font-size: 2.2rem; } +.pre-banner { + width: 100%; + max-width: 768px; + background-image: url(../images/header-arch-only.svg); + background-repeat: no-repeat; + background-size: 100% 82px; + position: fixed; + left: 50%; + -webkit-transform: translateX(-50%); + transform: translateX(-50%); + min-height: 82px; +} + +.background--talk { + background-image: url(../images/homepage-illustration.jpg); + background-repeat: no-repeat; + background-size: 768px 400px; + background-position: center top; + min-height: calc(20vh + 82px); + background-color: #FFF; + padding-top: 120px; + text-align: center; +} + +.logo { + width: 100%; + max-width: 515px; + height: auto; + margin: auto; +} + @media (min-width: 768px) { .general-header { position: fixed; @@ -1857,11 +2008,6 @@ a.btn:focus, input.btn:focus, button.btn:focus { font-weight: 600; } -.inpage-nav .nav--tabs li a.is-active { - color: #515155; - font-weight: 600; -} - .inpage-nav .nav--tabs li a.active::after { margin-top: 2px; height: 5px; @@ -1870,14 +2016,6 @@ a.btn:focus, input.btn:focus, button.btn:focus { transition: all 0.2s; } -.inpage-nav .nav--tabs li a.is-active::after { - margin-top: 2px; - height: 5px; - background-color: #662D91; - -webkit-transition: all 0.2s; - transition: all 0.2s; -} - .inpage-nav .nav--tabs li a.active:hover { cursor: default; } diff --git a/images/header-arch-only.svg b/images/header-arch-only.svg new file mode 100644 index 0000000..28648b4 --- /dev/null +++ b/images/header-arch-only.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + diff --git a/images/homepage-illustration.jpg b/images/homepage-illustration.jpg new file mode 100644 index 0000000000000000000000000000000000000000..748eb9bf813b4835a68134c6465b301370b837b4 GIT binary patch literal 92570 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 literal 0 HcmV?d00001 diff --git a/images/logo_futurium_lab.svg b/images/logo_futurium_lab.svg new file mode 100644 index 0000000..df0a652 --- /dev/null +++ b/images/logo_futurium_lab.svg @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/templates/layout/page--front--anonymous.html.twig b/templates/layout/page--front--anonymous.html.twig new file mode 100644 index 0000000..79b5245 --- /dev/null +++ b/templates/layout/page--front--anonymous.html.twig @@ -0,0 +1,65 @@ +{# +/** + * @file + * Theme override to display a single page. + * + * The doctype, html, head and body tags are not in this template. Instead they + * can be found in the html.html.twig template in this directory. + * + * Available variables: + * + * General utility variables: + * - base_path: The base URL path of the Drupal installation. Will usually be + * "/" unless you have installed Drupal in a sub-directory. + * - is_front: A flag indicating if the current page is the front page. + * - logged_in: A flag indicating if the user is registered and signed in. + * - is_admin: A flag indicating if the user has permission to access + * administration pages. + * + * Site identity: + * - front_page: The URL of the front page. Use this instead of base_path when + * linking to the front page. This includes the language domain or prefix. + * + * Page content (in order of occurrence in the default page.html.twig): + * - node: Fully loaded node, if there is an automatically-loaded node + * associated with the page and the node ID is the second argument in the + * page's path (e.g. node/12345 and node/12345/revisions, but not + * comment/reply/12345). + * + * Regions: + * - page.header: Items for the header region. + * - page.primary_menu: Items for the primary menu region. + * - page.secondary_menu: Items for the secondary menu region. + * - page.highlighted: Items for the highlighted content region. + * - page.help: Dynamic help text, mostly for admin pages. + * - page.content: The main content of the current page. + * - page.sidebar_first: Items for the first sidebar. + * - page.sidebar_second: Items for the second sidebar. + * - page.footer: Items for the footer region. + * - page.breadcrumb: Items for the breadcrumb region. + * + * @see template_preprocess_page() + * @see html.html.twig + */ +#} +

    +
    +
    + +
    + +
    + {# link is in html.html.twig #} + +
    + {{ page.content }} +
    {# /.layout-content #} +
    + + {% if page.footer %} +
    + {{ page.footer }} +
    + {% endif %} + +
    {# /.layout-container #} diff --git a/templates/layout/page.html.twig b/templates/layout/page.html.twig index b9c6cc6..29c4eda 100644 --- a/templates/layout/page.html.twig +++ b/templates/layout/page.html.twig @@ -49,9 +49,9 @@
    - {{ page.header }} + {{ page.header }}
    - +
    {# link is in html.html.twig #} From 9593477ec601604fdeb8c4b19bc2535231ccecba Mon Sep 17 00:00:00 2001 From: Eric Lemonne Date: Mon, 25 Jun 2018 10:56:34 +0200 Subject: [PATCH 085/200] NGF-257: do not make a condition in the pattern --- .../profile-shortinfo/pattern-profile-shortinfo.html.twig | 4 ---- templates/content/node--ngf-discussion.html.twig | 8 +++++++- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/patterns/profile-shortinfo/pattern-profile-shortinfo.html.twig b/patterns/profile-shortinfo/pattern-profile-shortinfo.html.twig index 5ac049c..221c610 100644 --- a/patterns/profile-shortinfo/pattern-profile-shortinfo.html.twig +++ b/patterns/profile-shortinfo/pattern-profile-shortinfo.html.twig @@ -5,10 +5,6 @@ */ #} -{% if node.uid.entity.user_picture.entity.uri.value is empty %} - {% set image_url = file_url(directory ~ '/images/default_user.jpg') %} -{% endif %} -
    {% if logged_in %} diff --git a/templates/content/node--ngf-discussion.html.twig b/templates/content/node--ngf-discussion.html.twig index 614e763..debe856 100644 --- a/templates/content/node--ngf-discussion.html.twig +++ b/templates/content/node--ngf-discussion.html.twig @@ -82,6 +82,12 @@ ] %} +{% if node.uid.entity.user_picture.entity.uri.value is empty %} + {% set image_url = file_url(directory ~ '/images/default_user.jpg') %} + {% else %} + {% set image_url = file_url(node.uid.entity.user_picture.entity.uri.value|image_style('thumbnail')) %} +{% endif %} + {{ attach_library('classy/node') }} @@ -104,7 +110,7 @@ {% block postinfo %} {% include "@patterns/profile-shortinfo/pattern-profile-shortinfo.html.twig" with { - image_url: file_url(node.uid.entity.user_picture.entity.uri.value|image_style('thumbnail')), + image_url: image_url, title: node.owner.full_name.value, url: path('entity.user.canonical', {'user': user.id}), logged_in: logged_in, From a272ce04944553fc34d43c4089ca8c3c5eae6697 Mon Sep 17 00:00:00 2001 From: Eric Lemonne Date: Mon, 25 Jun 2018 15:26:31 +0200 Subject: [PATCH 086/200] NGF-257: default group image rendering --- funkywave.theme | 3 +++ .../group/group--ngf-discussion-group--header.html.twig | 7 ++++++- .../group/group--ngf-discussion-group--teaser.html.twig | 8 +++++++- 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/funkywave.theme b/funkywave.theme index 337f15d..c1f84e7 100644 --- a/funkywave.theme +++ b/funkywave.theme @@ -122,6 +122,9 @@ function funkywave_preprocess_group(&$variables) { 'ngf_follow_up', ]; + //* Create url for the default group image to be called in group templates. + $variables['group_pic'] = file_create_url($variables['directory'] . '/images/default_group.jpg'); + if (in_array($view_mode, $display_modes) && $group->getGroupType()->id() == 'ngf_event') { // This is needed so the group name is printed along with {{content}}. $variables['content']['label']['#printed'] = FALSE; diff --git a/templates/group/group--ngf-discussion-group--header.html.twig b/templates/group/group--ngf-discussion-group--header.html.twig index 1963f57..be55cc8 100644 --- a/templates/group/group--ngf-discussion-group--header.html.twig +++ b/templates/group/group--ngf-discussion-group--header.html.twig @@ -39,6 +39,11 @@ * @ingroup themeable */ #} +{% if content.field_ngf_cover_image|render is empty %} + {% set image_url = file_url(directory ~ '/images/default_group.jpg') %} +{% else %} + {% set image_url = file_url(content.field_ngf_cover_image|field_target_entity.field_media_image.entity.uri.value|image_style('thumbnail')) %} +{% endif %}
    @@ -46,7 +51,7 @@ {% include '@patterns/profile_header_top/pattern-profileheader-top.html.twig' with { - profile_pic_uri: file_url(content.field_ngf_cover_image|field_target_entity.field_media_image.entity.uri.value|image_style('thumbnail')), + profile_pic_uri: image_url, profile_title: label, profile_uri: url, profile_uri_back: 'todo', diff --git a/templates/group/group--ngf-discussion-group--teaser.html.twig b/templates/group/group--ngf-discussion-group--teaser.html.twig index b73ebfa..4b7d14e 100644 --- a/templates/group/group--ngf-discussion-group--teaser.html.twig +++ b/templates/group/group--ngf-discussion-group--teaser.html.twig @@ -40,9 +40,15 @@ */ #} +{% if content.field_ngf_cover_image|render is empty %} + {% set image_url = file_url(directory ~ '/images/default_group.jpg') %} +{% else %} + {% set image_url = file_url(content.field_ngf_cover_image|field_target_entity.field_media_image.entity.uri.value|image_style('thumbnail')) %} +{% endif %} + {% include "@patterns/profile-shortinfo/pattern-profile-shortinfo.html.twig" with { - image_url: file_url(content.field_ngf_cover_image|field_target_entity.field_media_image.entity.uri.value|image_style('thumbnail')), + image_url: image_url, title: label, url: url, context_text: ngf_context_text, From 8694ee7e4ce111eafcb8ff98ebe9364f313a6d65 Mon Sep 17 00:00:00 2001 From: Eric Lemonne Date: Mon, 25 Jun 2018 16:40:17 +0200 Subject: [PATCH 087/200] NGF-257: set defaut_user picture for user--compact profile --- templates/user/user--compact.html.twig | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/templates/user/user--compact.html.twig b/templates/user/user--compact.html.twig index ded5746..8ad72f5 100644 --- a/templates/user/user--compact.html.twig +++ b/templates/user/user--compact.html.twig @@ -19,10 +19,16 @@ {# block profile #} +{% if node.uid.entity.user_picture.entity.uri.value is empty %} + {% set image_url = file_url(directory ~ '/images/default_user.jpg') %} +{% else %} + {% set image_url = file_url(user.user_picture.entity.uri.value|image_style('thumbnail')) %} +{% endif %} + {% block profileinfo %} {% include "@patterns/profile-shortinfo/pattern-profile-shortinfo.html.twig" with { - image_url: file_url(user.user_picture.entity.uri.value|image_style('thumbnail')), + image_url: image_url, title: full_name, url: path('entity.user.canonical', {'user': user.id}), context_text: 'ngf_context_text', From 1f531422c19894c6d46daf1456997f31ffab1671 Mon Sep 17 00:00:00 2001 From: Eric Lemonne Date: Tue, 26 Jun 2018 14:29:38 +0200 Subject: [PATCH 088/200] NGF-257: correct condition, set defaut_user picture for user--compact profile --- templates/user/user--compact.html.twig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/templates/user/user--compact.html.twig b/templates/user/user--compact.html.twig index 8ad72f5..d9ad722 100644 --- a/templates/user/user--compact.html.twig +++ b/templates/user/user--compact.html.twig @@ -19,7 +19,7 @@ {# block profile #} -{% if node.uid.entity.user_picture.entity.uri.value is empty %} +{% if user.user_picture.entity.uri.value is empty %} {% set image_url = file_url(directory ~ '/images/default_user.jpg') %} {% else %} {% set image_url = file_url(user.user_picture.entity.uri.value|image_style('thumbnail')) %} From 3fef2a9693a0756c384aee65af8e8910f426a192 Mon Sep 17 00:00:00 2001 From: Eric Lemonne Date: Wed, 27 Jun 2018 13:12:30 +0200 Subject: [PATCH 089/200] NGF-268: add form__block class at element div --- templates/form/form-element.html.twig | 96 +++++++++++++++++++++++ templates/form/input--textfield.html.twig | 3 - 2 files changed, 96 insertions(+), 3 deletions(-) create mode 100644 templates/form/form-element.html.twig delete mode 100644 templates/form/input--textfield.html.twig diff --git a/templates/form/form-element.html.twig b/templates/form/form-element.html.twig new file mode 100644 index 0000000..a81c5a9 --- /dev/null +++ b/templates/form/form-element.html.twig @@ -0,0 +1,96 @@ +{# +/** + * @file + * Theme override for a form element. + * + * Available variables: + * - attributes: HTML attributes for the containing element. + * - errors: (optional) Any errors for this form element, may not be set. + * - prefix: (optional) The form element prefix, may not be set. + * - suffix: (optional) The form element suffix, may not be set. + * - required: The required marker, or empty if the associated form element is + * not required. + * - type: The type of the element. + * - name: The name of the element. + * - label: A rendered label element. + * - label_display: Label display setting. It can have these values: + * - before: The label is output before the element. This is the default. + * The label includes the #title and the required marker, if #required. + * - after: The label is output after the element. For example, this is used + * for radio and checkbox #type elements. If the #title is empty but the + * field is #required, the label will contain only the required marker. + * - invisible: Labels are critical for screen readers to enable them to + * properly navigate through forms but can be visually distracting. This + * property hides the label for everyone except screen readers. + * - attribute: Set the title attribute on the element to create a tooltip but + * output no label element. This is supported only for checkboxes and radios + * in \Drupal\Core\Render\Element\CompositeFormElementTrait::preRenderCompositeFormElement(). + * It is used where a visual label is not needed, such as a table of + * checkboxes where the row and column provide the context. The tooltip will + * include the title and required marker. + * - description: (optional) A list of description properties containing: + * - content: A description of the form element, may not be set. + * - attributes: (optional) A list of HTML attributes to apply to the + * description content wrapper. Will only be set when description is set. + * - description_display: Description display setting. It can have these values: + * - before: The description is output before the element. + * - after: The description is output after the element. This is the default + * value. + * - invisible: The description is output after the element, hidden visually + * but available to screen readers. + * - disabled: True if the element is disabled. + * - title_display: Title display setting. + * + * @see template_preprocess_form_element() + */ +#} +{% + set classes = [ + 'js-form-item', + 'form__block', + 'form-item', + 'js-form-type-' ~ type|clean_class, + 'form-type-' ~ type|clean_class, + 'js-form-item-' ~ name|clean_class, + 'form-item-' ~ name|clean_class, + title_display not in ['after', 'before'] ? 'form-no-label', + disabled == 'disabled' ? 'form-disabled', + errors ? 'form-item--error', + ] +%} +{% + set description_classes = [ + 'description', + description_display == 'invisible' ? 'visually-hidden', + ] +%} + + {% if label_display in ['before', 'invisible'] %} + {{ label }} + {% endif %} + {% if prefix is not empty %} + {{ prefix }} + {% endif %} + {% if description_display == 'before' and description.content %} + + {{ description.content }} +
    + {% endif %} + {{ children }} + {% if suffix is not empty %} + {{ suffix }} + {% endif %} + {% if label_display == 'after' %} + {{ label }} + {% endif %} + {% if errors %} +
    + {{ errors }} +
    + {% endif %} + {% if description_display in ['after', 'invisible'] and description.content %} + + {{ description.content }} +
    + {% endif %} +
    diff --git a/templates/form/input--textfield.html.twig b/templates/form/input--textfield.html.twig deleted file mode 100644 index 04b6d0d..0000000 --- a/templates/form/input--textfield.html.twig +++ /dev/null @@ -1,3 +0,0 @@ -
    -{{ children }} -
    From 0ce2de8e945c8a262ef02a856d966b472672e258 Mon Sep 17 00:00:00 2001 From: Eric Lemonne Date: Wed, 27 Jun 2018 13:42:28 +0200 Subject: [PATCH 090/200] NGF-268: add form__inout, form__input_text to textarea --- templates/form/textarea.html.twig | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 templates/form/textarea.html.twig diff --git a/templates/form/textarea.html.twig b/templates/form/textarea.html.twig new file mode 100644 index 0000000..d9eb0e0 --- /dev/null +++ b/templates/form/textarea.html.twig @@ -0,0 +1,25 @@ +{# +/** + * @file + * Theme override for a 'textarea' #type form element. + * + * Available variables + * - wrapper_attributes: A list of HTML attributes for the wrapper element. + * - attributes: A list of HTML attributes for the From 9b1864ac63382cdfd33e8823b9f59835800bb94a Mon Sep 17 00:00:00 2001 From: Eric Lemonne Date: Thu, 28 Jun 2018 10:40:39 +0200 Subject: [PATCH 091/200] NGF-257: default user picture for the group event --- templates/content/group--ngf-event.html.twig | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/templates/content/group--ngf-event.html.twig b/templates/content/group--ngf-event.html.twig index ed5c869..7909c01 100644 --- a/templates/content/group--ngf-event.html.twig +++ b/templates/content/group--ngf-event.html.twig @@ -64,10 +64,16 @@ {# block postinfo #} {% block postinfo %} + {% if group.uid.entity.user_picture.entity.uri.value is empty %} + {% set image_url = file_url(directory ~ '/images/default_user.jpg') %} + {% else %} + {% set image_url = file_url(group.uid.entity.user_picture.entity.uri.value|image_style('thumbnail')) %} + {% endif %} + {% include "@patterns/profile-shortinfo/pattern-profile-shortinfo.html.twig" with { title: group.uid.entity.name.value, - image_url: file_url(group.uid.entity.user_picture.entity.uri.value|image_style('thumbnail')), + image_url: image_url, logged_in: logged_in, context_text: ngf_context_text, subpic: ngf_sub_picture, From f069a6a00cbb0413c1f3c48c16c2dd808487b550 Mon Sep 17 00:00:00 2001 From: Eric Lemonne Date: Thu, 28 Jun 2018 12:15:39 +0200 Subject: [PATCH 092/200] NGF-268: add custom classes on label for required fields --- templates/form/form-element-label.html.twig | 31 +++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 templates/form/form-element-label.html.twig diff --git a/templates/form/form-element-label.html.twig b/templates/form/form-element-label.html.twig new file mode 100644 index 0000000..e876880 --- /dev/null +++ b/templates/form/form-element-label.html.twig @@ -0,0 +1,31 @@ +{# +/** + * @file + * Theme override for a form element label. + * + * Available variables: + * - title: The label's text. + * - title_display: Elements title_display setting. + * - required: An indicator for whether the associated form element is required. + * - attributes: A list of HTML attributes for the label. + * + * @see template_preprocess_form_element_label() + */ +#} +{% + set classes = [ + title_display == 'after' ? 'option', + title_display == 'invisible' ? 'visually-hidden', + required ? 'js-form-required', + required ? 'form-required', + ] +%} +{% if title is not empty or required %} + + {{ title }} + {% if required %}Mandatory field * + {% endif %} + +{% endif %} From 9228aa7ae24e83a8bd97d226f43ac4db0d51cb1c Mon Sep 17 00:00:00 2001 From: Eric Lemonne Date: Thu, 28 Jun 2018 12:25:42 +0200 Subject: [PATCH 093/200] NGF-268: delete label twig --- templates/form/form-element-label.html.twig | 31 --------------------- 1 file changed, 31 deletions(-) delete mode 100644 templates/form/form-element-label.html.twig diff --git a/templates/form/form-element-label.html.twig b/templates/form/form-element-label.html.twig deleted file mode 100644 index e876880..0000000 --- a/templates/form/form-element-label.html.twig +++ /dev/null @@ -1,31 +0,0 @@ -{# -/** - * @file - * Theme override for a form element label. - * - * Available variables: - * - title: The label's text. - * - title_display: Elements title_display setting. - * - required: An indicator for whether the associated form element is required. - * - attributes: A list of HTML attributes for the label. - * - * @see template_preprocess_form_element_label() - */ -#} -{% - set classes = [ - title_display == 'after' ? 'option', - title_display == 'invisible' ? 'visually-hidden', - required ? 'js-form-required', - required ? 'form-required', - ] -%} -{% if title is not empty or required %} - - {{ title }} - {% if required %}Mandatory field * - {% endif %} - -{% endif %} From c24bfd7e44d44a62d1fc5530259f548cb2d7682e Mon Sep 17 00:00:00 2001 From: Eric Lemonne Date: Thu, 28 Jun 2018 17:10:43 +0200 Subject: [PATCH 094/200] NGF-268: label required and button markup (generalised) --- funkywave.theme | 19 ++++++++++++ .../form/form-element-label--all.html.twig | 31 +++++++++++++++++++ ... input--submit--commentXXX-form.html.twig} | 0 templates/form/input--submit.html.twig | 24 ++++++++++++++ 4 files changed, 74 insertions(+) create mode 100644 templates/form/form-element-label--all.html.twig rename templates/form/{input--submit--comment-form.html.twig => input--submit--commentXXX-form.html.twig} (100%) create mode 100644 templates/form/input--submit.html.twig diff --git a/funkywave.theme b/funkywave.theme index ce57195..ac802f6 100644 --- a/funkywave.theme +++ b/funkywave.theme @@ -245,3 +245,22 @@ function funkywave_theme_suggestions_page_alter(array &$suggestions, array $vari } } } + +/** + * Implements hook_theme_suggestions_HOOK_alter(). + */ + +/* This is needed since ngf_user_registration injects a doubled label element */ +/* StepOne.php line 91 (ngf_user_registration) */ +/* Otherwise we could use the standard core form_element_label suggestion */ +function funkywave_theme_suggestions_form_element_label_alter(array &$suggestions, array $variables) { + $route_name = \Drupal::routeMatch()->getRouteName(); + + $contact_routes = array( + 'ngf_user_registration', + ); + + if (!in_array($route_name, $contact_routes)) { + $suggestions[] = 'form_element_label__all'; + } +} diff --git a/templates/form/form-element-label--all.html.twig b/templates/form/form-element-label--all.html.twig new file mode 100644 index 0000000..e876880 --- /dev/null +++ b/templates/form/form-element-label--all.html.twig @@ -0,0 +1,31 @@ +{# +/** + * @file + * Theme override for a form element label. + * + * Available variables: + * - title: The label's text. + * - title_display: Elements title_display setting. + * - required: An indicator for whether the associated form element is required. + * - attributes: A list of HTML attributes for the label. + * + * @see template_preprocess_form_element_label() + */ +#} +{% + set classes = [ + title_display == 'after' ? 'option', + title_display == 'invisible' ? 'visually-hidden', + required ? 'js-form-required', + required ? 'form-required', + ] +%} +{% if title is not empty or required %} + + {{ title }} + {% if required %}Mandatory field * + {% endif %} + +{% endif %} diff --git a/templates/form/input--submit--comment-form.html.twig b/templates/form/input--submit--commentXXX-form.html.twig similarity index 100% rename from templates/form/input--submit--comment-form.html.twig rename to templates/form/input--submit--commentXXX-form.html.twig diff --git a/templates/form/input--submit.html.twig b/templates/form/input--submit.html.twig new file mode 100644 index 0000000..2ab03fa --- /dev/null +++ b/templates/form/input--submit.html.twig @@ -0,0 +1,24 @@ +{# +/** + * @file + * Theme override for an 'input' #type form element. + * + * Available variables: + * - attributes: A list of HTML attributes for the input element. + * - children: Optional additional rendered elements. + * + * @see template_preprocess_input() + */ +#} + +{% +set classes = [ +'btn', +'btn--green', +] +%} + + + + {{ attributes.value }} + \ No newline at end of file From b31b12e0724892d33c60ab3cea0ae3687476e865 Mon Sep 17 00:00:00 2001 From: Eric Lemonne Date: Thu, 28 Jun 2018 17:19:58 +0200 Subject: [PATCH 095/200] NGF-268: deleted unecessary twig --- .../input--submit--commentXXX-form.html.twig | 24 ------------------- 1 file changed, 24 deletions(-) delete mode 100644 templates/form/input--submit--commentXXX-form.html.twig diff --git a/templates/form/input--submit--commentXXX-form.html.twig b/templates/form/input--submit--commentXXX-form.html.twig deleted file mode 100644 index 5cc8d18..0000000 --- a/templates/form/input--submit--commentXXX-form.html.twig +++ /dev/null @@ -1,24 +0,0 @@ -{# -/** - * @file - * Theme override for an 'input' #type form element. - * - * Available variables: - * - attributes: A list of HTML attributes for the input element. - * - children: Optional additional rendered elements. - * - * @see template_preprocess_input() - */ -#} - -{% - set classes = [ - 'btn', - 'btn--green', - ] -%} - - - - {{ attributes.value }} - From 9b348a0214c10577de0a45512c1675ac39bdfd95 Mon Sep 17 00:00:00 2001 From: Eric Lemonne Date: Fri, 29 Jun 2018 09:27:36 +0200 Subject: [PATCH 096/200] NGF-268: remove the + on submit button --- templates/form/input--submit.html.twig | 1 - 1 file changed, 1 deletion(-) diff --git a/templates/form/input--submit.html.twig b/templates/form/input--submit.html.twig index 2ab03fa..1f432cc 100644 --- a/templates/form/input--submit.html.twig +++ b/templates/form/input--submit.html.twig @@ -19,6 +19,5 @@ set classes = [ %} - {{ attributes.value }} \ No newline at end of file From 0a4913376827cb152f86118533094962d7c80985 Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Fri, 29 Jun 2018 10:17:05 +0200 Subject: [PATCH 097/200] NGF-288: template added for image copyright and wrapper for responsive video --- css/style.css | 563 ++++++++++++++++++- templates/content/group--ngf-event.html.twig | 6 +- templates/content/media--image.html.twig | 38 ++ templates/field/field--video.html.twig | 80 +++ 4 files changed, 653 insertions(+), 34 deletions(-) create mode 100644 templates/content/media--image.html.twig create mode 100644 templates/field/field--video.html.twig diff --git a/css/style.css b/css/style.css index 4d3b277..1babc06 100644 --- a/css/style.css +++ b/css/style.css @@ -25,6 +25,14 @@ body { background-size: 100% 80px; } +body.not-signed { + margin-top: 3.5rem; + background-image: url(../images/body-bckgrd--md.svg), -webkit-gradient(linear, left top, left bottom, from(#FFFFFF), to(#FFFFFF)); + background-image: url(../images/body-bckgrd--md.svg), linear-gradient(#FFFFFF, #FFFFFF); + background-position: 50% 3.5rem, center 0; + background-size: 100% 80px, 100% 3.5rem; +} + .wf-active body { font-family: "Raleway"; font-weight: 500; @@ -38,16 +46,27 @@ h1, h2, h3, h4, h5, h6 { font-family: "Raleway"; font-weight: bold; line-height: 1.3; - margin-bottom: -0.5em; - margin-top: 1.9em; + margin-bottom: 0.8em; +} + +h1 + h2, +h1 + h3, +h1 + p, +h2 + h3, +h2 + h4, +h2 + p, +h3 + h4, +h3 + h5, +h3 + p { + margin-top: -0.3em; } h4, h5, h6 { opacity: 0.9; } -p:last-child { - margin-bottom: 1em; +p + h2, p + h3, p + h4 { + margin-top: 1.8em; } a:not(.toolbar-item) { @@ -87,19 +106,19 @@ a:not(.toolbar-item):hover { background-color: #FFFFFF; margin: auto; text-align: center; - border-bottom-left-radius: 25px; - border-bottom-right-radius: 25px; - -webkit-box-shadow: 0px 0px 25px black; - box-shadow: 0px 0px 25px black; + border-bottom-left-radius: 0px; + border-bottom-right-radius: 0px; + -webkit-box-shadow: 0px 0px 25px rgba(0, 0, 0, 0.8); + box-shadow: 0px 0px 25px rgba(0, 0, 0, 0.8); } -.general-container--card main { +.background--talk > main { min-height: auto; float: none; width: 100%; max-width: 32em; margin: auto !important; - padding: 75px 0px 0px 0px; + padding: 15px 0px 0px 0px; text-align: left; } @@ -126,15 +145,32 @@ main *:not(img):not(svg)::selection { font-size: 1.6rem; } + body.not-signed { + margin-top: 0px; + background-image: url(../images/body-bckgrd--md.svg); + background-position: 50% 0px; + background-size: 100% 80px; + } + main { margin-top: 0; margin-left: 33%; width: 66%; padding: 75px 15px 0px 15px; } + + .general-container--card { + border-bottom-left-radius: 25px; + border-bottom-right-radius: 25px; + } } @media (min-width: 992px) { + .general-container { + -webkit-box-shadow: 0px 0px 25px rgba(0, 0, 0, 0.4); + box-shadow: 0px 0px 25px rgba(0, 0, 0, 0.4); + } + main { margin-top: -20px; margin-left: 25%; @@ -753,7 +789,7 @@ li.tag { height: auto; } -.no-display--sm, .no-display--md, .no-display--lg { +.no-display--sm { position: absolute !important; top: -9999px !important; left: -9999px !important; @@ -772,10 +808,20 @@ li.tag { opacity: 0.8; } -.text-danger { +.text-danger, a span.text-danger { color: #ff3939; } +.text-center { + text-align: center; + max-width: 100%; +} + +.text-small { + font-size: 0.8em; + margin: 0.4em 0; +} + .hr-text { line-height: 1em; position: relative; @@ -851,6 +897,19 @@ li.tag { top: 0; } +.account-info.account-info--menu-only { + width: 80px; + height: 88px; + background-image: url(../images/account-info__background--idle.svg); + background-position: left top; + background-size: 100% 100%; +} + +.account-info.account-info--menu-only .account-info__wrapper { + margin-top: 9px; + margin-left: 9px; +} + .account-info.account-info--notification { width: 93px; height: 85px; @@ -864,30 +923,40 @@ li.tag { margin-left: 27px; } -.account-info__wrapper { +.account-info a.account-info__wrapper { display: block; text-shadow: none; -webkit-box-shadow: none; box-shadow: none; - width: 48px; - height: 48px; + width: 54px; border-radius: 48px; margin-top: 11px; margin-left: 27px; + padding-bottom: 10px; + color: #FFFFFF; } -.account-info__wrapper:hover { +.account-info a.account-info__wrapper:hover { text-shadow: none; -webkit-box-shadow: none; box-shadow: none; } -.account-info__wrapper img { +.account-info a.account-info__wrapper img { height: 100%; width: 100%; + max-width: 48px; border-radius: 90px; } +.account-info a.account-info__wrapper .account-info__trigger-icon { + float: right; + margin-top: -11px; + padding: 0 3px; + z-index: 5005; + position: relative; +} + .account-info__profile { position: absolute; right: 10px; @@ -904,6 +973,61 @@ li.tag { height: 100%; } +.account-info .account-info__menu { + margin-top: 15px; +} + +.account-info .account-info__menu.account-info__dropdown { + display: none; + position: absolute; + width: 200px; + margin-left: calc( 65px - 200px); + margin-right: 15px; + background-color: #0c1935; + margin-top: -5px; + border-radius: 5px; + z-index: 5004; + -webkit-box-shadow: 0px 3px 3px 2px rgba(0, 0, 0, 0.3); + box-shadow: 0px 3px 3px 2px rgba(0, 0, 0, 0.3); + border: solid 1px rgba(255, 255, 255, 0.1); +} + +.account-info .account-info__menu.account-info__dropdown ul { + margin: 0; + list-style: none; + padding: 5px 15px; +} + +.account-info .account-info__menu.account-info__dropdown ul li { + border-bottom: solid 1px rgba(255, 255, 255, 0.5); + padding: 6px 0; +} + +.account-info .account-info__menu.account-info__dropdown ul li:first-child { + padding: 3px 0 6px; +} + +.account-info .account-info__menu.account-info__dropdown ul li:last-child { + border: none; + padding: 6px 0 3px; +} + +.account-info .account-info__menu.account-info__dropdown ul li a { + color: #FFFFFF; + text-shadow: none; + -webkit-box-shadow: none; + box-shadow: none; + padding: 6px 0; +} + +.account-info .account-info__menu.account-info__dropdown ul li a:hover { + color: #ff397f; +} + +.account-info .account-info__menu.account-info__dropdown ul li svg, .account-info .account-info__menu.account-info__dropdown ul li i { + margin-right: 15px; +} + .account-info .account-info__notifications { height: 21px; width: 21px; @@ -931,7 +1055,118 @@ li.tag { @media (min-width: 768px) { .account-info { - display: none; + position: relative !important; + z-index: 5000; + } + + .account-info a.account-info__wrapper { + width: auto; + height: auto; + text-shadow: none; + -webkit-box-shadow: none; + box-shadow: none; + color: #FFFFFF; + margin: 0 !important; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + padding: 0; + } + + .account-info a.account-info__wrapper:hover { + text-shadow: none; + -webkit-box-shadow: none; + box-shadow: none; + background: rgba(255, 255, 255, 0.1); + border-top-left-radius: 5rem; + border-bottom-left-radius: 5rem; + border-top-right-radius: 0.5rem; + border-bottom-right-radius: 0.5rem; + color: #ff397f; + } + + .account-info a.account-info__wrapper:hover img { + border: 2px solid #ff397f; + -webkit-box-shadow: 0px 0px 0px 2px rgba(255, 255, 255, 0.1); + box-shadow: 0px 0px 0px 2px rgba(255, 255, 255, 0.1); + -webkit-transition: all 0.2s; + transition: all 0.2s; + } + + .account-info a.account-info__wrapper img { + display: block; + width: 100%; + max-width: 46px; + height: auto; + border: 2px solid transparent; + -webkit-box-shadow: 0px 0px 0px 2px rgba(255, 255, 255, 0.75); + box-shadow: 0px 0px 0px 2px rgba(255, 255, 255, 0.75); + margin-right: 15px; + } + + .account-info a.account-info__wrapper .account-info__trigger-icon { + padding: 0px 5px 0; + margin-top: -5px; + } + + .account-info.account-info--notification { + width: calc(33vw - 30px); + height: auto; + max-width: 300px; + margin-right: 0; + background-image: none; + position: relative; + } + + .account-info.account-info--menu-only { + position: relative; + width: calc(33vw - 30px); + height: auto; + max-height: none; + max-width: 300px; + background-image: none; + } + + .account-info .account-info__menu { + border-bottom: solid 1px rgba(255, 255, 255, 0.7); + } + + .account-info .account-info__menu.account-info__dropdown { + position: relative; + width: auto; + margin: 0; + background-color: transparent; + padding: 15px 0; + -webkit-box-shadow: none; + box-shadow: none; + border: none; + } + + .account-info .account-info__menu.account-info__dropdown ul { + display: block; + padding: 0; + margin: 0; + list-style: none; + } +} + +@media (min-width: 992px) { + .account-info.account-info--notification, .account-info.account-info--menu-only { + width: calc(25vw - 30px); + max-width: 270px; + } +} + +@media (min-width: 1200px) { + .account-info { + z-index: 5000; + } + + .account-info.account-info--notification { + position: relative !important; } } @@ -939,6 +1174,24 @@ li.tag { text-align: right; } +.btn-list--left { + text-align: left; +} + +.btn-list--byside.btn-list--left { + float: left; +} + +.btn-list--byside.btn-list--right { + float: right; +} + +.btn[disabled] { + opacity: 0.7 !important; + cursor: not-allowed !important; + color: rgba(5, 17, 30, 0.5) !important; +} + .btn-list--center { text-align: center; width: 100%; @@ -952,6 +1205,7 @@ li.tag { .btn.btn--large { width: 100%; + max-width: 32em; padding: 0.3rem 1rem; font-size: 1.8rem; } @@ -972,11 +1226,11 @@ a.btn, input.btn, button.btn { cursor: pointer; } -a.btn:last-child, input.btn:last-child, button.btn:last-child { +a.btn:not(.btn--large):last-child, input.btn:not(.btn--large):last-child, button.btn:not(.btn--large):last-child { margin-right: 0px; } -a.btn:hover, input.btn:hover, button.btn:hover { +a.btn:not([disabled]):hover, input.btn:not([disabled]):hover, button.btn:not([disabled]):hover { color: #FFFFFF; } @@ -994,7 +1248,7 @@ a.btn:focus, input.btn:focus, button.btn:focus { text-shadow: none; } -.btn--green:hover { +.btn--green:not([disabled]):hover { background: #18917e; -webkit-transition: all 0.3s ease; transition: all 0.3s ease; @@ -1012,7 +1266,7 @@ a.btn:focus, input.btn:focus, button.btn:focus { text-shadow: none; } -.btn--blue:hover { +.btn--blue:not([disabled]):hover { background: #00a9d6; -webkit-transition: all 0.3s ease; transition: all 0.3s ease; @@ -1030,7 +1284,7 @@ a.btn:focus, input.btn:focus, button.btn:focus { text-shadow: none; } -.btn--grey:hover { +.btn--grey:not([disabled]):hover { background: #b0b2b9; -webkit-transition: all 0.3s ease; transition: all 0.3s ease; @@ -1586,6 +1840,8 @@ a.btn:focus, input.btn:focus, button.btn:focus { } .sub-section--comments ul.links.inline { + margin: 0; + padding: 0; padding-bottom: 15px; } @@ -1647,6 +1903,102 @@ a.btn:focus, input.btn:focus, button.btn:focus { text-decoration: none; } +.cta--wrapper { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + position: absolute; + top: 0; + width: 100%; +} + +.cta--sidebar { + color: #FFFFFF; + display: inline-block; + text-align: center; + width: 100%; + height: 3.5rem; + cursor: pointer; +} + +.cta--sidebar h3 { + margin-top: 0; + text-shadow: none; + color: #000; +} + +.cta--sidebar p { + margin: 0; + font-weight: 700; + text-shadow: none; + color: #000; + line-height: 3.5rem; + max-width: 100%; +} + +.cta--sidebar p span { + font-weight: 400; +} + +.cta--join { + background: rgba(102, 45, 145, 0.5); +} + +.cta--join:hover { + background: rgba(102, 45, 145, 0.8); + -webkit-transition: all 0.2s; + transition: all 0.2s; +} + +.cta--join:hover p { + color: #FFFFFF; +} + +.cta--signin { + background: rgba(102, 45, 145, 0.3); +} + +.cta--signin:hover { + background: rgba(102, 45, 145, 0.8); + -webkit-transition: all 0.2s; + transition: all 0.2s; +} + +.cta--signin:hover p { + color: #FFFFFF; +} + +@media (min-width: 768px) { + .cta--wrapper { + display: block; + position: relative; + top: auto; + } + + .cta--sidebar { + position: relative; + height: auto; + border-radius: 15px; + background-color: rgba(255, 255, 255, 0.2); + margin: 0px; + margin-bottom: 15px; + padding: 15px; + text-align: left; + -webkit-box-shadow: none; + box-shadow: none; + } + + .cta--sidebar h3, .cta--sidebar p { + color: #FFFFFF; + } + + .cta--sidebar p { + margin-bottom: 0; + margin-top: 1.4rem; + line-height: 1.8; + } +} + .media--type-file { margin-top: 16px; } @@ -1697,6 +2049,10 @@ a.btn:focus, input.btn:focus, button.btn:focus { content: " | "; } +.general-footer--card ul.menu li:last-child::after { + content: ""; +} + .general-footer--card ul.menu li a { color: #a6a7ab; text-shadow: 0 2px 0 #FFFFFF, 0 3px 0 #FFFFFF, 1px 2px 0 #FFFFFF, -1px 2px 0 #FFFFFF; @@ -1720,6 +2076,7 @@ a.btn:focus, input.btn:focus, button.btn:focus { bottom: 10px; z-index: 500; width: 33%; + background: #26252B; } .general-footer ul.menu { @@ -1878,12 +2235,26 @@ a.btn:focus, input.btn:focus, button.btn:focus { -webkit-transform: translateX(-50%); transform: translateX(-50%); min-height: 82px; + z-index: 1200; +} + +.logo-wrapper--index { + -webkit-box-shadow: 0px 0px 82px 13px rgba(255, 255, 255, 0.6); + box-shadow: 0px 0px 82px 13px rgba(255, 255, 255, 0.6); + background-color: rgba(255, 255, 255, 0.4); + padding: 15px; + border-radius: 35px; + max-width: calc(32em + 30px); + margin: auto; + -webkit-box-sizing: border-box; + box-sizing: border-box; } .background--talk { background-image: url(../images/homepage-illustration.jpg); background-repeat: no-repeat; background-size: 768px 400px; + background-size: contain; background-position: center top; min-height: calc(20vh + 82px); background-color: #FFF; @@ -1910,7 +2281,8 @@ a.btn:focus, input.btn:focus, button.btn:focus { background: #26252B; float: left; height: 100vh; - padding: 90px 15px 15px; + padding: 90px 15px 130px; + overflow: auto; } } @@ -2037,11 +2409,38 @@ a.btn:focus, input.btn:focus, button.btn:focus { width: 100vw; } -.logo-title { - font-weight: 900; - color: #FFFFFF; +img.logo { + height: auto; +} + +img.logo-cover { + max-width: 100%; + height: auto; +} + +h1.logo--title { margin: 0; - padding: 1.5vw; + padding: 15px; + padding-bottom: 0; +} + +a.logo__link { + text-decoration: none; + text-shadow: none; + -webkit-box-shadow: none; + box-shadow: none; + display: block; + background-image: url(../images/logo_futurium_lab_negatif.svg); + background-size: contain; + background-repeat: no-repeat; + width: calc(70vw - 15px); + max-width: 300px; + height: 0; + padding-top: 13.6%; +} + +a.logo__link span { + visibility: hidden; } @media (min-width: 768px) { @@ -2050,6 +2449,18 @@ a.btn:focus, input.btn:focus, button.btn:focus { z-index: 6; top: 0; background-image: none; + width: 33%; + padding: 15px; + } + + h1.logo--title { + margin: 0; + padding: 0px; + } + + a.logo__link { + width: 100%; + background-size: cover; } } @@ -2057,6 +2468,10 @@ a.btn:focus, input.btn:focus, button.btn:focus { .logo-area { width: 25%; } + + h1.logo--title { + max-width: 270px; + } } .navigation-menu { @@ -2115,6 +2530,10 @@ a.btn:focus, input.btn:focus, button.btn:focus { box-shadow: none; } +.not-signed .navigation-menu, .not-signed .new-item { + display: none; +} + @media (max-width: 767.98px) and (orientation: landscape) { .navigation-menu { background-position: center bottom; @@ -2128,13 +2547,17 @@ a.btn:focus, input.btn:focus, button.btn:focus { } @media (min-width: 768px) { + .not-signed .navigation-menu { + display: block; + } + .navigation-menu { position: relative; bottom: auto; background: none; width: auto; height: auto; - max-height: auto; + max-height: none; padding-top: 15px; } @@ -2312,7 +2735,7 @@ a.btn:focus, input.btn:focus, button.btn:focus { } } -.newsfeed:first-child { +.newsfeed { margin: 0 -15px; } @@ -2349,8 +2772,49 @@ a.btn:focus, input.btn:focus, button.btn:focus { box-shadow: 0 1px 0 0 #662D91; } -.newsfeed__item__cover { +.newsfeed__item .field--name-field-ngf-cover-image { border-radius: 10px; + background: #1f1e23; + max-height: 320px; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + overflow: hidden; +} + +.newsfeed__item .field--name-field-ngf-cover-image img.responsive { + max-height: 320px; + width: auto; + -ms-flex-negative: 0; + flex-shrink: 0; + display: block; +} + +.newsfeed__legend-copyright { + font-size: 1.3rem; + margin-top: 0.1em; + color: #05111E; + opacity: 0.8; + text-align: center; + max-width: 100%; +} + +.newsfeed__legend-copyright a { + color: #515155 !important; + -webkit-box-shadow: 0 1px 0 0 #515155 !important; + box-shadow: 0 1px 0 0 #515155 !important; +} + +.newsfeed__legend-copyright a:hover { + color: #662D91 !important; + -webkit-box-shadow: 0 1px 0 0 #662D91 !important; + box-shadow: 0 1px 0 0 #662D91 !important; } .newsfeed__item--ngf-discussion h2 { @@ -2707,6 +3171,21 @@ header.profile .profile__link--about:hover i, header.profile .profile__link--abo transition: margin .2s; } +header.profile .profile__link { + -webkit-box-shadow: none; + box-shadow: none; +} + +header.profile .profile__link:hover { + -webkit-box-shadow: none; + box-shadow: none; +} + +header.profile .profile__qrcode { + max-width: 100%; + height: auto; +} + header.profile .profile__link--back { display: inline-block; margin-bottom: 1.8rem; @@ -2749,6 +3228,12 @@ header.profile .profile__location li::after { padding: 0 1rem; } +header.profile .profile__location li:last-child::after { + display: inline-block; + content: ""; + padding: 0 0rem; +} + header.profile .profile__meta li, header.profile .profile__location li { font-weight: bold; line-height: 1.5; @@ -2968,4 +3453,20 @@ a.share--email { } } +.field--type-video { + position: relative; + padding-bottom: 56.25%; + padding-top: 30px; height: 0; overflow: hidden; +} + +.field--type-video iframe, +.field--type-video object, +.field--type-video embed { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; +} + /*# sourceMappingURL=style.css.map */ diff --git a/templates/content/group--ngf-event.html.twig b/templates/content/group--ngf-event.html.twig index ed5c869..9fb1b01 100644 --- a/templates/content/group--ngf-event.html.twig +++ b/templates/content/group--ngf-event.html.twig @@ -139,12 +139,12 @@ {{ content.field_ngf_address|field_value }}
    {% endif %} -
    + {{ content.field_ngf_location }} +
    {% endblock eventdata %} - - + {# Event Summary #} {% block eventintrotext %} diff --git a/templates/content/media--image.html.twig b/templates/content/media--image.html.twig new file mode 100644 index 0000000..8307275 --- /dev/null +++ b/templates/content/media--image.html.twig @@ -0,0 +1,38 @@ +{# +/** + * @file + * Theme override to display a media item. + * + * Available variables: + * - name: Name of the media. + * - content: Media content. + * + * @see template_preprocess_media() + * + * @ingroup themeable + */ +#} +{% + set classes = [ + 'media', + 'media--type-' ~ media.bundle()|clean_class, + not media.isPublished() ? 'media--unpublished', + view_mode ? 'media--view-mode-' ~ view_mode|clean_class, + ] +%} + + {{ title_suffix.contextual_links }} + {% if content.field_media_image %} + {{ content.field_media_image }} + {% endif %} + {% if content.field_ngf_copyrights|render or content.field_ngf_author|render %} + + {% endif %} + diff --git a/templates/field/field--video.html.twig b/templates/field/field--video.html.twig new file mode 100644 index 0000000..0b10969 --- /dev/null +++ b/templates/field/field--video.html.twig @@ -0,0 +1,80 @@ +{# +/** + * @file + * Theme override for a field. + * + * To override output, copy the "field.html.twig" from the templates directory + * to your theme's directory and customize it, just like customizing other + * Drupal templates such as page.html.twig or node.html.twig. + * + * Instead of overriding the theming for all fields, you can also just override + * theming for a subset of fields using + * @link themeable Theme hook suggestions. @endlink For example, + * here are some theme hook suggestions that can be used for a field_foo field + * on an article node type: + * - field--node--field-foo--article.html.twig + * - field--node--field-foo.html.twig + * - field--node--article.html.twig + * - field--field-foo.html.twig + * - field--text-with-summary.html.twig + * - field.html.twig + * + * Available variables: + * - attributes: HTML attributes for the containing element. + * - label_hidden: Whether to show the field label or not. + * - title_attributes: HTML attributes for the title. + * - label: The label for the field. + * - multiple: TRUE if a field can contain multiple items. + * - items: List of all the field items. Each item contains: + * - attributes: List of HTML attributes for each item. + * - content: The field item's content. + * - entity_type: The entity type to which the field belongs. + * - field_name: The name of the field. + * - field_type: The type of the field. + * - label_display: The display settings for the label. + * + * + * @see template_preprocess_field() + */ +#} +{% + set classes = [ + 'field', + 'field--name-' ~ field_name|clean_class, + 'field--type-' ~ field_type|clean_class, + 'field--label-' ~ label_display, + ] +%} +{% + set title_classes = [ + 'field__label', + label_display == 'visually_hidden' ? 'visually-hidden', + ] +%} + +{% if label_hidden %} + {% if multiple %} + + {% for item in items %} + {{ item.content }} + {% endfor %} + + {% else %} + {% for item in items %} + {{ item.content }} + {% endfor %} + {% endif %} +{% else %} + + {{ label }} + {% if multiple %} +
    + {% endif %} + {% for item in items %} + {{ item.content }}
    + {% endfor %} + {% if multiple %} + + {% endif %} + +{% endif %} From 20c7e62af4b482452030e2b4177a051f507da050 Mon Sep 17 00:00:00 2001 From: Eric Lemonne Date: Fri, 29 Jun 2018 10:17:15 +0200 Subject: [PATCH 098/200] NGF-268: required attribute not needed on label element --- templates/form/form-element-label--all.html.twig | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/templates/form/form-element-label--all.html.twig b/templates/form/form-element-label--all.html.twig index e876880..e9e8ab4 100644 --- a/templates/form/form-element-label--all.html.twig +++ b/templates/form/form-element-label--all.html.twig @@ -21,9 +21,7 @@ ] %} {% if title is not empty or required %} - + {{ title }} {% if required %}Mandatory field * {% endif %} From afc3587354963d8b8f59f9f8811670f4af550966 Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Fri, 29 Jun 2018 11:22:47 +0200 Subject: [PATCH 099/200] NGF-289: cleanup unused files --- .../backup_pattern-postinfo.html.twig | 67 ----- .../postinfo-new.ui_patterns.yml | 44 ---- .../pattern-profileheader.html.twig | 95 ------- .../profileheader.ui_patterns.yml | 29 --- .../pattern-profileheader-top.html.twig | 8 +- .../content/backup_group--ngf-event.html.twig | 92 ------- .../content/backup_node--ngf-event.html.twig | 233 ------------------ templates/content/backup_node.html.twig | 154 ------------ templates/content/node--ngf-event.html.twig | 87 ------- .../input--submit--comments-abc.html.twig | 22 -- templates/paragraphs/paragraph.html.twig | 54 ---- templates/user/user--ngf-about.html.twig | 4 +- 12 files changed, 6 insertions(+), 883 deletions(-) delete mode 100644 patterns/profile-shortinfo/backup_pattern-postinfo.html.twig delete mode 100644 patterns/profile-shortinfo/postinfo-new.ui_patterns.yml delete mode 100644 patterns/profile_header/pattern-profileheader.html.twig delete mode 100644 patterns/profile_header/profileheader.ui_patterns.yml delete mode 100644 templates/content/backup_group--ngf-event.html.twig delete mode 100644 templates/content/backup_node--ngf-event.html.twig delete mode 100644 templates/content/backup_node.html.twig delete mode 100644 templates/content/node--ngf-event.html.twig delete mode 100644 templates/form/input--submit--comments-abc.html.twig delete mode 100644 templates/paragraphs/paragraph.html.twig diff --git a/patterns/profile-shortinfo/backup_pattern-postinfo.html.twig b/patterns/profile-shortinfo/backup_pattern-postinfo.html.twig deleted file mode 100644 index 12aeb49..0000000 --- a/patterns/profile-shortinfo/backup_pattern-postinfo.html.twig +++ /dev/null @@ -1,67 +0,0 @@ -{# -/** - * @file - * post info pattern. - */ -#} - -{% set groupclass = '' %} -{% if group_url and author_pic_uri %} - {% set groupclass = 'post-info--group' %} -{% else %} - {% set groupclass = 'post-info--no-group' %} -{% endif %} - -{% set mainpic = '' %} -{% set subpic = '' %} - -{% if author_pic_uri %} - {% set mainpic_uri = author_pic_uri %} - {% set mainpic_alt = profile_name %} - {% set mainpic_profile_uri = profile_uri %} - {% set mainpic_login_check = login_check %} - {% set subpic = group_url %} - {% set subpic_uri = group_pic_uri %} - {% set subpic_alt = group_name %} -{% else %} - {% set mainpic_uri = group_logo %} - {% set mainpic_alt = group_name %} - {% set mainpic_profile_uri = group_url %} - {% set mainpic_login_check = '1' %} -{% endif %} - - \ No newline at end of file diff --git a/patterns/profile-shortinfo/postinfo-new.ui_patterns.yml b/patterns/profile-shortinfo/postinfo-new.ui_patterns.yml deleted file mode 100644 index 571d9dd..0000000 --- a/patterns/profile-shortinfo/postinfo-new.ui_patterns.yml +++ /dev/null @@ -1,44 +0,0 @@ -postinfo: - label: Post-info - description: Block with author information and group information. - fields: - author_pic_uri: - type: url - label: Author picture url - description: Author picture - preview: http://www.attractivepartners.co.uk/create-perfect-profile-picture/ - profile_name: - type: text - label: Author name - description: The name of the author - preview: Peter Neyens - profile_uri: - type: url - label: Profile url - description: Url to the author profile - preview: https://en.wikipedia.org/wiki/User_profile - group_logo: - type: image - label: Group logo - description: Url to the author profile - preview: https://commons.wikimedia.org/wiki/File:Logo_TV_2015.png - group_url: - type: url - label: Group url - description: Url to the group - preview: https://www.google.com - group_name: - type: text - label: Group name - description: Group name - preview: The best group ever - login_check: - type: number - label: Logged in - description: Logged in gives a value of 1 - preview: 1 - creation_date: - type: date - label: Creation date - description: Creation date 'time ago' - preview: Tue, 05/08/2018 - 13:42 diff --git a/patterns/profile_header/pattern-profileheader.html.twig b/patterns/profile_header/pattern-profileheader.html.twig deleted file mode 100644 index d27e8f1..0000000 --- a/patterns/profile_header/pattern-profileheader.html.twig +++ /dev/null @@ -1,95 +0,0 @@ -{# -/** - * @file - * post info pattern. - */ -#} - -{% if author_pic_uri %} - {% set profile_pic_uri = author_pic_uri %} - {% set profile_title = author_name %} - {% set profile_uri = user_profile_uri %} - {% set profile_uri_more = user_profile_uri_more %} - {% set profile_uri_back = user_profile_uri_back %} - {% set profile_members = user_profile_members %} - {% set profile_members_uri = user_profile_members_uri %} - {% set profile_followers = user_profile_followers %} - {% set profile_followers_uri = user_profile_followers_uri %} - {% set profile_groups = user_profile_groups %} - {% set profile_groups_uri = user_profile_groups_uri %} - {% set action_contact_uri = user_action_contact_uri %} - {% set action_follow = user_action_follow %} -{% else %} - {% set profile_pic_uri = group_pic_uri %} - {% set profile_title = group_name %} - {% set profile_uri = group_profile_uri %} - {% set profile_uri_more = group_profile_uri_more %} - {% set profile_uri_back = group_profile_uri_back %} - {% set profile_members = group_profile_members %} - {% set profile_members_uri = group_profile_members_uri %} - {% set profile_followers = group_profile_followers %} - {% set profile_followers_uri = group_profile_followers_uri %} - {% set profile_groups = group_profile_subgroups %} - {% set profile_groups_uri = group_profile_subgroups_uri %} - {% set action_contact_uri = group_action_contact_uri %} - {% set action_follow = group_action_follow %} - {% set action_join = group_action_join %} - {% set action_join_uri = group_action_join_uri %} - {% set action_leave = group_action_leave %} - {% set action_leave_uri = group_action_leave_uri %} -{% endif %} - -{% set catch_cache = content|render %} - -{% if profile_uri %} - - {{ profile_title }} - -{% endif %} - -{% if profile_title %} -

    {{ profile_title }}

    -{% endif %} - -{% if profile_uri_more %} - {% trans %} Learn more {% endtrans %}{% trans %} about {% endtrans %}{{ profile_title }} - -{% endif %} - -{% if profile_uri_back %} - {% trans %}Back to profile page {% endtrans %}{% trans %} of {% endtrans %} {{ profile_title }} - -{% endif %} - -{% if group_visibility %} -
      -
    • {{ group_visibility }}
    • -
    -{% endif %} - - - - \ No newline at end of file diff --git a/patterns/profile_header/profileheader.ui_patterns.yml b/patterns/profile_header/profileheader.ui_patterns.yml deleted file mode 100644 index 3ae1975..0000000 --- a/patterns/profile_header/profileheader.ui_patterns.yml +++ /dev/null @@ -1,29 +0,0 @@ -postinfo: - label: Post-info - description: Block with author information and group information. - fields: - profile_pic_uri: - type: url - label: Profile picture url - description: Profile Picture url - preview: http://www.attractivepartners.co.uk/create-perfect-profile-picture/ - profile_title: - type: text - label: Profile name - description: Profile name - preview: Peter Neyens - profile_uri: - type: url - label: Link to profile page - description: Link to profile page - preview: https://en.wikipedia.org/wiki/User_profile - profile_uri_more: - type: url - label: Link to profile page full or back - description: Link to profile page full or back - preview: https://en.wikipedia.org/wiki/User_profile - profile_meta: - type: text - label: Profile meta data - description: Profile meta data e.g Public group / Location, ... - preview: Public group \ No newline at end of file diff --git a/patterns/profile_header_top/pattern-profileheader-top.html.twig b/patterns/profile_header_top/pattern-profileheader-top.html.twig index 2df5b4c..6ba0cb7 100644 --- a/patterns/profile_header_top/pattern-profileheader-top.html.twig +++ b/patterns/profile_header_top/pattern-profileheader-top.html.twig @@ -13,8 +13,8 @@ {% if profile_uri %} {% endif %} - -{% if profile_title %} + +{% if profile_title %}

    {{ profile_title }}

    {% endif %} @@ -33,7 +33,7 @@ {% if profile_location %}
    • - {{ profile_location }} + {{ profile_location }}
    -{% endif %} \ No newline at end of file +{% endif %} diff --git a/templates/content/backup_group--ngf-event.html.twig b/templates/content/backup_group--ngf-event.html.twig deleted file mode 100644 index f88888a..0000000 --- a/templates/content/backup_group--ngf-event.html.twig +++ /dev/null @@ -1,92 +0,0 @@ -{# -/** - * @file - * Default theme implementation to display a group. - * - * Available variables: - * - group: The group entity with limited access to object properties and - * methods. Only "getter" methods (method names starting with "get", "has", - * or "is") and a few common methods such as "id" and "label" are available. - * Calling other methods (such as group.delete) will result in an exception. - * - label: The title of the group. - * - content: All group items. Use {{ content }} to print them all, - * or print a subset such as {{ content.field_example }}. Use - * {{ content|without('field_example') }} to temporarily suppress the - * printing of a given child element. - * - url: Direct URL of the current group. - * - attributes: HTML attributes for the containing element. - * The attributes.class element may contain one or more of the following - * classes: - * - group: The current template type (also known as a "theming hook"). - * - group--[type]: The current group type. For example, if the group is a - * "Classroom" it would result in "group--classroom". Note that the machine - * name will often be in a short form of the human readable label. - * - group--[view_mode]: The View Mode of the group; for example, a - * teaser would result in: "group--teaser", and full: "group--full". - * - title_attributes: Same as attributes, except applied to the main title - * tag that appears in the template. - * - content_attributes: Same as attributes, except applied to the main - * content tag that appears in the template. - * - title_prefix: Additional output populated by modules, intended to be - * displayed in front of the main title tag that appears in the template. - * - title_suffix: Additional output populated by modules, intended to be - * displayed after the main title tag that appears in the template. - * - view_mode: View mode; for example, "teaser" or "full". - * - page: Flag for the full page state. Will be true if view_mode is 'full'. - * - * @see template_preprocess_group() - * - * @ingroup themeable - */ -#} - - {# block postinfo #} - {% block postinfo %} - {% set profile_pic_uri = group.uid.entity.user_picture.entity.uri.value %} - {% set profile_name = group.uid.entity.name.value %} - {% set profile_uri = path('entity.user.canonical', {'user': user.id}) %} - {% set creation_date = group.created.value|time_diff %} - {% set author_pic = { - '#theme': 'image_style', - '#style_name': 'thumbnail', - '#uri': profile_pic_uri, - '#alt': profile_name, - '#attributes': { class: 'post-info__picture post-info__picture--account responsive' }, - } %} - - - {% endblock postinfo %} - {# end block postinfo #} - - {# block coverimage #} - {% block coverimage %} - {% if content.field_ngf_cover_image %} - {% set coverimageurl = file_url(content.field_ngf_cover_image|field_target_entity.field_media_image.entity.uri.value|image_style('media_large')) %} - - {% endif %} - {% endblock coverimage %} - - diff --git a/templates/content/backup_node--ngf-event.html.twig b/templates/content/backup_node--ngf-event.html.twig deleted file mode 100644 index 9186994..0000000 --- a/templates/content/backup_node--ngf-event.html.twig +++ /dev/null @@ -1,233 +0,0 @@ -{# -/** - * @file - * Theme override to display a node. - * - * Available variables: - * - node: The node entity with limited access to object properties and methods. - * Only method names starting with "get", "has", or "is" and a few common - * methods such as "id", "label", and "bundle" are available. For example: - * - node.getCreatedTime() will return the node creation timestamp. - * - node.hasField('field_example') returns TRUE if the node bundle includes - * field_example. (This does not indicate the presence of a value in this - * field.) - * - node.isPublished() will return whether the node is published or not. - * Calling other methods, such as node.delete(), will result in an exception. - * See \Drupal\node\Entity\Node for a full list of public properties and - * methods for the node object. - * - label: The title of the node. - * - content: All node items. Use {{ content }} to print them all, - * or print a subset such as {{ content.field_example }}. Use - * {{ content|without('field_example') }} to temporarily suppress the printing - * of a given child element. - * - author_picture: The node author user entity, rendered using the "compact" - * view mode. - * - metadata: Metadata for this node. - * - date: Themed creation date field. - * - author_name: Themed author name field. - * - url: Direct URL of the current node. - * - display_submitted: Whether submission information should be displayed. - * - attributes: HTML attributes for the containing element. - * The attributes.class element may contain one or more of the following - * classes: - * - node: The current template type (also known as a "theming hook"). - * - node--type-[type]: The current node type. For example, if the node is an - * "Article" it would result in "node--type-article". Note that the machine - * name will often be in a short form of the human readable label. - * - node--view-mode-[view_mode]: The View Mode of the node; for example, a - * teaser would result in: "node--view-mode-teaser", and - * full: "node--view-mode-full". - * The following are controlled through the node publishing options. - * - node--promoted: Appears on nodes promoted to the front page. - * - node--sticky: Appears on nodes ordered above other non-sticky nodes in - * teaser listings. - * - node--unpublished: Appears on unpublished nodes visible only to site - * admins. - * - title_attributes: Same as attributes, except applied to the main title - * tag that appears in the template. - * - content_attributes: Same as attributes, except applied to the main - * content tag that appears in the template. - * - author_attributes: Same as attributes, except applied to the author of - * the node tag that appears in the template. - * - title_prefix: Additional output populated by modules, intended to be - * displayed in front of the main title tag that appears in the template. - * - title_suffix: Additional output populated by modules, intended to be - * displayed after the main title tag that appears in the template. - * - view_mode: View mode; for example, "teaser" or "full". - * - teaser: Flag for the teaser state. Will be true if view_mode is 'teaser'. - * - page: Flag for the full page state. Will be true if view_mode is 'full'. - * - readmore: Flag for more state. Will be true if the teaser content of the - * node cannot hold the main body content. - * - logged_in: Flag for authenticated user status. Will be true when the - * current user is a logged-in member. - * - is_admin: Flag for admin user status. Will be true when the current user - * is an administrator. - * - * @see template_preprocess_node() - * - * @todo Remove the id attribute (or make it a class), because if that gets - * rendered twice on a page this is invalid CSS for example: two lists - * in different view modes. - */ -#} - -{% - set classes = [ - 'node', - 'node--type-' ~ node.bundle|clean_class, - node.isPromoted() ? 'node--promoted', - node.isSticky() ? 'node--sticky', - not node.isPublished() ? 'node--unpublished', - view_mode ? 'node--view-mode-' ~ view_mode|clean_class, - ] -%} -{{ attach_library('classy/node') }} - - - {{ title_prefix }} - {% if not page %} - - {{ label }} - - {% endif %} - {{ title_suffix }} - - {# block post info #} - - {% block postinfo %} - {% if display_submitted %} - -
    - {% endif %} - {% endblock %} - - - - - {# block post info #} - - {% block eventdata %} - - {# convert date to an integer stamp #} - {% set event_start_date = node.field_ngf_event_start_date.value|date('U') %} - {# Convert event_end_date to an integer stamp if not empty #} - {% if node.field_ngf_event_end_date is not empty %} - {% set event_end_date = node.field_ngf_event_end_date.value|date('U') %} - {% else %} - {% set event_end_date = NULL %} - {% endif %} - - {# Event year #} - {% set event_start_date_year = event_start_date|date('Y') %} - {% set event_end_date_year = event_end_date|date('Y') %} - - {# Event month #} - {% set event_start_date_month = event_start_date|date('m') %} - {% set event_end_date_month = event_end_date|date('m') %} - - {# Start date & end date the same #} - -
    -

    {% trans %} When {% endtrans %}

    - {% if event_end_date is null %} - - {% else %} - {# same month same year #} - {% if (event_start_date_month == event_end_date_month) and (event_start_date_year == event_end_date_year) %} - - - - - {# different month same year #} - {% elseif (event_start_date_month != event_end_date_month) and (event_start_date_year == event_end_date_year) %} - - - - - {# different year for event start date & end date #} - {% elseif (event_start_date_year != event_end_date_year) %} - - - - - {% endif %} - {% endif %} -
    - - {% endblock %} - - {# Event Location #} - - {% block eventlocation %} - - {% if node.field_ngf_address is not empty %} -
    -

    {% trans %} Location {% endtrans %}

    - {{ content.field_ngf_venue|field_value }} - {{ content.field_ngf_address|field_value }} -
    - {% endif %} - - {% endblock %} - - - {# registration event #} - - {% block eventregister %} - - {% set event_registration_url = content.field_ngf_registration_link|field_raw('uri') %} - {% set event_registration_title = content.field_ngf_registration_link|field_raw('title') %} - - {% if event_registration_url is not empty %} - {% include "@patterns/button/pattern-button.html.twig" - with{ - url: event_registration_url, - title: event_registration_title - } - %} - {% endif %} - - {% endblock %} - - {# Event body content #} - - {% block eventlocation %} - - {{ content.field_ngf_description }} - - {% endblock %} - - - - \ No newline at end of file diff --git a/templates/content/backup_node.html.twig b/templates/content/backup_node.html.twig deleted file mode 100644 index 33ee1a5..0000000 --- a/templates/content/backup_node.html.twig +++ /dev/null @@ -1,154 +0,0 @@ -{# -/** - * @file - * Theme override to display a node. - * - * Available variables: - * - node: The node entity with limited access to object properties and methods. - * Only method names starting with "get", "has", or "is" and a few common - * methods such as "id", "label", and "bundle" are available. For example: - * - node.getCreatedTime() will return the node creation timestamp. - * - node.hasField('field_example') returns TRUE if the node bundle includes - * field_example. (This does not indicate the presence of a value in this - * field.) - * - node.isPublished() will return whether the node is published or not. - * Calling other methods, such as node.delete(), will result in an exception. - * See \Drupal\node\Entity\Node for a full list of public properties and - * methods for the node object. - * - label: The title of the node. - * - content: All node items. Use {{ content }} to print them all, - * or print a subset such as {{ content.field_example }}. Use - * {{ content|without('field_example') }} to temporarily suppress the printing - * of a given child element. - * - author_picture: The node author user entity, rendered using the "compact" - * view mode. - * - metadata: Metadata for this node. - * - date: Themed creation date field. - * - author_name: Themed author name field. - * - url: Direct URL of the current node. - * - display_submitted: Whether submission information should be displayed. - * - attributes: HTML attributes for the containing element. - * The attributes.class element may contain one or more of the following - * classes: - * - node: The current template type (also known as a "theming hook"). - * - node--type-[type]: The current node type. For example, if the node is an - * "Article" it would result in "node--type-article". Note that the machine - * name will often be in a short form of the human readable label. - * - node--view-mode-[view_mode]: The View Mode of the node; for example, a - * teaser would result in: "node--view-mode-teaser", and - * full: "node--view-mode-full". - * The following are controlled through the node publishing options. - * - node--promoted: Appears on nodes promoted to the front page. - * - node--sticky: Appears on nodes ordered above other non-sticky nodes in - * teaser listings. - * - node--unpublished: Appears on unpublished nodes visible only to site - * admins. - * - title_attributes: Same as attributes, except applied to the main title - * tag that appears in the template. - * - content_attributes: Same as attributes, except applied to the main - * content tag that appears in the template. - * - author_attributes: Same as attributes, except applied to the author of - * the node tag that appears in the template. - * - title_prefix: Additional output populated by modules, intended to be - * displayed in front of the main title tag that appears in the template. - * - title_suffix: Additional output populated by modules, intended to be - * displayed after the main title tag that appears in the template. - * - view_mode: View mode; for example, "teaser" or "full". - * - teaser: Flag for the teaser state. Will be true if view_mode is 'teaser'. - * - page: Flag for the full page state. Will be true if view_mode is 'full'. - * - readmore: Flag for more state. Will be true if the teaser content of the - * node cannot hold the main body content. - * - logged_in: Flag for authenticated user status. Will be true when the - * current user is a logged-in member. - * - is_admin: Flag for admin user status. Will be true when the current user - * is an administrator. - * - * @see template_preprocess_node() - * - * @todo Remove the id attribute (or make it a class), because if that gets - * rendered twice on a page this is invalid CSS for example: two lists - * in different view modes. - */ -#} - -{% - set classes = [ - 'newsfeed__item', - 'newsfeed__item--' ~ node.bundle|clean_class, - node.isPromoted() ? 'newsfeed__item--promoted', - node.isSticky() ? 'newsfeed__item--sticky', - not node.isPublished() ? 'node--unpublished newsfeed__item--unpublished', - view_mode ? 'node--view-mode-' ~ view_mode|clean_class, - ] -%} - -{{ attach_library('classy/node') }} - -
    - {{ title_prefix }} - {% if not page %} -

    - {{ label }} -

    - {% endif %} - {{ title_suffix }} - -

    {{ drupal_title() }}

    - - {# block postinfo #} - {% block postinfo %} - {% if display_submitted %} - {% set profile_pic_uri = node.uid.entity.user_picture.entity.uri.value %} - {% set profile_name = node.uid.entity.name.value %} - {% set profile_uri = path('entity.user.canonical', {'user': user.id}) %} - {% set creation_date = node.created.value|time_diff %} - {% set author_pic = { - '#theme': 'image_style', - '#style_name': 'thumbnail', - '#uri': profile_pic_uri, - '#alt': profile_name, - '#attributes': { class: 'post-info__picture post-info__picture--account responsive' }, - } %} - - - {% endif %} - {% endblock postinfo %} - {# end block postinfo #} - - {# block coverimage #} - {% block coverimage %} - {% if content.field_ngf_cover_image %} - {% set coverimageurl = file_url(content.field_ngf_cover_image|field_target_entity.field_media_image.entity.uri.value|image_style('media_large')) %} - - {% endif %} - {% endblock coverimage %} -
    - - {% block content %} - {{ content }} - {% endblock content %} - - \ No newline at end of file diff --git a/templates/content/node--ngf-event.html.twig b/templates/content/node--ngf-event.html.twig deleted file mode 100644 index ba94dde..0000000 --- a/templates/content/node--ngf-event.html.twig +++ /dev/null @@ -1,87 +0,0 @@ -{# page--front.html.twig that adds wrapper div ands uses parent() with embed. #} -{% embed 'node.html.twig' %} - {% block postinfo %} - {{ parent() }} - {% endblock postinfo %} - {# block content overriden (content variable from page--front.html.twig not loaded) #} - {% block content %} - - {% block eventdata %} - {# convert date to an integer stamp #} - {% set event_start_date = node.field_ngf_event_start_date.value|date('U') %} - {# Convert event_end_date to an integer stamp if not empty #} - {% if node.field_ngf_event_end_date is not empty %} - {% set event_end_date = node.field_ngf_event_end_date.value|date('U') %} - {% else %} - {% set event_end_date = NULL %} - {% endif %} - - {# Event year #} - {% set event_start_date_year = event_start_date|date('Y') %} - {% set event_end_date_year = event_end_date|date('Y') %} - - {# Event month #} - {% set event_start_date_month = event_start_date|date('m') %} - {% set event_end_date_month = event_end_date|date('m') %} - - {# Start date & end date the same #} - -
    -

    {% trans %} When {% endtrans %}

    - {% if event_end_date is null %} - - {% else %} - {# same month same year #} - {% if (event_start_date_month == event_end_date_month) and (event_start_date_year == event_end_date_year) %} - - - - - {# different month same year #} - {% elseif (event_start_date_month != event_end_date_month) and (event_start_date_year == event_end_date_year) %} - - - - - {# different year for event start date & end date #} - {% elseif (event_start_date_year != event_end_date_year) %} - - - - - {% endif %} - {% endif %} -
    - {% endblock eventdata %} - - {# Event Location #} - {% block eventlocation %} - {% if node.field_ngf_address is not empty %} -
    -

    {% trans %} Location {% endtrans %}

    - {{ content.field_ngf_venue|field_value }} - {{ content.field_ngf_address|field_value }} -
    - {% endif %} - {% endblock eventlocation %} - - {# Event Description #} - {% block eventdescritption %} - {#{% if node.field_ngf_address is not empty %}#} - {{ content.field_ngf_description }} - {#{% endif %}#} - {% endblock eventdescritption %} - - {# Event register #} - {% block eventregister %} - {% set event_registration_url = content.field_ngf_registration_link|field_raw('uri') %} - {% set event_registration_title = content.field_ngf_registration_link|field_raw('title') %} - {% if event_registration_url is not empty %} - {% include "@patterns/button/pattern-button.html.twig" - with{ - url: event_registration_url, - title: event_registration_title - } - %} - {% endif %} - {% endblock eventregister %} - - {% endblock content %} -{% endembed %} \ No newline at end of file diff --git a/templates/form/input--submit--comments-abc.html.twig b/templates/form/input--submit--comments-abc.html.twig deleted file mode 100644 index d5f4c8d..0000000 --- a/templates/form/input--submit--comments-abc.html.twig +++ /dev/null @@ -1,22 +0,0 @@ -{# -/** - * @file - * Theme override for an 'input' #type form element. - * - * Available variables: - * - attributes: A list of HTML attributes for the input element. - * - children: Optional additional rendered elements. - * - * @see template_preprocess_input() - */ -#} - -{% - set classes = [ - 'btn', - 'btn-green', - ] -%} - -{{ children }} -
    abc
    diff --git a/templates/paragraphs/paragraph.html.twig b/templates/paragraphs/paragraph.html.twig deleted file mode 100644 index f2ef92b..0000000 --- a/templates/paragraphs/paragraph.html.twig +++ /dev/null @@ -1,54 +0,0 @@ -{# -/** - * @file - * Default theme implementation to display a paragraph. - * - * Available variables: - * - paragraph: Full paragraph entity. - * Only method names starting with "get", "has", or "is" and a few common - * methods such as "id", "label", and "bundle" are available. For example: - * - paragraph.getCreatedTime() will return the paragraph creation timestamp. - * - paragraph.id(): The paragraph ID. - * - paragraph.bundle(): The type of the paragraph, for example, "image" or "text". - * - paragraph.getOwnerId(): The user ID of the paragraph author. - * See Drupal\paragraphs\Entity\Paragraph for a full list of public properties - * and methods for the paragraph object. - * - content: All paragraph items. Use {{ content }} to print them all, - * or print a subset such as {{ content.field_example }}. Use - * {{ content|without('field_example') }} to temporarily suppress the printing - * of a given child element. - * - attributes: HTML attributes for the containing element. - * The attributes.class element may contain one or more of the following - * classes: - * - paragraphs: The current template type (also known as a "theming hook"). - * - paragraphs--type-[type]: The current paragraphs type. For example, if the paragraph is an - * "Image" it would result in "paragraphs--type--image". Note that the machine - * name will often be in a short form of the human readable label. - * - paragraphs--view-mode--[view_mode]: The View Mode of the paragraph; for example, a - * preview would result in: "paragraphs--view-mode--preview", and - * default: "paragraphs--view-mode--default". - * - view_mode: View mode; for example, "preview" or "full". - * - logged_in: Flag for authenticated user status. Will be true when the - * current user is a logged-in member. - * - is_admin: Flag for admin user status. Will be true when the current user - * is an administrator. - * - * @see template_preprocess_paragraph() - * - * @ingroup themeable - */ -#} -{% - set classes = [ - 'paragraph', - 'paragraph--type--' ~ paragraph.bundle|clean_class, - view_mode ? 'paragraph--view-mode--' ~ view_mode|clean_class, - ] -%} -{% block paragraph %} - - {% block content %} - {{ content }} - {% endblock %} - -{% endblock paragraph %} diff --git a/templates/user/user--ngf-about.html.twig b/templates/user/user--ngf-about.html.twig index dde2f9c..a6de545 100644 --- a/templates/user/user--ngf-about.html.twig +++ b/templates/user/user--ngf-about.html.twig @@ -16,7 +16,7 @@ * @see template_preprocess_user() */ #} -
    +

    {% trans %}About{% endtrans %} {{ full_name }}

    {{ content }} -
    \ No newline at end of file +
    From e5a6f04ddd831c7c2d827472def918745bb8991b Mon Sep 17 00:00:00 2001 From: Nikolay Lobachev Date: Fri, 29 Jun 2018 11:31:58 +0200 Subject: [PATCH 100/200] Add custom template for images --- funkywave.theme | 45 ++++++++++++++++++++++++-------- templates/custom-image.html.twig | 1 + 2 files changed, 35 insertions(+), 11 deletions(-) create mode 100644 templates/custom-image.html.twig diff --git a/funkywave.theme b/funkywave.theme index ce57195..ce7a4c0 100644 --- a/funkywave.theme +++ b/funkywave.theme @@ -67,22 +67,35 @@ function _funkywave_group_context($entity, $group, &$variables) { '#theme' => 'image_style', '#style_name' => 'thumbnail', '#uri' => $media_entity->get('field_media_image')->entity->getFileUri(), - '#attributes' => ['class' => ['profile-shortinfo__picture profile-shortinfo__picture--group responsive']] + '#attributes' => [ + 'class' => ['profile-shortinfo__picture profile-shortinfo__picture--group responsive'], + 'alt' => $group->label(), + ] ]; - - $link_render = [ - '#title' => $render, - '#type' => 'link', - '#url' => $group->toUrl(), + } + else { + $render = [ + '#theme' => 'custom_image', + '#url' => file_create_url($variables['directory'] . '/images/default_group.jpg'), '#attributes' => [ - 'class' => [ - 'profile-shortinfo__link profile-shortinfo__link--group' - ] + 'class' => ['profile-shortinfo__picture profile-shortinfo__picture--group responsive'], + 'alt' => $group->label(), ] ]; - $variables['ngf_sub_picture'] = $link_render; } + $link_render = [ + '#title' => $render, + '#type' => 'link', + '#url' => $group->toUrl(), + '#attributes' => [ + 'class' => [ + 'profile-shortinfo__link profile-shortinfo__link--group' + ] + ] + ]; + $variables['ngf_sub_picture'] = $link_render; + $variables['ngf_context_text'] = t( 'Posted @created_date ago in @group_title', [ @@ -96,7 +109,6 @@ function _funkywave_group_context($entity, $group, &$variables) { function funkywave_preprocess_user(&$vars) { $user = $vars['user']; - $view_mode = $vars['elements']['#view_mode']; $user_id = $user->id(); if (!empty($user->user_picture->entity)) { @@ -245,3 +257,14 @@ function funkywave_theme_suggestions_page_alter(array &$suggestions, array $vari } } } + + +function funkywave_theme() { + $themes['custom_image'] = [ + 'variables' => [ + 'attributes' => [], + 'url' => NULL, + ], + ]; + return $themes; +} diff --git a/templates/custom-image.html.twig b/templates/custom-image.html.twig new file mode 100644 index 0000000..1324688 --- /dev/null +++ b/templates/custom-image.html.twig @@ -0,0 +1 @@ + \ No newline at end of file From 341d5c4550e1a3966068a2943e81c12e79a7c90a Mon Sep 17 00:00:00 2001 From: Eric Lemonne Date: Fri, 29 Jun 2018 16:48:30 +0200 Subject: [PATCH 101/200] NGF-268: skinning checkboxes --- funkywave.theme | 18 ++++ templates/form/form-element--all.html.twig | 98 +++++++++++++++++++ .../form/form-element-label--all.html.twig | 6 +- 3 files changed, 120 insertions(+), 2 deletions(-) create mode 100644 templates/form/form-element--all.html.twig diff --git a/funkywave.theme b/funkywave.theme index ac802f6..e891ca9 100644 --- a/funkywave.theme +++ b/funkywave.theme @@ -264,3 +264,21 @@ function funkywave_theme_suggestions_form_element_label_alter(array &$suggestion $suggestions[] = 'form_element_label__all'; } } + +/** + * Implements hook_theme_suggestions_HOOK_alter(). + */ +/* This is needed since ngf_user_registration wrapped title wo we cannot generalise */ +/* StepFour.php line 57 (ngf_user_registration) */ +/* Otherwise we could use the standard core form_element suggestion */ +function funkywave_theme_suggestions_form_element_alter(array &$suggestions, array $variables) { + $route_name = \Drupal::routeMatch()->getRouteName(); + + $contact_routes = array( + 'contact.ngf_user_registration', + ); + + if (!in_array($route_name, $contact_routes)) { + $suggestions[] = 'form_element__all'; + } +} diff --git a/templates/form/form-element--all.html.twig b/templates/form/form-element--all.html.twig new file mode 100644 index 0000000..69cf73a --- /dev/null +++ b/templates/form/form-element--all.html.twig @@ -0,0 +1,98 @@ +{# +/** + * @file + * Theme override for a form element. + * + * Available variables: + * - attributes: HTML attributes for the containing element. + * - errors: (optional) Any errors for this form element, may not be set. + * - prefix: (optional) The form element prefix, may not be set. + * - suffix: (optional) The form element suffix, may not be set. + * - required: The required marker, or empty if the associated form element is + * not required. + * - type: The type of the element. + * - name: The name of the element. + * - label: A rendered label element. + * - label_display: Label display setting. It can have these values: + * - before: The label is output before the element. This is the default. + * The label includes the #title and the required marker, if #required. + * - after: The label is output after the element. For example, this is used + * for radio and checkbox #type elements. If the #title is empty but the + * field is #required, the label will contain only the required marker. + * - invisible: Labels are critical for screen readers to enable them to + * properly navigate through forms but can be visually distracting. This + * property hides the label for everyone except screen readers. + * - attribute: Set the title attribute on the element to create a tooltip but + * output no label element. This is supported only for checkboxes and radios + * in \Drupal\Core\Render\Element\CompositeFormElementTrait::preRenderCompositeFormElement(). + * It is used where a visual label is not needed, such as a table of + * checkboxes where the row and column provide the context. The tooltip will + * include the title and required marker. + * - description: (optional) A list of description properties containing: + * - content: A description of the form element, may not be set. + * - attributes: (optional) A list of HTML attributes to apply to the + * description content wrapper. Will only be set when description is set. + * - description_display: Description display setting. It can have these values: + * - before: The description is output before the element. + * - after: The description is output after the element. This is the default + * value. + * - invisible: The description is output after the element, hidden visually + * but available to screen readers. + * - disabled: True if the element is disabled. + * - title_display: Title display setting. + * + * @see template_preprocess_form_element() + */ +#} +{% + set classes = [ + 'js-form-item', + 'form__block', + 'form-item', + 'js-form-type-' ~ type|clean_class, + 'form-type-' ~ type|clean_class, + 'js-form-item-' ~ name|clean_class, + 'form-item-' ~ name|clean_class, + title_display not in ['after', 'before'] ? 'form-no-label', + disabled == 'disabled' ? 'form-disabled', + errors ? 'form-item--error', + type == 'checkbox' ? 'form__block--checkbox', + ] +%} +{% + set description_classes = [ + 'description', + description_display == 'invisible' ? 'visually-hidden', + ] +%} + + {% if label_display in ['before', 'invisible'] %} + + {{ label }} + {% endif %} + {% if prefix is not empty %} + {{ prefix }} + {% endif %} + {% if description_display == 'before' and description.content %} + + {{ description.content }} + + {% endif %} + {{ children }} + {% if suffix is not empty %} + {{ suffix }} + {% endif %} + {% if label_display == 'after' %} + {{ label }} + {% endif %} + {% if errors %} +
    + {{ errors }} +
    + {% endif %} + {% if description_display in ['after', 'invisible'] and description.content %} + + {{ description.content }} + + {% endif %} + diff --git a/templates/form/form-element-label--all.html.twig b/templates/form/form-element-label--all.html.twig index e9e8ab4..898f1cd 100644 --- a/templates/form/form-element-label--all.html.twig +++ b/templates/form/form-element-label--all.html.twig @@ -22,8 +22,10 @@ %} {% if title is not empty or required %} - {{ title }} - {% if required %}Mandatory field * + + {{ title }} + {% if required %} + {% trans %}Mandatory field{% endtrans %} * {% endif %} {% endif %} From f92d4912735f85901bbed8daa8e73b84091df896 Mon Sep 17 00:00:00 2001 From: Nikolay Lobachev Date: Fri, 29 Jun 2018 17:25:22 +0200 Subject: [PATCH 102/200] User compact view mode --- funkywave.theme | 28 ++++++++++++++++---------- templates/user/user--compact.html.twig | 11 +--------- 2 files changed, 18 insertions(+), 21 deletions(-) diff --git a/funkywave.theme b/funkywave.theme index ce7a4c0..6a1350b 100644 --- a/funkywave.theme +++ b/funkywave.theme @@ -106,31 +106,37 @@ function _funkywave_group_context($entity, $group, &$variables) { ); } -function funkywave_preprocess_user(&$vars) { - $user = $vars['user']; +function funkywave_preprocess_user(&$variables) { + $user = $variables['user']; + + $view_mode = $variables['elements']['#view_mode']; $user_id = $user->id(); + if ($view_mode == 'compact') { + $variables['context_text'] = $user->field_ngf_city->value; + } if (!empty($user->user_picture->entity)) { $cover_image = $user->user_picture->entity->getFileUri(); - $vars['user_pic'] = ImageStyle::load('thumbnail')->buildUrl($cover_image); + $variables['user_pic'] = ImageStyle::load('thumbnail')->buildUrl($cover_image); } else { - $vars['user_pic'] = file_create_url($vars['directory'] . '/images/default_user.jpg'); + $variables['user_pic'] = file_create_url($variables['directory'] . '/images/default_user.jpg'); } - $vars['user_name'] = $user->getUsername(); - $vars['full_name'] = $user->full_name->value; - $vars['profile_uri'] = Url::fromRoute('ngf_user_profile.page.profile', [ + + $variables['user_name'] = $user->getUsername(); + $variables['full_name'] = $user->full_name->value; + $variables['profile_uri'] = Url::fromRoute('ngf_user_profile.page.profile', [ 'user' => $user_id, ])->toString(); if (\Drupal::routeMatch()->getRouteName() == 'ngf_user_profile.page.user_about') { - $vars['profile_uri_back'] = $vars['profile_uri']; - $vars['profile_uri_more'] = ''; + $variables['profile_uri_back'] = $variables['profile_uri']; + $variables['profile_uri_more'] = ''; } else { - $vars['profile_uri_back'] = ''; - $vars['profile_uri_more'] = Url::fromRoute('ngf_user_profile.page.user_about', [ + $variables['profile_uri_back'] = ''; + $variables['profile_uri_more'] = Url::fromRoute('ngf_user_profile.page.user_about', [ 'user' => $user_id, ])->toString(); } diff --git a/templates/user/user--compact.html.twig b/templates/user/user--compact.html.twig index d9ad722..84b53b9 100644 --- a/templates/user/user--compact.html.twig +++ b/templates/user/user--compact.html.twig @@ -16,22 +16,13 @@ * @see template_preprocess_user() */ #} - {# block profile #} - -{% if user.user_picture.entity.uri.value is empty %} - {% set image_url = file_url(directory ~ '/images/default_user.jpg') %} -{% else %} - {% set image_url = file_url(user.user_picture.entity.uri.value|image_style('thumbnail')) %} -{% endif %} - {% block profileinfo %} {% include "@patterns/profile-shortinfo/pattern-profile-shortinfo.html.twig" with { - image_url: image_url, title: full_name, url: path('entity.user.canonical', {'user': user.id}), - context_text: 'ngf_context_text', + context_text: content.field_ngf_city|field_value, logged_in: logged_in, container_class: 'profile-shortinfo--no-group', } From c0ca0c522e27245b4a039d9603d44e0748e973cb Mon Sep 17 00:00:00 2001 From: Eric Lemonne Date: Fri, 29 Jun 2018 17:57:04 +0200 Subject: [PATCH 103/200] NGF-268: skinning checkboxes, for edit copy --- funkywave.theme | 8 ++++++++ templates/form/form-element-label--all.html.twig | 3 +++ 2 files changed, 11 insertions(+) diff --git a/funkywave.theme b/funkywave.theme index e891ca9..3d45a6b 100644 --- a/funkywave.theme +++ b/funkywave.theme @@ -15,6 +15,14 @@ use Drupal\Core\StringTranslation\TranslatableMarkup; use \Drupal\Core\Url; +function funkywave_preprocess_form_element_label(&$variables) { + $element = $variables['element']; + // A #id property of a dedicated #type 'label' element as precedence. + if (!empty($element['#id'])) { + $variables['id'] = $element['#id']; + } +} + /** * Implement template_preprocess_node(). */ diff --git a/templates/form/form-element-label--all.html.twig b/templates/form/form-element-label--all.html.twig index 898f1cd..4d3152c 100644 --- a/templates/form/form-element-label--all.html.twig +++ b/templates/form/form-element-label--all.html.twig @@ -8,6 +8,7 @@ * - title_display: Elements title_display setting. * - required: An indicator for whether the associated form element is required. * - attributes: A list of HTML attributes for the label. + * - id: the #id attribute of the element. * * @see template_preprocess_form_element_label() */ @@ -22,7 +23,9 @@ %} {% if title is not empty or required %} + {% if id == 'edit-copy' %} + {% endif %} {{ title }} {% if required %} {% trans %}Mandatory field{% endtrans %} * From ad2e6c65b8c814463b230599d52898abcdaa0643 Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Mon, 2 Jul 2018 13:52:41 +0200 Subject: [PATCH 104/200] NGF-291: user picture fixed for comments --- templates/user/user--compact.html.twig | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/templates/user/user--compact.html.twig b/templates/user/user--compact.html.twig index 84b53b9..20b478e 100644 --- a/templates/user/user--compact.html.twig +++ b/templates/user/user--compact.html.twig @@ -17,9 +17,11 @@ */ #} {# block profile #} + {% block profileinfo %} {% include "@patterns/profile-shortinfo/pattern-profile-shortinfo.html.twig" with { + image_url: user_pic, title: full_name, url: path('entity.user.canonical', {'user': user.id}), context_text: content.field_ngf_city|field_value, @@ -28,5 +30,3 @@ } %} {% endblock profileinfo %} - -{# |field_target_entity.uri.value|image_style('thumbnail') #} From 64116c51d4128e7656511c7bc0798d74eb036dc6 Mon Sep 17 00:00:00 2001 From: Eric Lemonne Date: Tue, 3 Jul 2018 13:34:50 +0200 Subject: [PATCH 105/200] NGF-302: avoid preview button on form displays --- funkywave.theme | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/funkywave.theme b/funkywave.theme index a33e136..f939ea0 100644 --- a/funkywave.theme +++ b/funkywave.theme @@ -233,6 +233,10 @@ function funkywave_form_alter(&$form, FormStateInterface $form_state, $form_id) $form['actions']['submit']['#attributes']['data-twig-suggestion'] = $form['#id']; $suggestion = str_replace(['-'], '_', $form['#id']); $form['keys']['#attributes']['data-twig-suggestion'] = $suggestion; + + // Avoid preview button on form displays. + unset($form['actions']['preview']); + } /** From dca80b4ba19ecf3a180ab765c77c5da4c51c3654 Mon Sep 17 00:00:00 2001 From: peterne Date: Wed, 4 Jul 2018 16:23:00 +0200 Subject: [PATCH 106/200] Revert "Develop" --- funkywave.theme | 4 ---- 1 file changed, 4 deletions(-) diff --git a/funkywave.theme b/funkywave.theme index f939ea0..a33e136 100644 --- a/funkywave.theme +++ b/funkywave.theme @@ -233,10 +233,6 @@ function funkywave_form_alter(&$form, FormStateInterface $form_state, $form_id) $form['actions']['submit']['#attributes']['data-twig-suggestion'] = $form['#id']; $suggestion = str_replace(['-'], '_', $form['#id']); $form['keys']['#attributes']['data-twig-suggestion'] = $suggestion; - - // Avoid preview button on form displays. - unset($form['actions']['preview']); - } /** From 51d4a1c693e09b1a7a55b9e45b0461367ba3cd33 Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Wed, 4 Jul 2018 16:43:38 +0200 Subject: [PATCH 107/200] NGF-317: put back classes to node--ngf-discussion.html.twig --- css/style.css | 259 +++++++++++++++--- funkywave.theme | 9 +- .../content/node--ngf-discussion.html.twig | 11 + 3 files changed, 229 insertions(+), 50 deletions(-) diff --git a/css/style.css b/css/style.css index 1babc06..c9e2dd9 100644 --- a/css/style.css +++ b/css/style.css @@ -46,7 +46,8 @@ h1, h2, h3, h4, h5, h6 { font-family: "Raleway"; font-weight: bold; line-height: 1.3; - margin-bottom: 0.8em; + margin-top: 2.5em; + margin-bottom: 1em; } h1 + h2, @@ -57,7 +58,10 @@ h2 + h4, h2 + p, h3 + h4, h3 + h5, -h3 + p { +h3 + p, +h4 + p, +h5 + p, +h6 + p { margin-top: -0.3em; } @@ -862,6 +866,15 @@ li.tag { margin: 0 !important; } +.no-child-margins > * { + margin-top: 0 !important; + margin-bottom: 0 !important; +} + +.small-top-margin { + margin-top: 5px !important; +} + .extra-space--top { margin-top: 5rem !important; } @@ -1001,6 +1014,7 @@ li.tag { .account-info .account-info__menu.account-info__dropdown ul li { border-bottom: solid 1px rgba(255, 255, 255, 0.5); padding: 6px 0; + font-size: 1.6rem; } .account-info .account-info__menu.account-info__dropdown ul li:first-child { @@ -1170,8 +1184,50 @@ li.tag { } } +input.btn { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; +} + .btn-list--right { - text-align: right; + width: 100%; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: end; + -ms-flex-align: end; + align-items: flex-end; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-pack: end; + -ms-flex-pack: end; + justify-content: flex-end; + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + -ms-flex-line-pack: start; + align-content: flex-start; +} + +.btn-list--right > .btn { + position: relative; + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; +} + +.btn-list--right .opposite { + -ms-flex-item-align: start; + align-self: flex-start; + -webkit-box-ordinal-group: 0; + -ms-flex-order: -1; + order: -1; + -webkit-box-flex: 0; + -ms-flex-positive: 0; + flex-grow: 0; + position: absolute; } .btn-list--left { @@ -1186,23 +1242,30 @@ li.tag { float: right; } -.btn[disabled] { +.btn[disabled], .btn.disabled { opacity: 0.7 !important; cursor: not-allowed !important; color: rgba(5, 17, 30, 0.5) !important; + -webkit-transition: all 0.2s; + transition: all 0.2s; } .btn-list--center { text-align: center; - width: 100%; + width: 80%; + max-width: 512px; margin: auto; } -.btn-list--center > .btn { +.btn-list--center > a.btn, .btn-list--center input.btn, .btn-list--center button.btn { display: block; margin: 2.5rem auto 2rem auto; } +.btn-list--center > a.btn:not(.btn--large):last-child, .btn-list--center input.btn:not(.btn--large):last-child, .btn-list--center button.btn:not(.btn--large):last-child { + margin: 2.5rem auto 2rem auto; +} + .btn.btn--large { width: 100%; max-width: 32em; @@ -1212,7 +1275,7 @@ li.tag { a.btn, input.btn, button.btn { color: #05111E; - font-size: 1.6rem; + font-size: 1.3rem; text-decoration: none; padding: 0.1rem 1.5rem; border-radius: 300px; @@ -1221,13 +1284,13 @@ a.btn, input.btn, button.btn { min-width: 12rem; font-weight: 700; line-height: 1.3; - margin-right: 15px; + margin: 15px 0; border: none; cursor: pointer; } a.btn:not(.btn--large):last-child, input.btn:not(.btn--large):last-child, button.btn:not(.btn--large):last-child { - margin-right: 0px; + margin-bottom: 0px; } a.btn:not([disabled]):hover, input.btn:not([disabled]):hover, button.btn:not([disabled]):hover { @@ -1243,15 +1306,22 @@ a.btn:focus, input.btn:focus, button.btn:focus { .btn--green { display: inline-block; background: #1eb49c; + background-image: none; -webkit-box-shadow: 0 0 0 4px rgba(30, 180, 156, 0.5) !important; box-shadow: 0 0 0 4px rgba(30, 180, 156, 0.5) !important; text-shadow: none; + -webkit-transition: all 0.2s ease; + transition: all 0.2s ease; + -webkit-transform: rotateX(0deg); + transform: rotateX(0deg); + -webkit-transform-style: preserve-3d; + transform-style: preserve-3d; } .btn--green:not([disabled]):hover { background: #18917e; - -webkit-transition: all 0.3s ease; - transition: all 0.3s ease; + -webkit-transition: all 0.2s ease; + transition: all 0.2s ease; } .btn--green:active { @@ -1261,15 +1331,22 @@ a.btn:focus, input.btn:focus, button.btn:focus { .btn--blue { display: inline-block; background: #00c9ff; + background-image: none; -webkit-box-shadow: 0 0 0 4px rgba(0, 201, 255, 0.5) !important; box-shadow: 0 0 0 4px rgba(0, 201, 255, 0.5) !important; text-shadow: none; + -webkit-transition: all 0.2s ease; + transition: all 0.2s ease; + -webkit-transform: rotateX(0deg); + transform: rotateX(0deg); + -webkit-transform-style: preserve-3d; + transform-style: preserve-3d; } .btn--blue:not([disabled]):hover { background: #00a9d6; - -webkit-transition: all 0.3s ease; - transition: all 0.3s ease; + -webkit-transition: all 0.2s ease; + transition: all 0.2s ease; } .btn--blue:active { @@ -1279,15 +1356,22 @@ a.btn:focus, input.btn:focus, button.btn:focus { .btn--grey { display: inline-block; background: #c6c7cc; + background-image: none; -webkit-box-shadow: 0 0 0 4px rgba(198, 199, 204, 0.5) !important; box-shadow: 0 0 0 4px rgba(198, 199, 204, 0.5) !important; text-shadow: none; + -webkit-transition: all 0.2s ease; + transition: all 0.2s ease; + -webkit-transform: rotateX(0deg); + transform: rotateX(0deg); + -webkit-transform-style: preserve-3d; + transform-style: preserve-3d; } .btn--grey:not([disabled]):hover { background: #b0b2b9; - -webkit-transition: all 0.3s ease; - transition: all 0.3s ease; + -webkit-transition: all 0.2s ease; + transition: all 0.2s ease; } .btn--grey:active { @@ -1298,20 +1382,37 @@ a.btn:focus, input.btn:focus, button.btn:focus { margin-top: 3rem; } +.flip { + -webkit-transform: rotateX(90deg); + transform: rotateX(90deg); + -webkit-transform-style: preserve-3d; + transform-style: preserve-3d; + -webkit-transition: all 0.2s; + transition: all 0.2s; +} + @media (min-width: 768px) { + a.btn, input.btn, button.btn { + font-size: 1.6rem; + } + .btn.btn--large { padding: 0.4rem 0rem; font-size: 2rem; } .btn-list--center { - width: 60%; + text-align: center; } - .btn-list--center > .btn { + .btn-list--center > a.btn, .btn-list--center input.btn, .btn-list--center button.btn { display: block; margin: 2.5rem auto 2rem auto; } + + .btn-list--center > a.btn:not(.btn--large):last-child, .btn-list--center input.btn:not(.btn--large):last-child, .btn-list--center button.btn:not(.btn--large):last-child { + margin: 2.5rem auto 2rem auto; + } } .chosen-container { @@ -2215,7 +2316,7 @@ a.btn:focus, input.btn:focus, button.btn:focus { text-align: center; } -.new-item button.create-new { +.new-item .create-new { background: url(../images/new-item__button__background--sm.svg) no-repeat center center; background-size: 42px 42px; border: none; @@ -2284,6 +2385,52 @@ a.btn:focus, input.btn:focus, button.btn:focus { padding: 90px 15px 130px; overflow: auto; } + + .new-item { + position: relative; + right: auto; + bottom: auto; + width: 100%; + text-align: left; + } + + .new-item .create-new { + display: block; + background: white; + background-size: auto; + border: none; + height: auto; + width: 100%; + font-size: 1.6rem; + line-height: 1.8; + padding: 0.5rem 0.8rem; + border-radius: 0.5rem; + border: solid 3px #00c9ff; + color: #05111E; + text-shadow: none; + -webkit-box-shadow: none; + box-shadow: none; + -webkit-transition: background-color 0.2s; + transition: background-color 0.2s; + } + + .new-item .create-new svg { + margin-right: 1.5rem; + } + + .new-item .create-new:hover { + -webkit-box-shadow: none; + box-shadow: none; + background: #00c9ff; + -webkit-transition: background-color 0.2s; + transition: background-color 0.2s; + color: #05111E; + } + + .new-item .create-new.active { + background: rgba(255, 255, 255, 0.1); + border-bottom: none; + } } @media (min-width: 992px) { @@ -2590,15 +2737,32 @@ a.logo__link span { margin-right: 1.5rem; } + .navigation-menu__list li a { + color: #FFFFFF; + text-shadow: none; + -webkit-box-shadow: none; + box-shadow: none; + padding: 6px 0; + box-shadow: none; + } + + .navigation-menu__list li a:hover { + color: #ff397f; + -webkit-box-shadow: none; + box-shadow: none; + } + + .navigation-menu__list li a:hover .badge { + background-color: #ff397f; + -webkit-transition: all 0.2s; + transition: all 0.2s; + } + .navigation-menu__list li.active { background: rgba(255, 255, 255, 0.1); border-bottom: none; } - .navigation-menu__list li.active a { - color: #FFFFFF; - } - .navigation-menu__list li.active .fas { color: #ff397f; } @@ -2744,6 +2908,24 @@ a.logo__link span { margin-bottom: 16px; } +.field--type-video { + position: relative; + padding-bottom: 56.25%; + padding-top: 30px; + height: 0; + overflow: hidden; +} + +.field--type-video iframe, +.field--type-video object, +.field--type-video embed { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; +} + .newsfeed__item h2 { padding-left: 32px; background: transparent left top no-repeat; @@ -2772,7 +2954,7 @@ a.logo__link span { box-shadow: 0 1px 0 0 #662D91; } -.newsfeed__item .field--name-field-ngf-cover-image { +.newsfeed__item .field--name-field-ngf-cover-image, .newsfeed__item .field--name-field-media-image { border-radius: 10px; background: #1f1e23; max-height: 320px; @@ -2788,7 +2970,7 @@ a.logo__link span { overflow: hidden; } -.newsfeed__item .field--name-field-ngf-cover-image img.responsive { +.newsfeed__item .field--name-field-ngf-cover-image img.responsive, .newsfeed__item .field--name-field-media-image img.responsive { max-height: 320px; width: auto; -ms-flex-negative: 0; @@ -2805,13 +2987,22 @@ a.logo__link span { max-width: 100%; } -.newsfeed__legend-copyright a { +.newsfeed__legend-copyright span:after { + content: " | "; + display: inline; +} + +.newsfeed__legend-copyright span:last-child:after { + content: ""; +} + +.newsfeed__legend-copyright span a { color: #515155 !important; -webkit-box-shadow: 0 1px 0 0 #515155 !important; box-shadow: 0 1px 0 0 #515155 !important; } -.newsfeed__legend-copyright a:hover { +.newsfeed__legend-copyright span a:hover { color: #662D91 !important; -webkit-box-shadow: 0 1px 0 0 #662D91 !important; box-shadow: 0 1px 0 0 #662D91 !important; @@ -3453,20 +3644,4 @@ a.share--email { } } -.field--type-video { - position: relative; - padding-bottom: 56.25%; - padding-top: 30px; height: 0; overflow: hidden; -} - -.field--type-video iframe, -.field--type-video object, -.field--type-video embed { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; -} - /*# sourceMappingURL=style.css.map */ diff --git a/funkywave.theme b/funkywave.theme index a33e136..49aec4c 100644 --- a/funkywave.theme +++ b/funkywave.theme @@ -53,14 +53,7 @@ function funkywave_preprocess_node(&$variables) { $variables['ngf_context_text'] = t('Commented'); } - $variables['classes'] = [ - 'newsfeed__item', - 'newsfeed__item--' . $node->bundle(), - $node->isPromoted() ? 'newsfeed__item--promoted' : '', - $node->isSticky() ? 'newsfeed__item--sticky' : '', - !$node->isPublished() ? 'node--unpublished newsfeed__item--unpublished' : '', - 'newsfeed__item--' . $view_mode, - ]; + } } diff --git a/templates/content/node--ngf-discussion.html.twig b/templates/content/node--ngf-discussion.html.twig index 81955d7..1be3582 100644 --- a/templates/content/node--ngf-discussion.html.twig +++ b/templates/content/node--ngf-discussion.html.twig @@ -73,6 +73,17 @@ {{ attach_library('classy/node') }} +{% + set classes = [ + 'newsfeed__item', + 'newsfeed__item--' ~ node.bundle|clean_class, + node.isPromoted() ? 'newsfeed__item--promoted', + node.isSticky() ? 'newsfeed__item--sticky', + not node.isPublished() ? 'node--unpublished newsfeed__item--unpublished', + view_mode ? 'newsfeed__item--' ~ view_mode|clean_class, + ] +%} + {% if node.uid.entity.user_picture.entity.uri.value is empty %} {% set image_url = file_url(directory ~ '/images/default_user.jpg') %} {% else %} From b6391411d775f6e605da9ffc9ebf7604f26cf890 Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Thu, 5 Jul 2018 13:55:07 +0200 Subject: [PATCH 108/200] DAE-318: fix title for basic page and fix map showing map --- templates/block/block.html.twig | 44 +++++++++++++++++++ templates/content/group--ngf-event.html.twig | 6 ++- .../content/node--ngf-discussion.html.twig | 4 +- templates/content/page-title.html.twig | 19 ++++++++ 4 files changed, 70 insertions(+), 3 deletions(-) create mode 100644 templates/block/block.html.twig create mode 100644 templates/content/page-title.html.twig diff --git a/templates/block/block.html.twig b/templates/block/block.html.twig new file mode 100644 index 0000000..fd3311b --- /dev/null +++ b/templates/block/block.html.twig @@ -0,0 +1,44 @@ +{# +/** + * @file + * Theme override to display a block. + * + * Available variables: + * - plugin_id: The ID of the block implementation. + * - label: The configured label of the block if visible. + * - configuration: A list of the block's configuration values. + * - label: The configured label for the block. + * - label_display: The display settings for the label. + * - provider: The module or other provider that provided this block plugin. + * - Block plugin specific settings will also be stored here. + * - content: The content of this block. + * - attributes: array of HTML attributes populated by modules, intended to + * be added to the main container tag of this template. + * - id: A valid HTML ID and guaranteed unique. + * - title_attributes: Same as attributes, except applied to the main title + * tag that appears in the template. + * - title_prefix: Additional output populated by modules, intended to be + * displayed in front of the main title tag that appears in the template. + * - title_suffix: Additional output populated by modules, intended to be + * displayed after the main title tag that appears in the template. + * + * @see template_preprocess_block() + */ +#} +{% + set classes = [ + 'block', + 'block-' ~ configuration.provider|clean_class, + 'block-' ~ plugin_id|clean_class, + ] +%} + + {{ title_prefix }} + {% if label %} + {{ label }} + {% endif %} + {{ title_suffix }} + {% block content %} + {{ content }} + {% endblock %} + diff --git a/templates/content/group--ngf-event.html.twig b/templates/content/group--ngf-event.html.twig index c83efcc..3b8ceff 100644 --- a/templates/content/group--ngf-event.html.twig +++ b/templates/content/group--ngf-event.html.twig @@ -146,7 +146,9 @@ {% endif %} - {{ content.field_ngf_location }} + {% if content.field_ngf_address|render %} + {{ content.field_ngf_location }} + {% endif %} {% endblock eventdata %} @@ -155,7 +157,7 @@ {# Event Summary #} {% block eventintrotext %} {% if content.field_ngf_introtext is not empty %} - {{ content.field_ngf_introtext }} +

    {{ content.field_ngf_introtext|field_value }}

    {% endif %} {% endblock eventintrotext %} diff --git a/templates/content/node--ngf-discussion.html.twig b/templates/content/node--ngf-discussion.html.twig index 1be3582..a42fda4 100644 --- a/templates/content/node--ngf-discussion.html.twig +++ b/templates/content/node--ngf-discussion.html.twig @@ -130,7 +130,9 @@ {# Introtext #} {% block introtext %} - {{ content.field_ngf_introtext }} + {% if content.field_ngf_introtext is not empty %} +

    {{ content.field_ngf_introtext|field_value }}

    + {% endif %} {% endblock introtext %} {% block show_more %} diff --git a/templates/content/page-title.html.twig b/templates/content/page-title.html.twig new file mode 100644 index 0000000..485b3d1 --- /dev/null +++ b/templates/content/page-title.html.twig @@ -0,0 +1,19 @@ +{# +/** + * @file + * Theme override for page titles. + * + * Available variables: + * - title_attributes: HTML attributes for the page title element. + * - title_prefix: Additional output populated by modules, intended to be + * displayed in front of the main title tag that appears in the template. + * - title: The page title, for use in the actual content. + * - title_suffix: Additional output populated by modules, intended to be + * displayed after the main title tag that appears in the template. + */ +#} +{{ title_prefix }} +{% if title %} + {{ title }} +{% endif %} +{{ title_suffix }} From 1da3ec9e444b65bb3e8173731ab186e6e4f9c928 Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Thu, 5 Jul 2018 14:00:08 +0200 Subject: [PATCH 109/200] NGF-318: remove block twig template because it is not used --- templates/block/block.html.twig | 44 --------------------------------- 1 file changed, 44 deletions(-) delete mode 100644 templates/block/block.html.twig diff --git a/templates/block/block.html.twig b/templates/block/block.html.twig deleted file mode 100644 index fd3311b..0000000 --- a/templates/block/block.html.twig +++ /dev/null @@ -1,44 +0,0 @@ -{# -/** - * @file - * Theme override to display a block. - * - * Available variables: - * - plugin_id: The ID of the block implementation. - * - label: The configured label of the block if visible. - * - configuration: A list of the block's configuration values. - * - label: The configured label for the block. - * - label_display: The display settings for the label. - * - provider: The module or other provider that provided this block plugin. - * - Block plugin specific settings will also be stored here. - * - content: The content of this block. - * - attributes: array of HTML attributes populated by modules, intended to - * be added to the main container tag of this template. - * - id: A valid HTML ID and guaranteed unique. - * - title_attributes: Same as attributes, except applied to the main title - * tag that appears in the template. - * - title_prefix: Additional output populated by modules, intended to be - * displayed in front of the main title tag that appears in the template. - * - title_suffix: Additional output populated by modules, intended to be - * displayed after the main title tag that appears in the template. - * - * @see template_preprocess_block() - */ -#} -{% - set classes = [ - 'block', - 'block-' ~ configuration.provider|clean_class, - 'block-' ~ plugin_id|clean_class, - ] -%} - - {{ title_prefix }} - {% if label %} - {{ label }} - {% endif %} - {{ title_suffix }} - {% block content %} - {{ content }} - {% endblock %} - From 3324c7cf9b14ed8e6fd6965b348f0f7cf9717e5f Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Fri, 6 Jul 2018 14:26:43 +0200 Subject: [PATCH 110/200] NGF-322: template for logo and temp fix for themening header --- images/email_footer.jpg | Bin 0 -> 2546 bytes images/email_header_image.jpg | Bin 0 -> 69624 bytes images/email_regionsweek_logo.jpg | Bin 0 -> 11977 bytes images/logo_futurium_lab.svg | 107 +++++++++++------- images/logo_futurium_lab_negatif.svg | 74 ++++++++++++ images/sad-star.svg | 19 ++++ .../block--system-branding-block.html.twig | 30 +++++ templates/layout/page.html.twig | 9 ++ 8 files changed, 199 insertions(+), 40 deletions(-) create mode 100644 images/email_footer.jpg create mode 100644 images/email_header_image.jpg create mode 100644 images/email_regionsweek_logo.jpg create mode 100644 images/logo_futurium_lab_negatif.svg create mode 100644 images/sad-star.svg create mode 100644 templates/block/block--system-branding-block.html.twig diff --git a/images/email_footer.jpg b/images/email_footer.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9fde82bd410aaf1daacc6c198f141f360a0a5764 GIT binary patch literal 2546 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

    NsLu{M2pMn|X!yzBzAS_Lt<;RLOY8pRetEV0>+w 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 z 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 R{)@nW5%_-&0h+%){vXLU($fF{ literal 0 HcmV?d00001 diff --git a/images/email_regionsweek_logo.jpg b/images/email_regionsweek_logo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..49e884fd90af8b9133a10e541e12e7a5eced1a8d GIT binary patch literal 11977 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 + width="514.84px" height="76.839px" viewBox="0 0 514.84 76.839" enable-background="new 0 0 514.84 76.839" xml:space="preserve"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + - - - - - - - - - - - - - - + + + diff --git a/images/logo_futurium_lab_negatif.svg b/images/logo_futurium_lab_negatif.svg new file mode 100644 index 0000000..88161c4 --- /dev/null +++ b/images/logo_futurium_lab_negatif.svg @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/images/sad-star.svg b/images/sad-star.svg new file mode 100644 index 0000000..7f0c861 --- /dev/null +++ b/images/sad-star.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + diff --git a/templates/block/block--system-branding-block.html.twig b/templates/block/block--system-branding-block.html.twig new file mode 100644 index 0000000..c6c2331 --- /dev/null +++ b/templates/block/block--system-branding-block.html.twig @@ -0,0 +1,30 @@ +{% extends "block.html.twig" %} +{# +/** + * @file + * Theme override for a branding block. + * + * Each branding element variable (logo, name, slogan) is only available if + * enabled in the block configuration. + * + * Available variables: + * - site_logo: Logo for site as defined in Appearance or theme settings. + * - site_name: Name for site as defined in Site information settings. + * - site_slogan: Slogan for site as defined in Site information settings. + */ +#} +{% block content %} + {% if site_logo %} + + {% endif %} + {% if site_name %} +

    + {{ site_name }} +

    + {% endif %} + {% if site_slogan %} +
    {{ site_slogan }}
    + {% endif %} +{% endblock %} diff --git a/templates/layout/page.html.twig b/templates/layout/page.html.twig index 29c4eda..8c686ff 100644 --- a/templates/layout/page.html.twig +++ b/templates/layout/page.html.twig @@ -50,6 +50,15 @@
    {{ page.header }} + + + + +
    From 52f3739160881eee1e2fde191816be6f5f611a2c Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Fri, 6 Jul 2018 17:43:13 +0200 Subject: [PATCH 111/200] fix for header --- css/style.css | 28 +++++++++++++++++++----- images/article--discussion-icon_dark.svg | 21 ++++++++++++++++++ images/article--event-icon_dark.svg | 18 +++++++++++++++ templates/layout/page.html.twig | 4 +--- 4 files changed, 63 insertions(+), 8 deletions(-) create mode 100644 images/article--discussion-icon_dark.svg create mode 100644 images/article--event-icon_dark.svg diff --git a/css/style.css b/css/style.css index c9e2dd9..7e0ce44 100644 --- a/css/style.css +++ b/css/style.css @@ -127,6 +127,7 @@ a:not(.toolbar-item):hover { } main { + display: block; margin-top: -36px; padding: 0px 15px 75px 15px; min-height: 100vh; @@ -160,7 +161,7 @@ main *:not(img):not(svg)::selection { margin-top: 0; margin-left: 33%; width: 66%; - padding: 75px 15px 0px 15px; + padding: 100px 15px 0px 15px; } .general-container--card { @@ -855,10 +856,12 @@ li.tag { position: relative; display: inline-block; font-weight: 700; + width: 25px; + height: 25px; padding: 0 3rem; line-height: 3rem; color: #88898c; - background-color: #FFFFFF; + background-color: #FFF; z-index: 0; } @@ -1273,6 +1276,12 @@ input.btn { font-size: 1.8rem; } +.btn.btn--large .icon { + height: 1.8rem; + margin-right: 1rem; + display: inline-block; +} + a.btn, input.btn, button.btn { color: #05111E; font-size: 1.3rem; @@ -1289,6 +1298,12 @@ a.btn, input.btn, button.btn { cursor: pointer; } +a.btn .icon, input.btn .icon, button.btn .icon { + height: 1.3rem; + margin-right: 1rem; + display: inline-block; +} + a.btn:not(.btn--large):last-child, input.btn:not(.btn--large):last-child, button.btn:not(.btn--large):last-child { margin-bottom: 0px; } @@ -2548,10 +2563,11 @@ a.btn:focus, input.btn:focus, button.btn:focus { } .logo-area { - background-image: url("../images/logo-area-bckgrd--sm.svg"); + background-image: -webkit-gradient(linear, left top, left bottom, from(#1a3773), to(#1a3773)), url("../images/logo-area-bckgrd--sm.svg"); + background-image: linear-gradient(#1a3773, #1a3773), url("../images/logo-area-bckgrd--sm.svg"); background-repeat: no-repeat; - background-size: 100vw 10vh; - background-position: center top; + background-size: 100vw 25px, 100vw 10vh; + background-position: center 0, center 25px; height: 100px; width: 100vw; } @@ -2614,6 +2630,7 @@ a.logo__link span { @media (min-width: 992px) { .logo-area { width: 25%; + max-width: 300px; } h1.logo--title { @@ -3431,6 +3448,7 @@ header.profile .profile__meta li, header.profile .profile__location li { color: #515155; display: block; list-style: none; + max-width: 100%; } header.profile .profile__location li { diff --git a/images/article--discussion-icon_dark.svg b/images/article--discussion-icon_dark.svg new file mode 100644 index 0000000..9920a22 --- /dev/null +++ b/images/article--discussion-icon_dark.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/images/article--event-icon_dark.svg b/images/article--event-icon_dark.svg new file mode 100644 index 0000000..2b84df9 --- /dev/null +++ b/images/article--event-icon_dark.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + diff --git a/templates/layout/page.html.twig b/templates/layout/page.html.twig index 8c686ff..fff9c56 100644 --- a/templates/layout/page.html.twig +++ b/templates/layout/page.html.twig @@ -53,9 +53,7 @@ From ca2faf291e6c2662765391ee76fbf5c3984ea2ae Mon Sep 17 00:00:00 2001 From: Nikolay Lobachev Date: Mon, 9 Jul 2018 14:07:16 +0200 Subject: [PATCH 112/200] Show links to the group for not logged in users also --- .../pattern-profile-shortinfo.html.twig | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/patterns/profile-shortinfo/pattern-profile-shortinfo.html.twig b/patterns/profile-shortinfo/pattern-profile-shortinfo.html.twig index 221c610..90631c0 100644 --- a/patterns/profile-shortinfo/pattern-profile-shortinfo.html.twig +++ b/patterns/profile-shortinfo/pattern-profile-shortinfo.html.twig @@ -7,21 +7,20 @@
    - {% if logged_in %} - + {% if url %} + {% endif %} - {{ subpic }}

    - {% if logged_in %} + {% if url %} From 9c63bc8fa0ce3e1f036d49248a73a43021a96bfc Mon Sep 17 00:00:00 2001 From: Nikolay Lobachev Date: Mon, 9 Jul 2018 17:07:55 +0200 Subject: [PATCH 113/200] Add autocomplete css. Change the link for current users --- funkywave.libraries.yml | 1 + funkywave.theme | 12 +++++++++--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/funkywave.libraries.yml b/funkywave.libraries.yml index ed8b735..ed7a932 100644 --- a/funkywave.libraries.yml +++ b/funkywave.libraries.yml @@ -3,6 +3,7 @@ global-css: theme: css/style.css: {} css/override.css: {} + css/autocomplete.css: {} global-js: js: js/script.js: {} diff --git a/funkywave.theme b/funkywave.theme index 49aec4c..320fe5e 100644 --- a/funkywave.theme +++ b/funkywave.theme @@ -127,9 +127,15 @@ function funkywave_preprocess_user(&$variables) { $variables['user_name'] = $user->getUsername(); $variables['full_name'] = $user->full_name->value; - $variables['profile_uri'] = Url::fromRoute('ngf_user_profile.page.profile', [ - 'user' => $user_id, - ])->toString(); + + if ($user->id() == \Drupal::currentUser()->id()) { + $variables['profile_uri'] = Url::fromRoute('ngf_user_profile.page.profile')->toString(); + } + else { + $variables['profile_uri'] = Url::fromRoute('ngf_user_profile.page.user_profile', [ + 'user' => $user_id, + ])->toString(); + } if (\Drupal::routeMatch()->getRouteName() == 'ngf_user_profile.page.user_about') { $variables['profile_uri_back'] = $variables['profile_uri']; From 545f88eb8a739c8a37f767074aa410c9fcf29f55 Mon Sep 17 00:00:00 2001 From: Nikolay Lobachev Date: Tue, 10 Jul 2018 14:46:44 +0200 Subject: [PATCH 114/200] Use generic template for textfield. Create a wrapper for for element --- funkywave.theme | 37 ------- templates/form/form-element--all.html.twig | 98 ------------------- .../form/form-element-label--all.html.twig | 34 ------- templates/form/input--textfield.html.twig | 24 +++++ 4 files changed, 24 insertions(+), 169 deletions(-) delete mode 100644 templates/form/form-element--all.html.twig delete mode 100644 templates/form/form-element-label--all.html.twig create mode 100644 templates/form/input--textfield.html.twig diff --git a/funkywave.theme b/funkywave.theme index 320fe5e..2c87a5c 100644 --- a/funkywave.theme +++ b/funkywave.theme @@ -280,40 +280,3 @@ function funkywave_theme() { ]; return $themes; } - -/** - * Implements hook_theme_suggestions_HOOK_alter(). - */ - -/* This is needed since ngf_user_registration injects a doubled label element */ -/* StepOne.php line 91 (ngf_user_registration) */ -/* Otherwise we could use the standard core form_element_label suggestion */ -function funkywave_theme_suggestions_form_element_label_alter(array &$suggestions, array $variables) { - $route_name = \Drupal::routeMatch()->getRouteName(); - - $contact_routes = array( - 'ngf_user_registration', - ); - - if (!in_array($route_name, $contact_routes)) { - $suggestions[] = 'form_element_label__all'; - } -} - -/** - * Implements hook_theme_suggestions_HOOK_alter(). - */ -/* This is needed since ngf_user_registration wrapped title wo we cannot generalise */ -/* StepFour.php line 57 (ngf_user_registration) */ -/* Otherwise we could use the standard core form_element suggestion */ -function funkywave_theme_suggestions_form_element_alter(array &$suggestions, array $variables) { - $route_name = \Drupal::routeMatch()->getRouteName(); - - $contact_routes = array( - 'contact.ngf_user_registration', - ); - - if (!in_array($route_name, $contact_routes)) { - $suggestions[] = 'form_element__all'; - } -} diff --git a/templates/form/form-element--all.html.twig b/templates/form/form-element--all.html.twig deleted file mode 100644 index 69cf73a..0000000 --- a/templates/form/form-element--all.html.twig +++ /dev/null @@ -1,98 +0,0 @@ -{# -/** - * @file - * Theme override for a form element. - * - * Available variables: - * - attributes: HTML attributes for the containing element. - * - errors: (optional) Any errors for this form element, may not be set. - * - prefix: (optional) The form element prefix, may not be set. - * - suffix: (optional) The form element suffix, may not be set. - * - required: The required marker, or empty if the associated form element is - * not required. - * - type: The type of the element. - * - name: The name of the element. - * - label: A rendered label element. - * - label_display: Label display setting. It can have these values: - * - before: The label is output before the element. This is the default. - * The label includes the #title and the required marker, if #required. - * - after: The label is output after the element. For example, this is used - * for radio and checkbox #type elements. If the #title is empty but the - * field is #required, the label will contain only the required marker. - * - invisible: Labels are critical for screen readers to enable them to - * properly navigate through forms but can be visually distracting. This - * property hides the label for everyone except screen readers. - * - attribute: Set the title attribute on the element to create a tooltip but - * output no label element. This is supported only for checkboxes and radios - * in \Drupal\Core\Render\Element\CompositeFormElementTrait::preRenderCompositeFormElement(). - * It is used where a visual label is not needed, such as a table of - * checkboxes where the row and column provide the context. The tooltip will - * include the title and required marker. - * - description: (optional) A list of description properties containing: - * - content: A description of the form element, may not be set. - * - attributes: (optional) A list of HTML attributes to apply to the - * description content wrapper. Will only be set when description is set. - * - description_display: Description display setting. It can have these values: - * - before: The description is output before the element. - * - after: The description is output after the element. This is the default - * value. - * - invisible: The description is output after the element, hidden visually - * but available to screen readers. - * - disabled: True if the element is disabled. - * - title_display: Title display setting. - * - * @see template_preprocess_form_element() - */ -#} -{% - set classes = [ - 'js-form-item', - 'form__block', - 'form-item', - 'js-form-type-' ~ type|clean_class, - 'form-type-' ~ type|clean_class, - 'js-form-item-' ~ name|clean_class, - 'form-item-' ~ name|clean_class, - title_display not in ['after', 'before'] ? 'form-no-label', - disabled == 'disabled' ? 'form-disabled', - errors ? 'form-item--error', - type == 'checkbox' ? 'form__block--checkbox', - ] -%} -{% - set description_classes = [ - 'description', - description_display == 'invisible' ? 'visually-hidden', - ] -%} - - {% if label_display in ['before', 'invisible'] %} - - {{ label }} - {% endif %} - {% if prefix is not empty %} - {{ prefix }} - {% endif %} - {% if description_display == 'before' and description.content %} - - {{ description.content }} -

    - {% endif %} - {{ children }} - {% if suffix is not empty %} - {{ suffix }} - {% endif %} - {% if label_display == 'after' %} - {{ label }} - {% endif %} - {% if errors %} -
    - {{ errors }} -
    - {% endif %} - {% if description_display in ['after', 'invisible'] and description.content %} - - {{ description.content }} -
    - {% endif %} - diff --git a/templates/form/form-element-label--all.html.twig b/templates/form/form-element-label--all.html.twig deleted file mode 100644 index 4d3152c..0000000 --- a/templates/form/form-element-label--all.html.twig +++ /dev/null @@ -1,34 +0,0 @@ -{# -/** - * @file - * Theme override for a form element label. - * - * Available variables: - * - title: The label's text. - * - title_display: Elements title_display setting. - * - required: An indicator for whether the associated form element is required. - * - attributes: A list of HTML attributes for the label. - * - id: the #id attribute of the element. - * - * @see template_preprocess_form_element_label() - */ -#} -{% - set classes = [ - title_display == 'after' ? 'option', - title_display == 'invisible' ? 'visually-hidden', - required ? 'js-form-required', - required ? 'form-required', - ] -%} -{% if title is not empty or required %} - - {% if id == 'edit-copy' %} - - {% endif %} - {{ title }} - {% if required %} - {% trans %}Mandatory field{% endtrans %} * - {% endif %} - -{% endif %} diff --git a/templates/form/input--textfield.html.twig b/templates/form/input--textfield.html.twig new file mode 100644 index 0000000..90814de --- /dev/null +++ b/templates/form/input--textfield.html.twig @@ -0,0 +1,24 @@ +{# +/** + * @file + * Default theme implementation for an 'input' #type form element. + * + * Available variables: + * - attributes: A list of HTML attributes for the input element. + * - children: Optional additional rendered elements. + * + * @see template_preprocess_input() + * + * @ingroup themeable + */ +#} +{% +set classes = [ + 'form__input', + 'form__input--text', + 'my' +] +%} +
    + {{ children }} +
    From d4bfa757f7ee8e07b79fdb815c290b31cd0e3d50 Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Tue, 10 Jul 2018 15:50:16 +0200 Subject: [PATCH 115/200] js files added --- js/custom-file-input.js | 34 +++++++++++++ js/nav-tab.js | 43 ++++++++++++++++ js/script.js | 99 +++++++++++++++++++++++++++++++++++++ js_min/custom-file-input.js | 1 + js_min/nav-tab.js | 1 + js_min/script.js | 1 + 6 files changed, 179 insertions(+) create mode 100644 js/custom-file-input.js create mode 100644 js/nav-tab.js create mode 100644 js_min/custom-file-input.js create mode 100644 js_min/nav-tab.js diff --git a/js/custom-file-input.js b/js/custom-file-input.js new file mode 100644 index 0000000..6452f60 --- /dev/null +++ b/js/custom-file-input.js @@ -0,0 +1,34 @@ +/* + By Osvaldas Valutis, www.osvaldas.info + Available for use under the MIT License +*/ + +'use strict'; + +;( function ( document, window, index ) +{ + var inputs = document.querySelectorAll( '.form__input--file' ); + Array.prototype.forEach.call( inputs, function( input ) + { + var label = input.nextElementSibling, + labelVal = label.innerHTML; + + input.addEventListener( 'change', function( e ) + { + var fileName = ''; + if( this.files && this.files.length > 1 ) + fileName = ( this.getAttribute( 'data-multiple-caption' ) || '' ).replace( '{count}', this.files.length ); + else + fileName = e.target.value.split( '\\' ).pop(); + + if( fileName ) + label.querySelector( 'span' ).innerHTML = fileName; + else + label.innerHTML = labelVal; + }); + + // Firefox bug fix + input.addEventListener( 'focus', function(){ input.classList.add( 'has-focus' ); }); + input.addEventListener( 'blur', function(){ input.classList.remove( 'has-focus' ); }); + }); +}( document, window, 0 )); \ No newline at end of file diff --git a/js/nav-tab.js b/js/nav-tab.js new file mode 100644 index 0000000..0d4c45e --- /dev/null +++ b/js/nav-tab.js @@ -0,0 +1,43 @@ +$(document).ready(function (){ + + + + $('ul.nav--tabs').each(function(){ + // For each set of tabs, we want to keep track of + // which tab is active and its associated content + var $active, $content, $links = $(this).find('a'); + + // If the location.hash matches one of the links, use that as the active tab. + // If no match is found, use the first link as the initial active tab. + $active = $($links.filter('[href="'+location.hash+'"]')[0] || $links[0]); + $active.addClass('active'); + + $content = $($active[0].hash); + + // Hide the remaining content + $links.not($active).each(function () { + $(this.hash).hide(); + }); + + // Bind the click event handler + $(this).on('click', 'a', function(e){ + + e.preventDefault(); + + // Make the old tab inactive. + $active.removeClass('active'); + $content.hide(); + + // Update the variables with the new link and content + $active = $(this); + $content = $(this.hash); + + // Make the tab active. + $active.addClass('active'); + $content.show(); + + // Prevent the anchor's default click action + + }); +}); +}); \ No newline at end of file diff --git a/js/script.js b/js/script.js index e69de29..effbab3 100644 --- a/js/script.js +++ b/js/script.js @@ -0,0 +1,99 @@ +$(document).ready(function() { + + $(".disabled").click(function (e) { + e.preventDefault(); + }) + + $("a.account-info__wrapper").click(function(e) { + e.preventDefault(); + + var $menu = $(".account-info__dropdown"); + + /*if ($menu.hasClass("open")) { + $menu.removeClass("open"); + } else { + $menu.addClass("open"); + }*/ + + $menu.toggle(200); + }) + + function addInterest ($btn) { + + var $interestedBtn = $btn; + var $cancelBtn = $('
    '); + var marginGap = 0; + + $interestedBtn.off("click"); + $interestedBtn.toggleClass("flip"); + $interestedBtn.blur(); + setTimeout(function() { + $interestedBtn.prepend(' '); + //$interestedBtn.css({transform: "rotateX(0deg)"}); + $interestedBtn.removeClass("flip"); + $interestedBtn.prop("disabled", true); + $interestedBtn.addClass("disabled"); + + $(".disabled").click(function (e) { + e.preventDefault(); + }) + + }, 200); + + $cancelBtn.css({opacity: 0}); + $interestedBtn.after($cancelBtn); + + console.log("hello sergey"); + + + if (!$interestedBtn.parent().hasClass("btn-list--center")) { + marginGap = $interestedBtn.offset().top - $cancelBtn.offset().top - 4; + } + + $cancelBtn.css({display: "none", marginTop : marginGap}); + + $cancelBtn.slideToggle(200); + $cancelBtn.animate({opacity: 1}, 200); + + $cancelBtn.children(".btn").click(function (e) { + e.preventDefault(); + + cancelInterest( $(this) ); + }); + } + + function cancelInterest ($btn) { + + var $cancelBtn = $btn.parent(), + $interestedBtn = $cancelBtn.prev(".btn--interest"); + + $cancelBtn.off("click"); + $cancelBtn.animate({opacity: 0}, 200); + $cancelBtn.slideToggle(200, function () { + $cancelBtn.remove(); + }); + + $interestedBtn.prop("disabled", false); + $interestedBtn.removeClass("disabled"); + $interestedBtn.toggleClass("flip"); + setTimeout(function() { + $interestedBtn.find("svg").remove(); + $interestedBtn.removeClass("flip"); + $interestedBtn.prop("disabled", false); + $interestedBtn.removeClass("disabled"); + $interestedBtn.click(function (e) { + e.preventDefault(); + + addInterest( $(this) ); + }); + + }, 200); + + } + + $(".btn--interest:not([disabled])").click(function (e) { + e.preventDefault(); + + addInterest( $(this) ); + }); +}); \ No newline at end of file diff --git a/js_min/custom-file-input.js b/js_min/custom-file-input.js new file mode 100644 index 0000000..91bc9b1 --- /dev/null +++ b/js_min/custom-file-input.js @@ -0,0 +1 @@ +"use strict";!function(e,t,n){var i=e.querySelectorAll(".form__input--file");Array.prototype.forEach.call(i,function(e){var n=e.nextElementSibling,i=n.innerHTML;e.addEventListener("change",function(e){var t="";(t=this.files&&1"),a=0;t.off("click"),t.toggleClass("flip"),t.blur(),setTimeout(function(){t.prepend(' '),t.removeClass("flip"),t.prop("disabled",!0),t.addClass("disabled"),$(".disabled").click(function(e){e.preventDefault()})},200),i.css({opacity:0}),t.after(i),t.parent().hasClass("btn-list--center")||(a=t.offset().top-i.offset().top-4),i.css({display:"none",marginTop:a}),i.slideToggle(200),i.animate({opacity:1},200),i.children(".btn").click(function(e){var t,i,a;e.preventDefault(),t=$(this),i=t.parent(),a=i.prev(".btn--interest"),i.off("click"),i.animate({opacity:0},200),i.slideToggle(200,function(){i.remove()}),a.prop("disabled",!1),a.removeClass("disabled"),a.toggleClass("flip"),setTimeout(function(){a.find("svg").remove(),a.removeClass("flip"),a.prop("disabled",!1),a.removeClass("disabled"),a.click(function(e){e.preventDefault(),n($(this))})},200)})}$(".disabled").click(function(e){e.preventDefault()}),$("a.account-info__wrapper").click(function(e){e.preventDefault(),$(".account-info__dropdown").toggle(200)}),$(".btn--interest:not([disabled])").click(function(e){e.preventDefault(),n($(this))})}); \ No newline at end of file From 5348d6e96ad8afa58c7960684f0ceaac7f10eb38 Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Thu, 12 Jul 2018 11:29:27 +0200 Subject: [PATCH 116/200] temp css fixes --- css/style.css | 69 ++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 66 insertions(+), 3 deletions(-) diff --git a/css/style.css b/css/style.css index 7e0ce44..7a885c3 100644 --- a/css/style.css +++ b/css/style.css @@ -73,7 +73,8 @@ p + h2, p + h3, p + h4 { margin-top: 1.8em; } -a:not(.toolbar-item) { +a:not(.toolbar-item), +a:not(.ui-menu-item-wrapper) { color: #662D91; -webkit-transition: all 0.2s; transition: all 0.2s; @@ -86,7 +87,10 @@ a:not(.toolbar-item) { transition: all .2s ease; } -a:not(.toolbar-item):hover { + + +a:not(.toolbar-item):hover, +a:not(.ui-menu-item-wrapper):hover { color: #003ba7; -webkit-box-shadow: 0 1px 0 0 #FFFFFF; box-shadow: 0 1px 0 0 #FFFFFF; @@ -1118,7 +1122,7 @@ li.tag { width: 100%; max-width: 46px; height: auto; - border: 2px solid transparent; + border: 2px solid rgba(0, 0, 0, 0); -webkit-box-shadow: 0px 0px 0px 2px rgba(255, 255, 255, 0.75); box-shadow: 0px 0px 0px 2px rgba(255, 255, 255, 0.75); margin-right: 15px; @@ -2920,6 +2924,10 @@ a.logo__link span { margin: 0 -15px; } +.newsfeed .view-empty { + padding: 0 15px; +} + .sub-section { border-top: solid 1px #a6a7ab; margin-bottom: 16px; @@ -2995,6 +3003,10 @@ a.logo__link span { display: block; } +.newsfeed__item .newsfeed__article-wrapper { + padding: 0 15px; +} + .newsfeed__legend-copyright { font-size: 1.3rem; margin-top: 0.1em; @@ -3663,3 +3675,54 @@ a.share--email { } /*# sourceMappingURL=style.css.map */ + +ul.ui-menu { + width: 100%; + max-width: 32em; + z-index: 2000; + margin: 0; + padding: 0; +} + +ul.ui-menu li.ui-menu-item { + list-style: none; + width: 100%; + max-width: none; +} + +ul.ui-menu li.ui-menu-item a { + text-shadow: none; + x-webkit-box-shadow: none; + box-shadow: none; + padding: 0.5rem 0.7rem; +} + +ul.ui-menu a.ui-menu-item-wrapper { + display: block; +} + +ul.ui-menu .ui-state-focus, +ul.ui-menu .ui-state-active { + margin: 0; +} + +li.ui-menu-item .ui-menu-item-wrapper.ui-state-active { + background: #662D91 !important; + border: none; + color: #fff; +} + + + +.form-item-city, #city-wrapper { + margin: 0; + padding: 0; +} + +/* Remove chosen background */ + +.chosen-container .chosen-results li.highlighted { + background-image: none; +} + + From dab67934eac45b0df7acccf5d2da2b08c8957ddc Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Thu, 12 Jul 2018 17:02:46 +0200 Subject: [PATCH 117/200] NGF-337: move sass to the theme --- package.json | 10 +- sass/base/_base.scss | 183 +++++++ sass/base/_form.scss | 388 +++++++++++++ sass/base/_icon.scss | 8 + sass/base/_list.scss | 80 +++ sass/base/_tag.scss | 63 +++ sass/base/_utilities.scss | 139 +++++ sass/base/_variables.scss | 140 +++++ sass/components/_account-info.scss | 296 ++++++++++ sass/components/_attachment.scss | 4 + sass/components/_buttons.scss | 175 ++++++ sass/components/_chosen.scss | 511 ++++++++++++++++++ sass/components/_comments.scss | 97 ++++ sass/components/_cta.scss | 95 ++++ sass/components/_files.scss | 52 ++ sass/components/_footer.scss | 173 ++++++ sass/components/_header.scss | 137 +++++ sass/components/_inpage-nav.scss | 82 +++ sass/components/_logo-area.scss | 101 ++++ sass/components/_navigation.scss | 277 ++++++++++ sass/components/_newsfeed.scss | 193 +++++++ sass/components/_post-info.scss | 171 ++++++ sass/components/_profile-listing.scss | 4 + sass/components/_profile.scss | 250 +++++++++ sass/components/_related-content.scss | 15 + sass/components/_related-events.scss | 10 + sass/components/_social-share.scss | 81 +++ sass/style.scss | 8 +- sass/theme/_funkywave.scss | 73 +++ .../images/account-info__background--idle.svg | 195 +++++++ sass/theme/images/logo-area-bckgrd--sm.svg | 59 ++ .../navigation-menu__background--sm.svg | 31 ++ ...ion-menu__item--active__background--sm.svg | 83 +++ .../new-item__button__background--sm.svg | 83 +++ .../images/post-info--group__background.svg | 85 +++ 35 files changed, 4345 insertions(+), 7 deletions(-) create mode 100644 sass/base/_form.scss create mode 100644 sass/base/_icon.scss create mode 100644 sass/base/_list.scss create mode 100644 sass/base/_tag.scss create mode 100644 sass/base/_utilities.scss create mode 100644 sass/components/_account-info.scss create mode 100644 sass/components/_attachment.scss create mode 100644 sass/components/_buttons.scss create mode 100644 sass/components/_chosen.scss create mode 100644 sass/components/_comments.scss create mode 100644 sass/components/_cta.scss create mode 100644 sass/components/_files.scss create mode 100644 sass/components/_footer.scss create mode 100644 sass/components/_header.scss create mode 100644 sass/components/_inpage-nav.scss create mode 100644 sass/components/_logo-area.scss create mode 100644 sass/components/_navigation.scss create mode 100644 sass/components/_newsfeed.scss create mode 100644 sass/components/_post-info.scss create mode 100644 sass/components/_profile-listing.scss create mode 100644 sass/components/_profile.scss create mode 100644 sass/components/_related-content.scss create mode 100644 sass/components/_related-events.scss create mode 100644 sass/components/_social-share.scss create mode 100644 sass/theme/_funkywave.scss create mode 100644 sass/theme/images/account-info__background--idle.svg create mode 100644 sass/theme/images/logo-area-bckgrd--sm.svg create mode 100644 sass/theme/images/navigation-menu__background--sm.svg create mode 100644 sass/theme/images/navigation-menu__item--active__background--sm.svg create mode 100644 sass/theme/images/new-item__button__background--sm.svg create mode 100644 sass/theme/images/post-info--group__background.svg diff --git a/package.json b/package.json index 98f734f..24ac4b3 100644 --- a/package.json +++ b/package.json @@ -14,17 +14,19 @@ }, "homepage": "https://github.com/cnect-web/funkywave#readme", "dependencies": { - "glob": "^4.2.2", + "breakpoint-sass": "^2.7.1", "browser-sync": "^2.23.6", "compass-mixins": "^0.12.10", + "glob": "^4.2.2", "gulp": "^3.9.1", "gulp-autoprefixer": "^5.0.0", "gulp-cssbeautify": "^1.0.0", "gulp-cssmin": "^0.2.0", - "gulp-watch": "^5.0.0", - "gulp-sourcemaps": "^2.6.4", + "gulp-git": "^2.5.2", "gulp-plumber": "^1.2.0", - "breakpoint-sass": "^2.7.1" + "gulp-sourcemaps": "^2.6.4", + "gulp-watch": "^5.0.0", + "sass": "^1.9.0" }, "devDependencies": { "gulp-livereload": "^3.8.1", diff --git a/sass/base/_base.scss b/sass/base/_base.scss index b28b04f..8c08c4e 100644 --- a/sass/base/_base.scss +++ b/sass/base/_base.scss @@ -1,3 +1,186 @@ +@import "variables"; // ( set default variables) +* { + box-sizing: border-box; +} +html { + font-size:62.5%; +} +body { + font-family: $font-family-base; + font-size: 1.5rem; + background-color: $body__background-color; + color: $text-color; + margin: 0; + padding: 0; + line-height: 1.8; + background-color: adjust-lightness($gray-800, -3%); + /*background: adjust-lightness($gray-800, -3%) url(../images/body-bckgrd--md.svg) no-repeat center top; + background-size: 100% 80px;*/ + background-image: url(../images/body-bckgrd--md.svg); + background-repeat: no-repeat; + background-position: 50% top; + background-attachment: fixed; + background-size: 100% 80px; + + &.not-signed { + margin-top: 3.5rem; + background-image: url(../images/body-bckgrd--md.svg), linear-gradient($white, $white); + background-position: 50% 3.5rem, center 0; + background-size: 100% 80px, 100% 3.5rem; + } +} + +.wf-active body { + font-family: $body__font; + font-weight: $text__font-wight; +} + +p, h2, h3, h4, h5, h6, li { + max-width: 32em; + } + +h1, h2, h3, h4, h5, h6 { + font-family: $headings__font; + font-weight: bold; + line-height: 1.3; + margin-top: 2.5em; + margin-bottom: 1em; +} + +h1 + h2, +h1 + h3, +h1 + p, +h2 + h3, +h2 + h4, +h2 + p, +h3 + h4, +h3 + h5, +h3 + p, +h4 + p, +h5 + p, +h6 + p, +{ + margin-top: -0.3em; +} + +h4, h5, h6 { + opacity: 0.9; +} + +p:last-child { + //margin-bottom: 1.3em; +} + +p + h2, p + h3, p + h4 { + margin-top: 1.8em; +} + +a:not(.toolbar-item){ + color: $purple; + transition: all 0.2s; + font-weight: 500; + text-decoration: none; + text-shadow: 0 2px 0 $body__background-color, 0 3px 0 $body__background-color, 1px 2px 0 $body__background-color, -1px 2px 0 $body__background-color; + box-shadow: 0 1px 0 0 $purple; + transition: all .2s ease; + + &:hover { + color: scale-lightness($blue, -40%); + box-shadow: 0 1px 0 0 $body__background-color; + transition: all .2s ease; + } +} + +.general-container { + width:100%; + height: 100%; + max-width: 1200px; + margin: auto; + background-color: $white; + overflow: hidden; + + &--card { + height: auto; + width: 100%; + max-width: 768px; + background-color: $white; + margin: auto; + text-align: center; + border-bottom-left-radius: 0px; + border-bottom-right-radius: 0px; + box-shadow: 0px 0px 25px rgba($black, 0.8); + + main { + + } + } +} + +.background--talk > main { + min-height: auto; + float: none; + width: 100%; + max-width: 32em; + margin: auto !important; + padding: 15px 0px 0px 0px; + text-align: left; +} + +main { + display: block; + margin-top: -36px; + padding: 0px 15px 75px 15px; + min-height: 100vh; +} + +main *:not(img):not(svg)::selection { + color: $white; + background: #1a3773; + text-shadow: 2px 2px 0 rgba(0,0,0,0.8), 2px 3px 0 rgba(0,0,0,0.8), 3px 2px 0 rgba(0,0,0,0.8), 4px 2px 0 rgba(0,0,0,0.8); +} + +@media (min-width: 768px) { + + body { + font-size: 1.6rem; + + &.not-signed { + margin-top: 0px; + background-image: url(../images/body-bckgrd--md.svg); + background-position: 50% 0px,; + background-size: 100% 80px; + } + } + + main { + margin-top: 0; + margin-left: 33%; + width: 66%; + padding: 100px 15px 0px 15px; + + } + + .general-container--card { + border-bottom-left-radius: 25px; + border-bottom-right-radius: 25px; + } + +} + +@media (min-width: 992px) { + .general-container { + box-shadow: 0px 0px 25px rgba($black, 0.4); + } + + main { + margin-top: -20px; + margin-left: 25%; + width: 50%; + left: auto; + position: relative; + float: left; + } +} \ No newline at end of file diff --git a/sass/base/_form.scss b/sass/base/_form.scss new file mode 100644 index 0000000..4ada638 --- /dev/null +++ b/sass/base/_form.scss @@ -0,0 +1,388 @@ +.form-wrapper { + padding: 0px 15px 30px 15px; +} + +.wf-active input, .wf-active textarea { + font-family: $body__font; +} + +form, .form { + + &__block { + margin: 1.5rem 0 1rem; + } + + &__block label, &__fake-label { + display: block; + font-weight: 600; + text-align: left; + margin-bottom: 0.3em; + } + + textarea { + font-family: $body__font; + min-height: 6rem; + } + + input[type=text], input[type=email], input[type=password],textarea { + padding: 0.7rem 0.9rem; + font-size: 1.6rem; + line-height: 1.8; + color: $gray-700; + max-width: 32em; + width: 100%; + border: solid 2px $gray-500; + box-shadow: inset 0 0 10px rgba(#000, 0.1); + transition: border-color 0.2s; + font-family: $body__font; + + &:focus:hover, &:focus { + outline: none; + border: solid 2px $purple; + transition: border-color 0.2s; + } + + &:hover{ + border-color: $gray-700; + transition: border-color 0.2s; + } + + &::placeholder { + opacity: 0.4; + } + + &.error { + border: solid 2px $red; + transition: border-color 0.2s; + } + + & + p { + margin-top: 0.2em; + transition: border-color 0.2s; + } + + + + + } + + + + .form__block--twocol { + display: flex; + flex-wrap: wrap; + + > *[class^="form__block--"] { + flex-basis: 100%; + width: 100%;; + flex-grow:1; + padding: 0rem 0px; + margin: 0.8rem 0; + } + } + + .form__block--toggle, .form__block--checkbox { + + input[type=checkbox] { + box-sizing: border-box; + padding: 0; + margin: 4px 0 0; + margin-top: 0em; + opacity: 0; + z-index: 1; + position: absolute; + margin-left: -20px; + } + } + + .form__block--submit { + margin: 2.5rem 0 2rem; + } + + .form__block--checkbox { + + margin: 1.5rem 0 1rem; + + input[type=checkbox]+label .onoffswitch-inner{ + display: inline-block; + height: 2.2rem; + width: 2.2rem; + background: $white; + margin: 3px 20px 0 0; + transition: 0.2s margin; + border: solid 2px $gray-500; + position: absolute; + } + + .label-text { + margin-left: 3.5rem; + display: inline-block; + line-height: 1.5; + } + + input[type=checkbox]:focus+label .onoffswitch-inner{ + box-shadow: 0px 0px 0px 1px $purple; + border: solid 2px $purple !important; + } + + input[type=checkbox]:checked+label .onoffswitch-inner{ + display: inline-block; + height: 2.2rem; + width: 2.2rem; + background: $teal; + margin: 3px 20px 0 0; + transition: 0.2s margin; + border: solid 2px $gray-500; + position: absolute; + + &:before, &:after { + position: absolute; + content: ''; + width: 3px; + height: 2.7rem; + background-color: rgba($gray-900, 0.8); + } + + &:before { + transform: rotate(45deg); + margin-left: 7px; + margin-top: -5px; + } + &:after { + transform: rotate(-45deg); + margin-left: 7px; + margin-top: -5px; + } + } + } + + .form__block--toggle { + margin: 1.5rem 0 1rem; + + input[type=checkbox]+label:before{ + background-color: #FFF; + background-size: 40rem 20rem; + content: ""; + width: 3.9rem; + height: 1.9rem; + display: inline-block; + margin-right: -40px; + margin-top: 3px; + border-radius: 20px; + border: solid 2px $gray-400; + transition: background-color .2s; + box-shadow: inset 0 0 10px rgba(#000, 0.2); + position: absolute; + } + + input[type=checkbox]:focus+label:before{ + box-shadow: 0px 0px 0px 1px $purple; + border: solid 2px $purple !important; + } + + input[type=checkbox]:checked+label:before{ + background-color: $teal; + transition: background-color .2s; + border: solid 2px rgba(#000, 0.2); + } + + input[type=checkbox]:checked+label .onoffswitch-inner{ + display: inline-block; + background: $gray-200; + margin: 3px 0 0 20px; + border: solid 2px $gray-500; + height: 2.2rem; + width: 2.2rem; + } + + input[type=checkbox]+label .onoffswitch-inner{ + display: inline-block; + height: 2.2rem; + width: 2.2rem; + background: $gray-200; + margin: 3px 20px 0 0; + transition: 0.2s margin; + border-radius: 1rem; + border: solid 2px $gray-500; + position: absolute; + } + + .label-text { + margin-left: 5rem; + } + + } +} + +.js .form__input--file { + width: 0.1px; + height: 0.1px; + opacity: 0; + overflow: hidden; + position: absolute; + z-index: -1; + } + + .form__input--file + label { + + padding: 0.7rem 0.9rem; + font-size: 1.6rem; + color: $gray-700; + max-width: 32em; + width: 100%; + border: solid 2px $gray-500; + box-shadow: inset 0 0 10px rgba(#000, 0.1); + + &:focus { + outline: none; + border: solid 2px $purple; + } + + text-overflow: ellipsis; + white-space: nowrap; + cursor: pointer; + display: inline-block; + overflow: hidden; + } + + .no-js .form__input--file + label { + display: none; + } + + .form__input--file:focus + label, + .form__input--file.has-focus + label { + outline: none; + border: solid 2px $purple; + + } + + .form__input--file + label * { + /* pointer-events: none; */ + /* in case of FastClick lib use */ + } + +.form__input--file + label .form__label--file { + background-color: $gray-600; + color: $white; + text-align: right; + float: right; + transition: background-color 0.2s; + transition: color 0.2s; +} + +.form__input--file:hover + label .form__label--file { + background-color: $gray-700; + color: rgba($white, 0.9); + transition: background-color 0.2s; + transition: color 0.2s; +} + +.form__input--file:focus + label .form__label--file { + background-color: $purple; + color: rgba($white, 0.9); + transition: background-color 0.2s; + transition: color 0.2s; +} + +.form__input--file + label .form__input--selected{ + text-align: left; +} + + .form__input--file + label { + color: $gray-700; + } + + .form__input--file + label { + border: solid 2px $gray-500; + box-shadow: inset 0 0 10px rgba(#000, 0.1); + transition: border-color 0.2s; + background-color: $white; + padding: 0; + } + + .form__input--file + label:hover { + border-color: $gray-700; + transition: border-color 0.2s; + } + + .form__input--file + label span, + .form__input--file + label strong { + padding: 0.7rem 1.25rem; + /* 10px 20px */ + } + + .form__input--file + label span { + min-height: 2em; + display: inline-block; + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; + vertical-align: top; + } + +/* chosen */ + +.chosen-container.error .chosen-single, +.chosen-container.error .chosen-single span { + line-height: inherit; +} + +.chosen-container-single .chosen-search { + display: block; +} + +.chosen-container-multi .chosen-choices li.search-field input[type="text"] { + height: auto; +} + +.chosen-container { + display: block !important; +} +.container-inline div.chosen-container div { + display: block; +} + +/* Error handling. */ +.chosen-container.error .chosen-choices, +.chosen-container.error .chosen-single { + border: 2px solid red; +} + +.filter-wrapper { + overflow: visible !important; +} + +.filter-wrapper:after { + content: ""; + display: block; + clear: both; +} + + + +@media (min-width: 578px) { + .form .form__block--twocol { + display: flex; + flex-wrap: wrap; + + > *[class^="form__block--"] { + flex-basis: 50%; + width: calc(50% - 15px); + flex-grow:1; + } + + > *[class^="form__block--"]:nth-child(odd) { + padding-right: 15px; + } + } +} + +@media (min-width: 768px) { + .form-wrapper { + padding: 0px 0px 30px 0px; + } + + main.form-wrapper { + padding: 75px 15px 30px 15px; + } +} \ No newline at end of file diff --git a/sass/base/_icon.scss b/sass/base/_icon.scss new file mode 100644 index 0000000..bb4aee1 --- /dev/null +++ b/sass/base/_icon.scss @@ -0,0 +1,8 @@ + +.icon.icon--cog { + background: url(../images/settings-icon.svg) no-repeat; + background-size: cover; + display: block; + height: 100%; + width: 100%; +} \ No newline at end of file diff --git a/sass/base/_list.scss b/sass/base/_list.scss new file mode 100644 index 0000000..869db81 --- /dev/null +++ b/sass/base/_list.scss @@ -0,0 +1,80 @@ + + +.list--file, .list--event { + padding: 0; + + .list__item--file, .list__item--event { + list-style: none; + background: transparent no-repeat left top; + background-size: 32px 38px; + padding-left: 45px; + + &.list__item--pdf { + background-image: url(../images/file--pdf.jpg); + } + &.list__item--url { + background-image: url(../images/file--url.jpg); + } + + p { + margin: 0 0 0.8rem 0; + } + } + + .list__item--event { + background-image: url(../images/article--event-icon.svg); + } +} + +.list--flex-space-evenly { + display: flex; + justify-content: center; +} + +.list--taxonomy { + padding: 0; + line-height: 2.3; + + .list__item--tag { + display: inline-block; + margin: 0.1rem 0.5rem 0.3rem 0; + + &::last-child { + margin-right: 0; + } + } + +} + +.list--social-share { + padding: 0; + + .list__item--social-media { + display: inline-block; + + margin-right: 1.8rem; + + &:last-child { + margin-right: 0rem; + } + } +} + +@media (min-width: 768px) { + + .list--social-share { + display: flex; + flex-wrap: wrap; + + + .list__item--social-media { + width: calc( 50% - 3.6rem); + flex-grow: 1; + padding: 0.5rem 0; + + &:last-child { + margin-right: 1.8rem; + } + } + } +} \ No newline at end of file diff --git a/sass/base/_tag.scss b/sass/base/_tag.scss new file mode 100644 index 0000000..7637416 --- /dev/null +++ b/sass/base/_tag.scss @@ -0,0 +1,63 @@ +a.tag, li.tag { + background-color: $gray-700; + color: $white; + border-radius: 2rem; + text-shadow: none; + box-shadow: none; + + font-size: 1.3rem; + border: solid 1px $gray-700; +} + +a.tag.tag--deletable, li.tag.tag--deletable { + padding-right: 0.2rem; +} + +a.tag { + padding: 0.45rem 0.6rem; +} + +a.tag:hover { + background-color: $gray-400; + color: $gray-900; +} + + +li.tag { + padding: 0.2rem 0.6rem; + line-height: 1.1; +} + +.tag button.close { + line-height: 2rem; + padding: 0.1rem; + border: none; + background-color: rgba($white,0.8); + box-shadow: 0 0 0 3px $gray-700 !important; + cursor: pointer; + color: $red; + border-radius: 10rem; + font-weight: 900; + height: 2rem; + min-width: 2rem; + margin-left: 0.6rem; + transition: all 0.2s; + text-align: center; + + span { + margin-top: -0.1rem; + display: block; + } + + &:hover { + background-color: rgba($white,1); + box-shadow: 0 0 0 3px rgba($red, 0.5) !important; + transition: all 0.2s; + } + + &:focus { + outline: none; + box-shadow: 0 0 0 3px $red !important; + transition: all 0.2s; + } +} diff --git a/sass/base/_utilities.scss b/sass/base/_utilities.scss new file mode 100644 index 0000000..a4b36ab --- /dev/null +++ b/sass/base/_utilities.scss @@ -0,0 +1,139 @@ +#skip-link, .skip-link { + position: fixed; + top: 1.5em; + left: 1.5em; + z-index: 1060; + background: $white; + pading: 15px; +} + +.visually-hidden { + position: absolute !important; + clip: rect(1px 1px 1px 1px); + clip: rect(1px,1px,1px,1px); + overflow: hidden; + height: 1px; +} + +.focusable:active, .focusable:focus { + position: static !important; + clip: auto; + overflow: visible; + height: auto; +} + +.responsive { + max-width: 100%; + height: auto; +} + +.no-display--sm { + position: absolute !important; + top: -9999px !important; + left: -9999px !important; +} + +/*.clearfix { + overflow: auto; +}*/ + +.clearfix:after { + content: "."; + display: block; + height: 0; + clear: both; + visibility: hidden; +} + +.sideinfo { + font-size: 0.7em; + opacity: 0.8; +} + +.text-danger, a span.text-danger { + color: $red; +} + +.text-center { + text-align: center; + max-width: 100%; +} + +.text-small { + font-size: 0.8em; + margin: 0.4em 0; +} + +.hr-text { + line-height: 1em; + position: relative; + outline: 0; + border: 0; + color: black; + text-align: center; + height: 1.5em; + opacity: 1; + width: 80%; + margin: 5rem auto 3rem auto; + + + &:before { + content: ''; + background: $gray-600; + position: absolute; + left: 0; + top: 50%; + width: 100%; + height: 1px; + z-index: 0; + } + &:after { + content: attr(data-content); + position: relative; + display: inline-block; + font-weight: 700; + width: 25px; + height: 25px; + padding: 0 3rem; + line-height: 3rem; + color: $gray-600; + background-color: #FFF; + z-index: 0; + //text-shadow: 0px 0px 10px #FFFFFF; + } +} + +.no-margins { + margin: 0 !important; +} + +.no-child-margins > * { + margin-top: 0 !important; + margin-bottom: 0 !important; +} + +.small-top-margin { + margin-top: 5px !important; +} + +.extra-space--top { + margin-top: 5rem !important; +} + +.extra-space--bottom { + margin-bottom: 3rem !important; +} + +@media (min-width: 768px) { + .no-display--sm { + position: inherit !important; + top: auto !important; + left: auto !important; + } + + .no-display--md { + position: absolute !important; + top: -9999px !important; + left: -9999px !important; + } +} diff --git a/sass/base/_variables.scss b/sass/base/_variables.scss index e69de29..6164fac 100644 --- a/sass/base/_variables.scss +++ b/sass/base/_variables.scss @@ -0,0 +1,140 @@ +// settings all the default variables if not defined in theme + +$white: #fff !default; +$gray-100: #f7f8fa !default; +$gray-200: #edeff5 !default; +$gray-300: #dfe0e5 !default; +$gray-400: #c6c7cc !default; +$gray-500: #a6a7ab !default; +$gray-600: #88898c !default; +$gray-700: #515155 !default; +$gray-800: #2e2e38 !default; +$gray-900: #05111E !default; +$black: #000 !default; + +$blue: #004494 !default; +$darkblue: #002a54 !default; +$indigo: #6610f2 !default; +$purple: #6f42c1 !default; +$pink: #e50053 !default; +$red: #e20021 !default; +$orange: #f9713d !default; +$yellow: #ffd617 !default; +$green: #46b200 !default; +$teal: #20c997 !default; +$cyan: #29abe2 !default; + +$colors: () ; +$colors: map-merge(( + blue: $blue, + darkblue: $darkblue, + indigo: $indigo, + purple: $purple, + pink: $pink, + red: $red, + orange: $orange, + yellow: $yellow, + green: $green, + teal: $teal, + cyan: $cyan, + white: $white, + gray: $gray-600, + gray-dark: $gray-800 +), $colors) !default; + +$theme-colors: (); +$theme-colors: map-merge(( + primary: $darkblue, + secondary: $gray-600, + success: $green, + info: $cyan, + warning: $orange, + error: $red, + light: $gray-200, + dark: $gray-600 +), $theme-colors) !default; + +$body__background-color: $white !default; + +// ================= VARIABLES ========================== // +// =============== FONT ========================== // + +$font-family-sans-serif: "Helvetica Neue", Helvetica, "Segoe UI", Arial, sans-serif !default; +$font-family-monospace: "SFMono-Regular", Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace !default; +$font-family-base: $font-family-sans-serif !default; + +$body__font: $font-family-sans-serif !default; +$headings__font: $font-family-sans-serif !default; + +$text-color: $gray-700 !default; + +// settings all the default variables if not defined in theme + +$white: #fff !default; +$gray-100: #f7f8fa !default; +$gray-200: #edeff5 !default; +$gray-300: #dfe0e5 !default; +$gray-400: #c6c7cc !default; +$gray-500: #a6a7ab !default; +$gray-600: #88898c !default; +$gray-700: #515155 !default; +$gray-800: #2e2e38 !default; +$gray-900: #05111E !default; +$black: #000 !default; + +$blue: #004494 !default; +$darkblue: #002a54 !default; +$indigo: #6610f2 !default; +$purple: #6f42c1 !default; +$pink: #e50053 !default; +$red: #e20021 !default; +$orange: #f9713d !default; +$yellow: #ffd617 !default; +$green: #46b200 !default; +$teal: #20c997 !default; +$cyan: #29abe2 !default; + +$colors: () ; +$colors: map-merge(( + blue: $blue, + darkblue: $darkblue, + indigo: $indigo, + purple: $purple, + pink: $pink, + red: $red, + orange: $orange, + yellow: $yellow, + green: $green, + teal: $teal, + cyan: $cyan, + white: $white, + gray: $gray-600, + gray-dark: $gray-800 +), $colors) !default; + +$theme-colors: (); +$theme-colors: map-merge(( + primary: $darkblue, + secondary: $gray-600, + success: $green, + info: $cyan, + warning: $orange, + error: $red, + light: $gray-200, + dark: $gray-600 +), $theme-colors) !default; + +$body__background-color: $white !default; + +// ================= VARIABLES ========================== // +// =============== FONT ========================== // + +$font-family-sans-serif: "Helvetica Neue", Helvetica, "Segoe UI", Arial, sans-serif !default; +$font-family-monospace: "SFMono-Regular", Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace !default; +$font-family-base: $font-family-sans-serif !default; + +$body__font: $font-family-sans-serif !default; +$headings__font: $font-family-sans-serif !default; + +$text-color: $gray-700 !default; +$line-height-base: 1.15 !default; \ No newline at end of file diff --git a/sass/components/_account-info.scss b/sass/components/_account-info.scss new file mode 100644 index 0000000..fb8d599 --- /dev/null +++ b/sass/components/_account-info.scss @@ -0,0 +1,296 @@ +.account-info { + background: $account-info__background no-repeat left top; + background-size: 100% 100%; + width: 23.4vw; + height: 26.5vw; + max-width: 125px; + max-height: 115px; + position: absolute; + right: 0; + margin-right: 0.3vw; + top: 0; + + + &.account-info--menu-only { + width: 80px; + height: 88px; + background-image: url(../images/account-info__background--idle.svg); + background-position: left top; + background-size: 100% 100%; + + .account-info__wrapper { + margin-top: 9px; + margin-left: 9px; + } + } + + &.account-info--notification { + width: 93px; + height: 85px; + background-image: url(../images/account-info__background--notification.svg); + background-position: left top; + background-size: 100% 100%; + + .account-info__wrapper { + margin-top: 11px; + margin-left: 27px; + } + } + + &.account-info--list { + // to do + } + + &.account-info--notification.account-info--list { + // to do + } + + a.account-info__wrapper { + display: block; + text-shadow: none; + box-shadow: none; + width: 54px; + border-radius: 48px; + margin-top: 11px; + margin-left: 27px; + padding-bottom: 10px; + color: $white; + + &:hover { + text-shadow: none; + box-shadow: none; + } + + img { + height: 100%; + width: 100%; + max-width: 48px; + border-radius: 90px; + } + + .account-info__trigger-icon { + float: right; + margin-top: -11px; + padding: 0 3px; + z-index: 5005; + position: relative; + } + } + + &__profile { + position: absolute; + right: 10px; + top: 56px; + height: 18px; + width: 18px; + + a { + text-shadow: none; + box-shadow: none; + display: block; + height: 100%; + } + } + + .account-info__menu { + margin-top: 15px; + + &.account-info__dropdown { + display: none; + position: absolute; + width: 200px; + margin-left: calc( 65px - 200px); + margin-right: 15px; + background-color: adjust-lightness($darkblue, -15); + margin-top: -5px; + border-radius: 5px; + z-index: 5004; + box-shadow: 0px 3px 3px 2px rgba($black, 0.3); + border: solid 1px rgba($white, 0.1); + } + + &.account-info__dropdown ul { + margin: 0; + list-style: none; + padding: 5px 15px; + + li { + border-bottom: solid 1px rgba($white, 0.5); + padding: 6px 0; + font-size: 1.6rem; + + &:first-child { + padding: 3px 0 6px; + } + + &:last-child { + border: none; + padding: 6px 0 3px; + } + + a{ + color: $white; + text-shadow: none; + box-shadow: none; + padding: 6px 0; + + &:hover { + color: $pink; + } + } + + svg, i { + margin-right: 15px; + } + } + + + } + + } + + .account-info__notifications { + height: 21px; + width: 21px; + margin-top: -50px; + margin-left: 7px; + position: absolute; + + a { + display: block; + height: 21px; + width: 21px; + background: $pink; + border-radius: 20px; + text-shadow: none; + box-shadow: none; + color: #FFF; + text-align: center; + vertical-align: middle; + font-size: 1.2rem; + line-height: 20px; + font-weight: 700; + } + } +} + +@media (min-width: 768px) { + .account-info { + //position: absolute !important; + position: relative !important; + //left: 15px !important; + z-index: 5000; + + a.account-info__wrapper { + width: auto; + height: auto; + text-shadow: none; + box-shadow: none; + color: $white; + margin: 0 !important; + display: flex; + align-items: center; + padding:0; + + &:hover { + text-shadow: none; + box-shadow: none; + background: rgba($white, 0.1); + border-top-left-radius: 5rem; + border-bottom-left-radius: 5rem; + border-top-right-radius: 0.5rem; + border-bottom-right-radius: 0.5rem; + color: $pink; + + img { + border: 2px solid rgba($pink, 1); + box-shadow: 0px 0px 0px 2px rgba(#FFF,0.1); + transition: all 0.2s; + } + } + + img { + display: block; + width: 100%; + max-width: 46px; + height: auto; + border: 2px solid rgba($black, 0); + box-shadow: 0px 0px 0px 2px rgba(#FFF,0.75); + margin-right: 15px; + } + + .account-info__trigger-icon { + padding: 0px 5px 0; + margin-top: -5px; + } + + } + + &.account-info--notification { + width: calc(33vw - 30px); + height: auto; + max-width: 300px; + //left: 15px !important; + margin-right: 0; + background-image: none; + position: relative; + } + + &.account-info--menu-only { + position: relative; + width: calc(33vw - 30px); + height: auto; + max-height: none; + max-width: 300px; + background-image: none; + } + + .account-info__menu { + + border-bottom: solid 1px rgba($white, 0.7); + + &.account-info__dropdown { + position: relative; + width: auto; + margin: 0; + background-color: transparent; + padding: 15px 0; + box-shadow: none; + border: none; + } + + &.account-info__dropdown ul { + display: block; + padding: 0; + margin: 0; + list-style: none; + } + + } + + + } + + +} + +@media (min-width: 992px) { + .account-info.account-info--notification, .account-info.account-info--menu-only { + width: calc(25vw - 30px); + max-width: 270px; + } +} + +@media (min-width: 1200px) { + .account-info { + //position: absolute !important; + z-index: 5000; + } + + .account-info.account-info--notification { + position: relative !important; + //transform: none !important; + //left: 15px !important; + //margin-left: -600px !important; + } +} \ No newline at end of file diff --git a/sass/components/_attachment.scss b/sass/components/_attachment.scss new file mode 100644 index 0000000..7dfac59 --- /dev/null +++ b/sass/components/_attachment.scss @@ -0,0 +1,4 @@ +.attachment { + + +} \ No newline at end of file diff --git a/sass/components/_buttons.scss b/sass/components/_buttons.scss new file mode 100644 index 0000000..ba7352a --- /dev/null +++ b/sass/components/_buttons.scss @@ -0,0 +1,175 @@ +@mixin button-bg($bg) { + + display: inline-block; + background: $bg; + background-image: none; + box-shadow: 0 0 0 4px rgba($bg, 0.5) !important; + text-shadow: none; + transition: all 0.2s ease; + transform: rotateX(0deg); + transform-style: preserve-3d; + + &:not([disabled]):hover { + background:darken($bg,8%); + transition: all 0.2s ease; + + } + &:active { + background:darken($bg,25%); + } +} + +input.btn{ + appearance: none; +} + +.btn-list--right { + width: 100%; + display: flex; + align-items: flex-end; + flex-direction: column; + justify-content: flex-end; + flex-wrap: nowrap; + align-content: flex-start; + + > .btn { + position: relative; + flex-grow: 1; + } + + .opposite { + align-self: flex-start; + order: -1; + flex-grow: 0; + position: absolute; + } +} +.btn-list--left { + text-align: left; +} +.btn-list--byside.btn-list--left { + float: left +} +.btn-list--byside.btn-list--right { + float: right; +} + +.btn[disabled], .btn.disabled { + opacity: 0.7 !important; + cursor: not-allowed !important; + color: rgba($gray-900, 0.5) !important; + transition: all 0.2s; +} + + +.btn-list--center { + text-align: center; + width: 80%; + max-width: 512px; + margin: auto; + + > a.btn, input.btn, button.btn { + &:not(.btn--large):last-child { + margin: 2.5rem auto 2rem auto; + } + display: block; + margin: 2.5rem auto 2rem auto; + } +} + +.btn.btn--large { + width: 100%; + max-width: 32em; + padding: 0.3rem 1rem; + font-size: 1.8rem; + + .icon { + height: 1.8rem; + margin-right : 1rem; + display: inline-block; + } +} + +a.btn, input.btn, button.btn { + color: $gray-900; + font-size: 1.3rem; + text-decoration:none; + padding: 0.1rem 1.5rem; + border-radius:300px; + text-align: center; + text-shadow: none !important; + min-width: 12rem; + font-weight: 700; + line-height: 1.3; + //margin-right: 15px; + margin: 15px 0; + border: none; + cursor: pointer; + + .icon { + height: 1.3rem; + margin-right : 1rem; + display: inline-block; + } + + &:not(.btn--large):last-child { + margin-bottom: 0px; + } + + &:not([disabled]):hover { + color: $white; + } + + &:focus { + box-shadow: 0 0 0 4px $purple !important; + outline: none; + } +} + +.btn--green { + @include button-bg($teal); +} + +.btn--blue { + @include button-bg($cyan); +} + +.btn--grey { + @include button-bg($gray-400); +} + +.btn-list { + margin-top: 3rem; +} + +.flip { + transform: rotateX(90deg); + transform-style: preserve-3d; + transition: all 0.2s; +} + +@media (min-width: 768px) { + + a.btn, input.btn, button.btn { + font-size: 1.6rem; + } + + .btn.btn--large { + padding: 0.4rem 0rem; + font-size: 2rem; + } + + .btn-list--center { + //width: 60%; + text-align: center; + + > a.btn, input.btn, button.btn { + &:not(.btn--large):last-child { + margin: 2.5rem auto 2rem auto; + } + display: block; + margin: 2.5rem auto 2rem auto; + } +} + +} \ No newline at end of file diff --git a/sass/components/_chosen.scss b/sass/components/_chosen.scss new file mode 100644 index 0000000..e062364 --- /dev/null +++ b/sass/components/_chosen.scss @@ -0,0 +1,511 @@ +/* @group Base */ +.chosen-container { + position: relative; + /*display: inline-block;*/ + width: 100% !important; + border-radius: 0; + display: block !important; + padding: 0.7rem 0.9rem; + font-size: 1.6rem; + line-height: 1.8; + color: #515155; + max-width: 32em; + width: 100%; + border: solid 2px #a6a7ab; + -webkit-box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.1); + box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.1); + -webkit-transition: border-color 0.2s; + transition: border-color 0.2s; + vertical-align: middle; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + transition: border-color 0.2s; +} + +.chosen-container:hover{ + border-color: #515155; + transition: border-color 0.2s; + } + +.chosen-container:focus:hover, .chosen-container:focus { + outline: none; + border: solid 2px #662D91; + transition: border-color 0.2s; + } + +.form-item label { + display: block; + font-weight: 600; + margin-bottom: 0.3em; +} + +.chosen-container * { + -webkit-box-sizing: border-box; + box-sizing: border-box; +} + +.chosen-container .chosen-drop { + position: absolute; + top: 100%; + z-index: 1010; + width: calc(100% + 0.4rem); + padding: 0.7rem 0.9rem 0.7rem 1.6rem; + margin-left: -1.1rem; + border: solid 2px #a6a7ab; + border-top: 0; + background: #fff; + clip: rect(0, 0, 0, 0); +} + +.chosen-container:hover .chosen-drop { + border-color: #515155; + transition: border-color 0.2s; +} + +.chosen-container.chosen-with-drop .chosen-drop { + clip: auto; +} + +.chosen-container a { + cursor: pointer; +} + +.chosen-container .search-choice .group-name, .chosen-container a.chosen-single .group-name { + margin-right: 4px; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + font-weight: normal; + color: #515155; + text-decoration: none; + text-shadow: none; + box-shadow: none; +} + +.chosen-container .search-choice .group-name:after, .chosen-container a.chosen-single .group-name:after { + content: ":"; + padding-left: 2px; + vertical-align: top; +} + +/* @end */ +/* @group Single Chosen */ +.chosen-container-single a.chosen-single { + position: relative; + display: block; + overflow: hidden; + padding: 0 0 0 8px; + height: 25px; + text-decoration: none; + white-space: nowrap; + line-height: 24px; + color: #515155; + text-decoration: none; + text-shadow: none; + box-shadow: none; + font-size: 1.6rem; + font-family: Raleway; +} + +.chosen-container-single .chosen-default { + color: #999; +} + +.chosen-container-single a.chosen-single span { + display: block; + overflow: hidden; + margin-right: 26px; + text-overflow: ellipsis; + white-space: nowrap; + color: #515155; + text-decoration: none; + text-shadow: none; + box-shadow: none; +} + +.chosen-container-single .chosen-single-with-deselect span { + margin-right: 38px; +} + +.chosen-container-single .chosen-single abbr { + position: absolute; + top: 6px; + right: 26px; + display: block; + width: 12px; + height: 12px; + background: url("chosen-sprite.png") -42px 1px no-repeat; + font-size: 1px; +} + +.chosen-container-single .chosen-single abbr:hover { + background-position: -42px -10px; +} + +.chosen-container-single.chosen-disabled .chosen-single abbr:hover { + background-position: -42px -10px; +} + +.chosen-container-single .chosen-single div { + position: absolute; + top: 0; + right: 0; + display: block; + width: 18px; + height: 100%; +} + +.chosen-container-single .chosen-single div b { + display: block; + width: 100%; + height: 100%; + background: url("chosen-sprite.png") no-repeat 0px 2px; +} + +.chosen-container-single .chosen-search { + position: relative; + z-index: 1010; + margin: 0; + padding: 3px 4px; + white-space: nowrap; +} + +.chosen-container-single .chosen-search input[type="text"] { + margin: 1px 0; + padding: 4px 20px 4px 5px; + width: 100%; + height: auto; + outline: 0; + border: 1px solid #aaa; + background: url("chosen-sprite.png") no-repeat 100% -20px; + font-size: 1em; + font-family: sans-serif; + line-height: normal; + border-radius: 0; + border: solid 2px #a6a7ab; +} + +.chosen-container-single .chosen-drop { + margin-top: -1px; + border-radius: 0 0 4px 4px; + background-clip: padding-box; +} + +.chosen-container-single.chosen-container-single-nosearch .chosen-search { + position: absolute; + clip: rect(0, 0, 0, 0); +} + +/* @end */ +/* @group Results */ +.chosen-container .chosen-results { + color: #444; + position: relative; + overflow-x: hidden; + overflow-y: auto; + margin: 0 4px 4px 0; + padding: 0 0 0 4px; + max-height: 240px; + -webkit-overflow-scrolling: touch; +} + +.chosen-container .chosen-results li { + display: none; + margin: 0; + padding: 5px 6px; + list-style: none; + line-height: 15px; + word-wrap: break-word; + -webkit-touch-callout: none; +} + +.chosen-container .chosen-results li.active-result { + display: list-item; + cursor: pointer; +} + +.chosen-container .chosen-results li.disabled-result { + display: list-item; + color: #ccc; + cursor: default; +} + +.chosen-container .chosen-results li.highlighted { + background-color: #662D91; + color: #fff; +} + +.chosen-container .chosen-results li.no-results { + color: #777; + display: list-item; + background: #f4f4f4; +} + +.chosen-container .chosen-results li.group-result { + display: list-item; + font-weight: bold; + cursor: default; +} + +.chosen-container .chosen-results li.group-option { + padding-left: 15px; +} + +.chosen-container .chosen-results li em { + font-style: normal; + text-decoration: underline; +} + +/* @end */ +/* @group Multi Chosen */ +.chosen-container-multi .chosen-choices { + position: relative; + overflow: hidden; + margin: 0; + padding: 0 5px; + width: 100%; + height: auto; + border: 1px solid #aaa; + background-color: #fff; + background-image: -webkit-gradient(linear, left top, left bottom, color-stop(1%, #eee), color-stop(15%, #fff)); + background-image: linear-gradient(#eee 1%, #fff 15%); + cursor: text; +} + +.chosen-container-multi .chosen-choices li { + float: left; + list-style: none; +} + +.chosen-container-multi .chosen-choices li.search-field { + margin: 0; + padding: 0; + white-space: nowrap; +} + +.chosen-container-multi .chosen-choices li.search-field input[type="text"] { + margin: 1px 0; + padding: 0; + height: 25px; + outline: 0; + border: 0 !important; + background: transparent !important; + -webkit-box-shadow: none; + box-shadow: none; + color: #999; + font-size: 100%; + font-family: sans-serif; + line-height: normal; + border-radius: 0; + width: 25px; +} + +.chosen-container-multi .chosen-choices li.search-choice { + position: relative; + margin: 3px 5px 3px 0; + padding: 3px 20px 3px 5px; + border: 1px solid #aaa; + max-width: 100%; + border-radius: 3px; + background-color: #eeeeee; + background-image: -webkit-gradient(linear, left top, left bottom, color-stop(20%, #f4f4f4), color-stop(50%, #f0f0f0), color-stop(52%, #e8e8e8), to(#eee)); + background-image: linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eee 100%); + background-size: 100% 19px; + background-repeat: repeat-x; + background-clip: padding-box; + -webkit-box-shadow: 0 0 2px #fff inset, 0 1px 0 rgba(0, 0, 0, 0.05); + box-shadow: 0 0 2px #fff inset, 0 1px 0 rgba(0, 0, 0, 0.05); + color: #333; + line-height: 13px; + cursor: default; +} + +.chosen-container-multi .chosen-choices li.search-choice span { + word-wrap: break-word; +} + +.chosen-container-multi .chosen-choices li.search-choice .search-choice-close { + position: absolute; + top: 4px; + right: 3px; + display: block; + width: 12px; + height: 12px; + background: url("chosen-sprite.png") -42px 1px no-repeat; + font-size: 1px; +} + +.chosen-container-multi .chosen-choices li.search-choice .search-choice-close:hover { + background-position: -42px -10px; +} + +.chosen-container-multi .chosen-choices li.search-choice-disabled { + padding-right: 5px; + border: 1px solid #ccc; + background-color: #e4e4e4; + background-image: -webkit-gradient(linear, left top, left bottom, color-stop(20%, #f4f4f4), color-stop(50%, #f0f0f0), color-stop(52%, #e8e8e8), to(#eee)); + background-image: linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eee 100%); + color: #666; +} + +.chosen-container-multi .chosen-choices li.search-choice-focus { + background: #d4d4d4; +} + +.chosen-container-multi .chosen-choices li.search-choice-focus .search-choice-close { + background-position: -42px -10px; +} + +.chosen-container-multi .chosen-results { + margin: 0; + padding: 0; +} + +.chosen-container-multi .chosen-drop .result-selected { + display: list-item; + color: #ccc; + cursor: default; +} + +/* @end */ +/* @group Active */ +.chosen-container-active a.chosen-single { + color: #515155; + text-decoration: none; + text-shadow: none; + box-shadow: none; +} + +.chosen-container-active.chosen-with-drop a.chosen-single { +} + +.chosen-container-active.chosen-with-drop a.chosen-single div { + border-left: none; + background: transparent; +} + +.chosen-container-active.chosen-with-drop a.chosen-single div b { + background-position: -18px 2px; +} + +.chosen-container-active .chosen-choices { + border: 1px solid #5897fb; + -webkit-box-shadow: 0 0 5px rgba(0, 0, 0, 0.3); + box-shadow: 0 0 5px rgba(0, 0, 0, 0.3); +} + +.chosen-container-active .chosen-choices li.search-field input[type="text"] { + color: #222 !important; +} + +/* @end */ +/* @group Disabled Support */ +.chosen-disabled { + opacity: 0.5 !important; + cursor: default; +} + +.chosen-disabled .chosen-single { + cursor: default; +} + +.chosen-disabled .chosen-choices .search-choice .search-choice-close { + cursor: default; +} + +/* @end */ +/* @group Right to Left */ +.chosen-rtl { + text-align: right; +} + +.chosen-rtl .chosen-single { + overflow: visible; + padding: 0 8px 0 0; +} + +.chosen-rtl .chosen-single span { + margin-right: 0; + margin-left: 26px; + direction: rtl; +} + +.chosen-rtl .chosen-single-with-deselect span { + margin-left: 38px; +} + +.chosen-rtl .chosen-single div { + right: auto; + left: 3px; +} + +.chosen-rtl .chosen-single abbr { + right: auto; + left: 26px; +} + +.chosen-rtl .chosen-choices li { + float: right; +} + +.chosen-rtl .chosen-choices li.search-field input[type="text"] { + direction: rtl; +} + +.chosen-rtl .chosen-choices li.search-choice { + margin: 3px 5px 3px 0; + padding: 3px 5px 3px 19px; +} + +.chosen-rtl .chosen-choices li.search-choice .search-choice-close { + right: auto; + left: 4px; +} + +.chosen-rtl.chosen-container-single .chosen-results { + margin: 0 0 4px 4px; + padding: 0 4px 0 0; +} + +.chosen-rtl .chosen-results li.group-option { + padding-right: 15px; + padding-left: 0; +} + +.chosen-rtl.chosen-container-active.chosen-with-drop .chosen-single div { + border-right: none; +} + +.chosen-rtl .chosen-search input[type="text"] { + padding: 4px 5px 4px 20px; + background: url("chosen-sprite.png") no-repeat -30px -20px; + direction: rtl; +} + +.chosen-rtl.chosen-container-single .chosen-single div b { + background-position: 6px 2px; +} + +.chosen-rtl.chosen-container-single.chosen-with-drop .chosen-single div b { + background-position: -12px 2px; +} + +/* @end */ +/* @group Retina compatibility */ +@media only screen and (-webkit-min-device-pixel-ratio: 1.5), only screen and (min-resolution: 144dpi), only screen and (min-resolution: 1.5dppx) { + .chosen-rtl .chosen-search input[type="text"], + .chosen-container-single .chosen-single abbr, + .chosen-container-single .chosen-single div b, + .chosen-container-single .chosen-search input[type="text"], + .chosen-container-multi .chosen-choices .search-choice .search-choice-close, + .chosen-container .chosen-results-scroll-down span, + .chosen-container .chosen-results-scroll-up span { + background-image: url("chosen-sprite@2x.png") !important; + background-size: 52px 37px !important; + background-repeat: no-repeat !important; + } +} + +/* @end */ diff --git a/sass/components/_comments.scss b/sass/components/_comments.scss new file mode 100644 index 0000000..b805174 --- /dev/null +++ b/sass/components/_comments.scss @@ -0,0 +1,97 @@ +.sub-section--comments { + + &__title { + padding-left: 3.6rem; + min-height: 3.7rem; + margin-bottom: 0.7rem; + background-image: url(../images/article--comment-icon.svg); + background-position: 0.5rem 0; + background-repeat: no-repeat; + background-size: 2.38rem 2.5rem; + } + + + .indented { + margin-left: 0rem !important; + border-left: solid 2px #CCC; + padding-left: 1.5rem; + } + + .indented > .indented > .indented > .indented { + margin-left: 0rem; + border-left: none; + padding-left: 0rem; + + } + + + + > ul { + padding: 0; + margin: 0; + } + + ul.links.inline { + margin: 0; + padding: 0; + padding-bottom: 15px; + + li { + display: inline-block; + } + } + + li { + list-style: none; + + .profile-shortinfo { + margin-top: 15px; + } + } + + .profile-shortinfo { + margin-bottom: -2rem; + + ~ p { + border-left: solid 2px #CCC; + padding-left: 1.5rem; + + + p { + border-left: solid 2px #CCC; + padding-left: 1.5rem; + margin-top: -1.6rem; + padding-top: 1.6rem; + } + } + } + + .comment-reply a { + padding-left: 2.6rem; + min-height: 3.7rem; + background-image: url(../images/article--comment-outline-icon.svg); + background-position: 0.5rem 0; + background-repeat: no-repeat; + background-size: 1.7rem 1.7rem; + text-decoration: none; + } + + .comment-edit a { + padding-left: 2.6rem; + min-height: 3.7rem; + background-image: url(../images/article--edit-outline-icon.svg); + background-position: 0.5rem 0; + background-repeat: no-repeat; + background-size: 1.7rem 1.7rem; + text-decoration: none; + } + + .comment-delete a { + padding-left: 2.6rem; + min-height: 3.7rem; + background-image: url(../images/article--delete-outline-icon.svg); + background-position: 0.5rem 0; + background-repeat: no-repeat; + background-size: 1.7rem 1.7rem; + text-decoration: none; + } +} \ No newline at end of file diff --git a/sass/components/_cta.scss b/sass/components/_cta.scss new file mode 100644 index 0000000..b480066 --- /dev/null +++ b/sass/components/_cta.scss @@ -0,0 +1,95 @@ +.cta--wrapper { + display: flex; + position: absolute; + top:0; + width: 100%; +} + +.cta--sidebar { + color: $white; + display: inline-block; + text-align: center; + width: 100%; + height: 3.5rem; + cursor: pointer; + + h3 { + margin-top: 0; + text-shadow: none; + color: #000; + } + + p { + margin: 0; + font-weight: 700; + text-shadow: none; + color: $black; + line-height: 3.5rem; + max-width: 100%; + + span { + font-weight: 400; + } + } +} + +.cta--join { + background: rgba($purple, 0.5); + &:hover{ + background: rgba($purple, 0.8); + transition: all 0.2s; + + p { + color: $white; + } + + } +} +.cta--signin { + background: rgba($purple, 0.3); + &:hover{ + background: rgba($purple, 0.8); + transition: all 0.2s; + + p { + color: $white; + } + } +} + +@media (min-width: 768px) { + + .cta--wrapper { + display: block; + position: relative; + top: auto; + } + + .cta--join, .cta--signin{ + + } + + .cta--sidebar { + position: relative; + height: auto; + border-radius: 15px; + background-color: rgba($white, 0.2); + margin: 0px; + margin-bottom: 15px; + padding: 15px; + text-align: left; + box-shadow: none; + + + h3, p { + color: $white; + } + + p { + margin-bottom: 0; + margin-top: 1.4rem; + line-height: 1.8; + } + } +} + diff --git a/sass/components/_files.scss b/sass/components/_files.scss new file mode 100644 index 0000000..98ec80f --- /dev/null +++ b/sass/components/_files.scss @@ -0,0 +1,52 @@ +/*.list--file, .list--event { + padding: 0; + + .list__item--file, .list__item--event { + list-style: none; + background: transparent no-repeat left top; + background-size: 32px 38px; + padding-left: 45px; + + &.list__item--pdf { + background-image: url(../images/file--pdf.jpg); + } + &.list__item--url { + background-image: url(../images/file--url.jpg); + } + + p { + margin: 0 0 0.8rem 0; + } + } + + .list__item--event { + background-image: url(../images/article--event-icon.svg); + } +}*/ + +.media--type-file { + margin-top: 16px; +} + +.field--type-file .file{ + // same as .list__item--file + list-style: none; + background: transparent no-repeat left top; + background-size: 32px 38px; + padding-left: 45px; + display: block; + min-height: 38px; + + &.file--mime-application-pdf { + background-image: url(../images/file--pdf.jpg); + } + &.file--mime-application-txt, &.file--mime-application-rtf, &.file--mime-application-doc, &.file--mime-application-docx, &.file--mime-application-odf, &.file--mime-application-odg, &.file--mime-application-odp, &.file--mime-application-ods, &.file--mime-application-odt, &.file--mime-application-fodt, &.file--mime-application-fodg, &.file--mime-application-apges { + background-image: url(../images/file--txt.jpg); + } + &.file--mime-application-ppt, &.file--mime-application-pptx, &.file--mime-application-key { + background-image: url(../images/file--ppt.ppt); + } + &.file--mime-application-xls, &.file--mime-application-xlsx, &.file--mime-application-numbers { + background-image: url(../images/file--xls.jpg); + } +} \ No newline at end of file diff --git a/sass/components/_footer.scss b/sass/components/_footer.scss new file mode 100644 index 0000000..0802cbb --- /dev/null +++ b/sass/components/_footer.scss @@ -0,0 +1,173 @@ +.general-footer--card { + position: relative !important; + bottom:auto; + z-index: auto; + width: 100%; + + ul.menu { + padding: 0; + margin: 1.5rem; + margin-top: 3rem; + + li { + display: inline-block; + + &::after { + content: " | "; + } + + &:last-child::after { + content: ""; + } + + a { + color: $gray-500; + text-shadow: 0 2px 0 $white, 0 3px 0 $white, 1px 2px 0 $white, -1px 2px 0 $white; + box-shadow: 0 1px 0 0 $purple; + transition: all .2s ease; + + &:hover { + color: $darkblue; + box-shadow: 0 1px 0 0 $purple; + transition: all .2s ease; + } + + } + } + } + } + +@media (min-width: 768px) { + .general-footer { + position: fixed !important; + bottom:10px; + z-index: 500; + width: 33%; + background: $gray-800; + + ul.menu { + padding: 0; + margin: 1.5rem; + margin-top: 3rem; + li { + display: inline-block; + + &::after { + content: " | "; + } + + a { + color: $gray-500; + text-shadow: 0 2px 0 $gray-800, 0 3px 0 $gray-800, 1px 2px 0 $gray-800, -1px 2px 0 $gray-800; + box-shadow: 0 1px 0 0 $gray-400; + transition: all .2s ease; + + &:hover { + color: $darkblue; + box-shadow: 0 1px 0 0 $body__background-color; + transition: all .2s ease; + } + + } + } + } + + &--card { + position: relative !important; + bottom:auto; + z-index: auto; + width: 100%; + + ul.menu { + padding: 0; + margin: 1.5rem; + margin-top: 3rem; + + li { + display: inline-block; + + &::after { + content: " | "; + } + + a { + color: $gray-500; + text-shadow: 0 2px 0 $white, 0 3px 0 $white, 1px 2px 0 $white, -1px 2px 0 $white; + box-shadow: 0 1px 0 0 $purple; + transition: all .2s ease; + + &:hover { + color: $darkblue; + box-shadow: 0 1px 0 0 $purple; + transition: all .2s ease; + } + + } + } + } + } + } +} + +@media (min-width: 992px) { + .general-footer { + width: 25%; + max-width: 300px; + position: relative !important; + top: auto !important; + left: auto !important; + right: auto !important; + bottom: auto; + height: 100vh; + float: right; + background-color: $gray-800; + background-image: url(../images/body-bckgrd--md.svg); + background-repeat: no-repeat; + background-position: 50% top; + background-attachment: fixed; + background-size: 100% 80px; + z-index: 4; + padding: 60px 15px; + padding-bottom: 500em; + margin-bottom: -500em; + + + > * { + position: fixed; + width: calc(25% - 30px); + max-width: 270px; + + } + + ul.menu { + position: fixed; + width: 100%; + bottom: 0; + } + + + &--card { + background-color: transparent; + bottom: auto; + z-index: auto; + width: 100%; + height: auto; + padding: 0; + margin-bottom: 0; + + > * { + position: auto; + width: 100%; + max-width: 100%; + } + + ul.menu { + position: relative; + width: 100%; + bottom: 0; + } + + } + + } +} \ No newline at end of file diff --git a/sass/components/_header.scss b/sass/components/_header.scss new file mode 100644 index 0000000..69dcbb5 --- /dev/null +++ b/sass/components/_header.scss @@ -0,0 +1,137 @@ +.new-item { + + position: fixed; + right: 0px; + bottom: 10px; + width: 21vw; + text-align: center; + + .create-new { + background: url(../images/new-item__button__background--sm.svg) no-repeat center center; + background-size: 42px 42px; + border: none; + height: 45px; + width: 45px; + font-size: 2.2rem; + } +} + +.pre-banner { + width: 100%; + max-width: 768px; + + background-image: url(../images/header-arch-only.svg); + background-repeat: no-repeat; + background-size: 100% 82px; + + position: fixed; + left: 50%; + transform: translateX(-50%); + min-height: 82px; + z-index: 1200; +} + +.logo-wrapper--index { + box-shadow: 0px 0px 82px 13px rgba(255,255,255,0.60); + background-color: rgba(#FFF, 0.40); + padding: 15px; + border-radius: 35px; + max-width: calc(32em + 30px); + margin: auto; + box-sizing: border-box; +} + +.background--talk{ + background-image: url(../images/homepage-illustration.jpg); + background-repeat: no-repeat; + background-size: 768px 400px; + background-size: contain; + background-position: center top; + min-height: calc(20vh + 82px); + background-color: #FFF; + padding-top: 120px; + text-align: center; + } + +.logo { + width: 100%; + max-width: 515px; + height: auto; + margin: auto; + } + +@media (min-width: 768px) { + .general-header { + position: fixed; + z-index: 5; + right: auto; + bottom: auto; + left:0; + top:0; + width: 33%; + background: $gray-800; + float: left; + height: 100vh; + padding: 90px 15px 130px; + overflow: auto; + } + + .new-item { + + position: relative; + right: auto; + bottom: auto; + width: 100%; + text-align: left; + + .create-new { + display: block; + background: rgba($white, 1); + background-size: auto; + border: none; + height: auto; + width: 100%; + font-size: 1.6rem; + line-height: 1.8; + padding: 0.5rem 0.8rem; + border-radius: 0.5rem; + border: solid 3px rgba($cyan, 1); + color: $gray-900; + text-shadow: none; + box-shadow: none; + transition: background-color 0.2s; + + svg { + margin-right: 1.5rem; + } + + &:hover { + box-shadow: none; + background: rgba($cyan, 1); + transition: background-color 0.2s; + color: $gray-900; + } + + &.active { + background: rgba($white, 0.1); + border-bottom: none; + } + } + } +} + +@media (min-width: 992px) { + .general-header { + position: fixed; + right: auto; + bottom: auto; + left: auto; + top:auto; + width: 25%; + max-width: 300px; + background: $gray-800; + float: left; + height: 100vh; + padding: 90px 15px 15px; + } +} \ No newline at end of file diff --git a/sass/components/_inpage-nav.scss b/sass/components/_inpage-nav.scss new file mode 100644 index 0000000..80f8785 --- /dev/null +++ b/sass/components/_inpage-nav.scss @@ -0,0 +1,82 @@ +.nav--tabs::-webkit-scrollbar{width:2px;height:2px;} +.nav--tabs::-webkit-scrollbar-button{width:2px;height:2px;} + +.inpage-nav { + border-bottom: solid 1px $gray-300; + + .nav--tabs { + + display: flex; + flex-direction: row; + flex-wrap: nowrap; + margin-bottom: 0; + padding:0 0 0 15px; + width:100%; + overflow-y: auto; + + li { + list-style: none; + display: block; + flex-basis: 100px; + flex: 0; + padding: 0 15px 2px; + + &:first-child { + padding-left: 0; + } + + a{ + display: block; + white-space: nowrap; + box-shadow: none; + box-shadow: none; + } + + a:after{ + content: ""; + display: block; + height: 0px; + background-color: $white; + margin-top: 8px; + padding: 0 9px; + margin-bottom: -4px; + transition: all 0.2s; + } + + a:hover::after { + margin-top: 2px; + height: 5px; + background-color: #a6a7ab; + transition: all 0.2s; + } + + a.active { + color: $text-color; + font-weight: 600; + } + + a.active::after { + margin-top: 2px; + height: 5px; + background-color: $purple; + transition: all 0.2s; + } + + + a.active:hover { + cursor: default; + } + } + + } +} + +.tab-content { + .tab-pane { + display: none; + } + + .tab-pane.active { + display: block; + } +} \ No newline at end of file diff --git a/sass/components/_logo-area.scss b/sass/components/_logo-area.scss new file mode 100644 index 0000000..e410ccb --- /dev/null +++ b/sass/components/_logo-area.scss @@ -0,0 +1,101 @@ +$logo__font-weight: bold !default; +$logo__color: $gray-900 !default; +$logo-area__background-image: none !default; +$logo-area__background-image--sm: $logo-area__background-image !default; +$logo-area__background-image--md: $logo-area__background-image !default; +$logo-area__background-image--lg: $logo-area__background-image !default; + +.logo-area { + background-image: linear-gradient($darkblue, $darkblue), $logo-area__background-image--sm; + background-repeat: no-repeat; + background-size: 100vw 25px, 100vw 10vh; + background-position: center 0, center 25px; + height: 100px; + width: 100vw; +} + +img.logo { + height: auto; +} + +img.logo-cover { + max-width: 100%; + height: auto; +} + +h1.logo--title { + margin: 0; + padding: 15px; + padding-bottom: 0; +} + +a.logo__link { + text-decoration: none; + text-shadow: none; + box-shadow: none; + display: block; + background-image: url(../images/logo_futurium_lab_negatif.svg); + background-size: contain; + background-repeat: no-repeat; + width: calc(70vw - 15px); + max-width: 300px; + height: 0; + padding-top: 13.6%; + //width: 70vw; + //max-width: 300px; + + span { + visibility: hidden; + } +} + +/*.logo--title { + font-weight: $logo__font-weight; + color: $logo__color; + margin: 0; + padding: 1.5vw; +}*/ + +// Medium devices (tablets, 768px and up) +@media (min-width: 768px) { + .logo-area { + position: fixed; + z-index: 6; + top:0; + // background image defined in the navigation for z-index issue + background-image: none; + width: 33%; + padding: 15px; + } + + + h1.logo--title { + margin: 0; + padding: 0px; +} + + a.logo__link { + width: 100%; + background-size: cover; + } + +} + +// Large devices (desktops, 992px and up) +@media (min-width: 992px) { + .logo-area { + width: 25%; + max-width: 300px; + } + + h1.logo--title { + max-width: 270px; +} + + +} + +// Extra large devices (large desktops, 1200px and up) +@media (min-width: 1200px) { + +} \ No newline at end of file diff --git a/sass/components/_navigation.scss b/sass/components/_navigation.scss new file mode 100644 index 0000000..4e14b5e --- /dev/null +++ b/sass/components/_navigation.scss @@ -0,0 +1,277 @@ +.navigation-menu { + position: fixed; + bottom: 0px; + background: url(../images/navigation-menu__background--sm.svg) no-repeat center bottom; + background-size: 100vw 27vw; + width: 100vw; + height: 25vw; + max-height: 100px; + z-index: 1000; + + &__list { + float: left; + display: flex; + padding:0; + justify-content: space-around; + width: 36vw; + height: 25vw; + max-height: 100px; + align-items: flex-end; + margin:0; + + li { + display: inline-block; + font-size: 2rem; + text-align: center; + line-height: 45px; + width: 16vw; + height: 12.5vw; + max-width: 54px; + max-height: 39px; + + &.active { + background: url(../images/navigation-menu__item--active__background--sm.svg) no-repeat center bottom; + background-size: cover; + border-bottom: solid 2px $pink; + + a { + color: scale-lightness($pink, 40); + } + } + + a { + color: $white; + text-shadow: none; + box-shadow: none; + } + } + } +} + +.not-signed .navigation-menu, .not-signed .new-item { + display: none; +} + + + +@media (max-width: 767.98px) and (orientation: landscape) { + .navigation-menu { + background-position: center bottom; + background-size: 100vw 23vh; + + &__list { + + padding:0; + margin: 0vw 1vw 0; + } + } +} + +@media (min-width: 768px) { + .not-signed .navigation-menu { + display: block; + } + + .navigation-menu { + position: relative; + bottom: auto; + background: none; + width: auto; + height: auto; + max-height: none; + padding-top: 15px; + + &__list { + width: auto; + height: auto; + max-height: none; + display: block; + float: none; + align-items: baseline; + margin:0; + + li { + display: block; + width: auto; + height: auto; + max-width: none; + max-height: none; + text-align: left; + font-size: 1.6rem; + line-height: inherit; + padding: 0.5rem 0.8rem; + border-radius: 0.5rem; + + svg { + margin-right: 1.5rem; + } + + a{ + color: $white; + text-shadow: none; + box-shadow: none; + padding: 6px 0; + box-shadow: none; + + &:hover { + color: $pink; + box-shadow: none; + + .badge { + background-color: $pink; + transition: all 0.2s; + } + } + } + + &.active { + background: rgba($white, 0.1); + border-bottom: none; + + .fas { + color: $pink; + } + + } + } + } + + &__list--feeds { + svg { + min-width: 2rem; + } + } + + &__list--tools { + position: fixed; + display: flex; + justify-content: flex-end; + top: 0px; + z-index: 10001; + background-image: $logo-area__background-image--md; + background-repeat: no-repeat; + background-size: 100% 80px; + background-position: left top; + height: 100px; + width: 100vw; + margin-left: -15px; + + &:empty { + background-image: url(../images/logo-area-bckgrd--md--no-action.svg); + } + + &.navigation-menu__list--single-tool { + background-image: url(../images/logo-area-bckgrd--md--one-action.svg); + } + + .navigation-menu__item { + display: inline-block; + padding:0; + margin-left: 0px; + + } + + .navigation-menu__item:only-child { + display: block; + margin: 0px 0% 0 -2.45% !important; + position: absolute; + height: 54px; + width: 54px; + } + + .navigation-menu__item:first-child { + display: block; + margin: 11px 0% 0 -8.75%; + position: absolute; + height: 54px; + width: 54px; + } + + .navigation-menu__item:nth-child(2) { + display: block; + margin: 0px 0% 0 -3.75%; + position: absolute; + height: 42px; + width: 42px; + } + + .navigation-menu__item--tool { + text-align: center; + display: inline-block; + background-image: url(../images/navigation-tools__btn__background.svg); + background-repeat: none; + color: $gray-900; + + &.navigation-menu__item--filter { + height: 54px; + width: 54px; + background-size: 54px 54px; + font-size: 2rem; + padding-top: 0.9rem; + svg { + margin: auto; + } + } + + &.navigation-menu__item--search { + background-size: 42px 42px; + display: inline-block; + line-height: 42px; + height: 42px; + width: 42px; + margin: 30px 20px 0 8px; + svg { + margin: auto; + } + } + } + + } + + .badge { + background: rgba($white, 0.8); + padding: 0rem 0.5rem 0.1rem; + border-radius: 0.5rem; + color: $gray-900; + text-align: center; + } + } +} + +@media (min-width: 992px) { + .navigation-menu { + &__list--tools { + background-size: 100% 80px; + background-position: left top; + height: 100px; + width: 75vw; + max-width: 900px; + margin-left: -15px; + + .navigation-menu__item:only-child { + display: block; + margin: 0px 0% 0 -18px !important; + position: absolute; + height: 54px; + width: 54px; + } + } + } + +} + +@media (min-width: 1100px) { + .navigation-menu { + &__list--tools { + .navigation-menu__item:only-child { + display: block; + margin: 0px 0% 0 -2.75% !important; + position: absolute; + height: 54px; + width: 54px; + } + } + + } + +} \ No newline at end of file diff --git a/sass/components/_newsfeed.scss b/sass/components/_newsfeed.scss new file mode 100644 index 0000000..08c6b2c --- /dev/null +++ b/sass/components/_newsfeed.scss @@ -0,0 +1,193 @@ +.newsfeed { + margin: 0 -15px; + + .view-empty { + padding: 0 15px; + } +} + +.sub-section { + border-top: solid 1px $gray-500; + margin-bottom: 16px; + } + +.field--type-video { + position: relative; + padding-bottom: 56.25%; + padding-top: 30px; height: 0; overflow: hidden; +} + +.field--type-video iframe, +.field--type-video object, +.field--type-video embed { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; +} + +.newsfeed__item { + h2 { + padding-left: 32px; + background: transparent left top no-repeat; + background-size: 22px 24px; + margin: 0 0 1.8rem 0; + + .newsfeed__item__state { + opacity: 0.8; + white-space: nowrap; + } + } + + h2 a { + font-family: 'Raleway'; + font-weight: 800; + color: $gray-800; + text-shadow: none; + box-shadow: none; + + &:hover { + color: $purple; + + text-shadow: 0 2px 0 $white, 0 3px 0 $white, 1px 2px 0 $white, -1px 2px 0 $white; + box-shadow: 0 1px 0 0 $purple; + } + } + + .field--name-field-ngf-cover-image, .field--name-field-media-image +{ + border-radius: 10px; + background: adjust-lightness($gray-800, -3%); + max-height: 320px; + display: flex; + justify-content: center; + align-items: center; + overflow:hidden; + + + + img.responsive { + max-height: 320px; + width: auto; + flex-shrink: 0; + display: block; + //border:1px solid rgba($gray-900, 0); + } + } + + .newsfeed__article-wrapper { + padding: 0 15px; + } + + } + + .newsfeed__legend-copyright { + font-size: 1.3rem; + margin-top: 0.1em; + color: $gray-900; + opacity: 0.8; + text-align: center; + max-width: 100%; + + span { + + &:after { + content: " | "; + display: inline; + } + + &:last-child:after { + content : ""; + } + + a{ + color: $gray-700 !important; + box-shadow: 0 1px 0 0 $gray-700 !important; + &:hover { + color: $purple !important; + box-shadow: 0 1px 0 0 $purple !important; + } + } + + } + } + + .newsfeed__item--ngf-discussion { + h2 { + background-image: url(../images/article--discussion-icon.svg); + background-size: 2.38rem 2.5rem; + } + } + .newsfeed__item--ngf-event { + h2 { + background-image: url(../images/article--event-icon.svg); + background-size: 2.38rem 2.5rem; + } + } + .newsfeed__item--unpublished { + h2 { + background-image: url(../images/article--draft-icon.svg); + background-size: 2.38rem 2.5rem; + } + } + .newsfeed__item--pinned { + h2 { + background-image: url(../images/article--pinned-icon.svg); + background-size: 2.38rem 2.5rem; + padding-left: 25px; + } + } + + .newsfeed__item--teaser { + background-image: url(../images/hr--wavy.svg); + background-repeat: no-repeat; + background-position: center top; + padding: 7.5rem 15px 4rem 15px; + background-size: 100% 40px; + + margin-top: -30px; + + &:first-child { + padding-top: 4rem; + background-image: none !important; + + margin-top: 0px; + } + } + + .newsfeed__item--pinned { + + color: $gray-900; + + background-image: url(../images/hr--wavy.svg), linear-gradient( scale-lightness($purple, 90%) 50%, scale-lightness($purple, 90%) 50%), ; + background-repeat: no-repeat, no-repeat; + background-position: center top, center bottom; + background-size: 100% 40px, 100% calc(100% - 28px); + + a, a:hover, h2 a, h2 a:hover { + text-shadow: 0 2px 0 scale-lightness($purple, 90%), 0 3px 0 scale-lightness($purple, 90%), 1px 2px 0 scale-lightness($purple, 90%), -1px 2px 0 scale-lightness($purple, 90%); + } + + &.newsfeed__item--teaser:first-child{ + background-color: scale-lightness($purple, 90%); + } + } + + .newsfeed__item--unpublished { + + color: $gray-900; + + background-image: url(../images/hr--wavy.svg), linear-gradient( scale-lightness($red, 90%) 50%, scale-lightness($red, 90%) 50%) ; + background-repeat: no-repeat, no-repeat; + background-position: center top, center bottom; + background-size: 100% 40px, 100% calc(100% - 28px); + + > * a, > * a:hover, h2 a, h2 a:hover { + text-shadow: 0 2px 0 scale-lightness($red, 90%), 0 3px 0 scale-lightness($red, 90%), 1px 2px 0 scale-lightness($red, 90%), -1px 2px 0 scale-lightness($red, 90%); + } + + &.newsfeed__item--teaser:first-child{ + background-color: scale-lightness($red, 90%); + } + } \ No newline at end of file diff --git a/sass/components/_post-info.scss b/sass/components/_post-info.scss new file mode 100644 index 0000000..edd898c --- /dev/null +++ b/sass/components/_post-info.scss @@ -0,0 +1,171 @@ +.profile-shortinfo { + margin-bottom: 2rem; + + &.profile-shortinfo--group { + + background: url(../images/profile-shortinfo--group__background.svg) no-repeat left top; + background-size: 5.7rem 8.3rem; + + .profile-shortinfo__ilustration { + width: 5.7rem; + height: 8.3rem; + margin-right: 1.7rem; + float: left; + } + + img.responsive.profile-shortinfo__picture--account { + margin-left: 0.5rem; + margin-top: 0.6rem; + } + + } + + &.profile-shortinfo--no-group { + + display: flex; + background: none; + + .profile-shortinfo__ilustration { + width: 5.6rem; + height: 5.6rem; + margin-right: 1.7rem; + flex: 0 0 5.6rem; + border-radius: 100px; + border: solid 5px rgba($pink, 0.5); + } + + .profile-shortinfo__action { + flex: 0 0 5.6rem; + } + + img.responsive.profile-shortinfo__picture--account { + margin-left: 0rem; + margin-top: 0rem; + } + + .profile-shortinfo__link.profile-shortinfo__link--account { + margin-left: 0rem; + margin-top: 0rem; + } + + } + + + + img.responsive.profile-shortinfo__picture--account { + width: 4.6rem; + height: 4.6rem; + border-radius: 100px; + display: block; + } + + img.responsive.profile-shortinfo__picture--group { + margin-left: 3rem; + margin-top: 5px; + width: 2rem; + height: 2rem; + border-radius: 100px; + display: block; + } + + .profile-shortinfo__link { + text-shadow: none; + box-shadow: none; + + img.responsive.profile-shortinfo__picture--account { + margin-left: 0; + margin-top: 0; + width: calc(4.6rem - 4px); + height: calc(4.6rem - 4px); + } + + img.responsive.profile-shortinfo__picture--group { + margin-left: 0; + margin-top: 0; + width: calc(2rem - 2px); + height: calc(2rem - 2px); + } + + &--group { + border-radius: 100px; + border: solid 1px $pink; + transition: border 0.2s; + display:block; + width: 2rem; + height: 2rem; + margin-left: 3rem; + margin-top: 5px; + border: solid 1px $pink; + transition: border 0.2s; + + &:hover, &:focus { + text-shadow: none; + box-shadow: none; + background-color: $purple; + outline: none; + border: solid 1px $purple; + transition: border 0.2s; + + img { + opacity: 0.6; + } + } + } + + &--account { + border-radius: 100px; + border: solid 2px $pink; + transition: border 0.2s; + display:block; + width: 4.6rem; + height: 4.6rem; + margin-left: 0.5rem; + margin-top: 0.6rem; + + &:hover, &:focus { + text-shadow: none; + box-shadow: none; + background-color: $purple; + outline: none; + border: solid 2px $purple; + transition: border 0.2s; + + img { + opacity: 0.6; + } + } + } + } + + &__details { + float: left; + width: calc(100% - 7.4rem); + + .profile-shortinfo__author { + + font-size: 2rem; + font-weight: 700; + color: $gray-700; + margin: 0; + padding: 0.2rem 0 0 0; + + .profile-shortinfo__account-link { + text-shadow: none; + box-shadow: none; + font-weight: 700; + color: $gray-700; + + &:hover { + color: $purple; + text-shadow: 0 2px 0 $body__background-color, 0 3px 0 $body__background-color, 1px 2px 0 $body__background-color, -1px 2px 0 $body__background-color; + box-shadow: 0 1px 0 0 $purple; + } + } + } + + .profile-shortinfo__metadata { + margin-top: 0.2rem; + line-height: 1.4; + } + } +} \ No newline at end of file diff --git a/sass/components/_profile-listing.scss b/sass/components/_profile-listing.scss new file mode 100644 index 0000000..093c5a5 --- /dev/null +++ b/sass/components/_profile-listing.scss @@ -0,0 +1,4 @@ +.profile-listing { + padding: 0 0px; + margin-top: 30px; +} \ No newline at end of file diff --git a/sass/components/_profile.scss b/sass/components/_profile.scss new file mode 100644 index 0000000..fef9589 --- /dev/null +++ b/sass/components/_profile.scss @@ -0,0 +1,250 @@ +header.profile { + text-align: center; + padding-left: 0px; + padding-right: 0px; + + ~ .inpage-nav { + margin-left: -15px; + margin-right: -15px; + } + + + ~ .newsfeed { + margin-left: -15px; + margin-right: -15px; + } + + + .profile__pic { + width: 100%; + height: 100%; + border-radius: 300px; + } + + a.profile__pic__link { + display: block; + width: 100px; + height: 100px; + margin: auto; + padding: 2px; + background-color: $pink; + border: solid 2px scale-lightness($pink, 40%); + border-radius: 300px; + text-shadow: none; + box-shadow: none; + text-decoration: none; + } + + a.profile__pic__link:hover { + text-shadow: none; + box-shadow: none; + background-color: $purple; + + .profile__pic { + opacity: 0.8; + } + } + + h2 { + margin-bottom: 0rem; + color: $gray-800; + + a { + font-weight: 600; + color: #26252B; + text-shadow: none; + box-shadow: none; + transition: all .2s ease; + + } + } + + h2 + h4 { + margin-top: 0.4rem; + + a { + color: $gray-700; + font-weight: 600; + } + } + + .profile__link--about{ + display: inline-block; + margin-bottom: 1.8rem; + font-size: 1.4rem; + line-height: 1.2; + transition: margin .2s; + + i, svg { + margin-left: 0rem; + transition: margin .2s; + } + + &:hover { + margin-left: 0.5rem; + transition: margin .2s; + } + + &:hover i, &:hover svg{ + margin-left: 0.5rem; + transition: margin .2s; + } + } + + .profile__link { + box-shadow: none; + &:hover{ + box-shadow: none; + } + } + + .profile__qrcode { + max-width: 100%; + height: auto; + } + + .profile__link--back{ + display: inline-block; + margin-bottom: 1.8rem; + font-size: 1.4rem; + line-height: 1.2; + transition: margin .2s; + + i, svg { + margin-right: 0rem; + transition: margin .2s; + } + + &:hover { + margin-right: 0.5rem; + transition: margin .2s; + } + + &:hover i, &:hover svg{ + margin-right: 0.5rem; + transition: margin .2s; + } + } + + .profile__meta, .profile__location { + padding:0; + margin:0; + } + + .profile__location { + margin-top: 1.8rem; + } + + .profile__location li::after { + display: inline-block; + content: "|"; + padding: 0 1rem; + } + + .profile__location li:last-child::after { + display: inline-block; + content: ""; + padding: 0 0rem; + } + + .profile__meta li, .profile__location li { + //margin-top: 0.6rem; + font-weight: bold; + line-height: 1.5; + color: $gray-700; + display: block; + list-style: none; + max-width: 100%; + } + + .profile__location li { + font-weight: 500; + display: inline-block; + } + + .profile__meta li::after, .profile__meta li::before { + display: inline-block; + content: "—"; + padding: 0 1.5rem; + } + + .profile__networks, .profile__actions{ + @extend .list--flex-space-evenly; + margin:0; + padding:1rem 0; + border-bottom: solid 1px $gray-300; + } + + .profile__networks.active { + border-bottom: none; + } + + .profile__networks li, .profile__actions li{ + list-style: none; + flex-grow: 1; + + a.active { + text-shadow: none; + box-shadow: none; + color: $gray-800; + font-weight: 600; + cursor: auto; + } + } + + + + .profile__actions a{ + text-align: center; + display: block; + text-shadow: none; + box-shadow: none; + border-radius: 5px; + transition: background-color 0.2s; + padding: 5px; + max-width: 90px; + margin: auto; + + &:hover { + background-color: $gray-200; + } + + &:before{ + content: ""; + display: block; + width: 38px; + height: 35px; + margin: auto; + background: transparent no-repeat; + background-size: 76px 35px; + } + + &.profile__actions--join:before{ + background-image: url(../images/profile--action__join-sprite.svg); + background-position: 0 0; + } + &.profile__actions--leave:before{ + background-image: url(../images/profile--action__join-sprite.svg); + background-position: -38px 0; + } + &.profile__actions--follow:before{ + background-image: url(../images/profile--action__follow-sprite.svg); + background-position: 0 0; + } + &.profile__actions--unfollow:before{ + background-image: url(../images/profile--action__follow-sprite.svg); + background-position: -38px 0; + } + &.profile__actions--contact:before{ + background-image: url(../images/profile--action__contact-sprite.svg); + background-position: 0 0; + } + &.profile__actions--add2list:before{ + background-image: url(../images/profile--action__add2list-sprite.svg); + background-position: 0 0; + } + + + } + + } diff --git a/sass/components/_related-content.scss b/sass/components/_related-content.scss new file mode 100644 index 0000000..5f38d0c --- /dev/null +++ b/sass/components/_related-content.scss @@ -0,0 +1,15 @@ +.sub-section--related { + &__title { + padding-left: 3.6rem; + min-height: 3.7rem; + margin-bottom: 0.7rem; + } + + &__title--discussion { + background-image: url(../images/follow-up__background.svg), url(../images/article--discussion-icon.svg); + background-position: 0rem 1.1rem, 0.5rem 0; + background-repeat: no-repeat, no-repeat; + background-size: 2.7rem 2.3rem, 2.38rem 2.5rem; + + } +} \ No newline at end of file diff --git a/sass/components/_related-events.scss b/sass/components/_related-events.scss new file mode 100644 index 0000000..59c685f --- /dev/null +++ b/sass/components/_related-events.scss @@ -0,0 +1,10 @@ +.related-events { + h3 { + margin-bottom: 1rem; + + a { + font-weight: 700; + font-size: 1.6rem; + } + } +} \ No newline at end of file diff --git a/sass/components/_social-share.scss b/sass/components/_social-share.scss new file mode 100644 index 0000000..05417c2 --- /dev/null +++ b/sass/components/_social-share.scss @@ -0,0 +1,81 @@ +a.share { + background: $gray-700 url(../images/share-icons.svg) no-repeat; + display: inline-block; + width: 4rem; + height: 4rem; + border-radius: 4rem; + text-shadow: none; + box-shadow: none; + + + &--facebook { + background-position: 0 0; + } + &--twitter { + background-position: -8rem 0; + } + &--linkedin { + background-position: -4rem 0; + } + &--googleplus { + background-position: -12rem 0; + } + &--email { + background-position: -16rem 0; + } +} + +@media (min-width: 768px) { + + a.share { + width: auto; + padding-left: 0rem; + background: none; + border-radius: 0; + text-decoration: none; + box-shadow: none; + height: auto; + line-height: 2rem; + display: flex; + + span { + display: inline-block; + line-height: 2.5rem; + } + + &:before { + content: ""; + background: $gray-700 url(../images/share-icons.svg) no-repeat; + display: inline-block; + width: 2rem; + height: 2rem; + border-radius: 2rem; + box-shadow: none; + background-size: 10rem 2rem; + margin-right: 0.5rem; + margin-top: 2px; + flex-shrink: 0; + } + + &:hover::before { + background-color: $purple; + trnasition: background-color 0.2s; + } + + &--facebook:before { + background-position: 0 0; + } + &--twitter:before { + background-position: -4rem 0; + } + &--linkedin:before { + background-position: -2rem 0; + } + &--googleplus:before { + background-position: -6rem 0; + } + &--email:before { + background-position: -8rem 0; + } + } +} \ No newline at end of file diff --git a/sass/style.scss b/sass/style.scss index 7b3e270..603c692 100644 --- a/sass/style.scss +++ b/sass/style.scss @@ -3,7 +3,9 @@ @import "modularscale"; @import "breakpoint"; +// Import theme variables +@import "theme/**/*.scss"; + // Import sass partials -//@import "base/*/*.scss"; -//@import "components/*/*.scss"; -@import "patterns/*/*.scss"; \ No newline at end of file +@import "base/**/*.scss"; +@import "components/**/*.scss"; \ No newline at end of file diff --git a/sass/theme/_funkywave.scss b/sass/theme/_funkywave.scss new file mode 100644 index 0000000..3e3fddf --- /dev/null +++ b/sass/theme/_funkywave.scss @@ -0,0 +1,73 @@ +// =============== COLORS ========================== // + +$white: #FFFFFF ; +$gray-100: #f7f8fa ; +$gray-200: #edeff5 ; +$gray-300: #dfe0e5 ; +$gray-400: #c6c7cc ; +$gray-500: #a6a7ab ; +$gray-600: #88898c ; +$gray-700: #515155 ; +$gray-800: #26252B ; +$gray-900: #05111E ; +$black: #000 ; + +$blue: #186aff; +$darkblue: #1a3773; +$indigo: #6610f2; +$purple: #662D91; +$pink: #ff397f; +$red: #ff3939; +$orange: #f9713d; +$yellow: #ffea00; +$green: #46b200; +$teal: #1eb49c; +$cyan: #00c9ff; + +$colors: () ; +$colors: map-merge(( + blue: $blue, + darkblue: $darkblue, + indigo: $indigo, + purple: $purple, + pink: $pink, + red: $red, + orange: $orange, + yellow: $yellow, + green: $green, + teal: $teal, + cyan: $cyan, + white: $white, + gray: $gray-600, + gray-dark: $gray-800 +), $colors); + +$theme-colors: (); +$theme-colors: map-merge(( + primary: $cyan, + secondary: $gray-600, + success: $green, + info: $cyan, + warning: $orange, + error: $red, + light: $gray-200, + dark: $gray-600, + reactive: $purple +), $theme-colors); + +// ================= VARIABLES ====================== // +// =================== FONT ========================== // + +$body__font: 'Raleway'; +$headings__font: 'Raleway'; + +// ================== COMPONENTS =========================== // +// ------------------ logo-area ---------------------------- // + +$text__font-wight : 500; +$logo__font-weight: 900; +$logo__color: $white; +$logo-area__background-image--sm: url('../images/logo-area-bckgrd--sm.svg'); +$logo-area__background-image--md: url('../images/logo-area-bckgrd--md.svg'); +$logo-area__background-image--lg: url('../images/logo-area-bckgrd.svg'); +$account-info__background: url('../images/account-info__background--idle.svg'); diff --git a/sass/theme/images/account-info__background--idle.svg b/sass/theme/images/account-info__background--idle.svg new file mode 100644 index 0000000..3dd4258 --- /dev/null +++ b/sass/theme/images/account-info__background--idle.svg @@ -0,0 +1,195 @@ +<<<<<<< HEAD + + + + + + +======= + + + + + + +>>>>>>> d8775734bd7c5fc91f87c18da270f277c10a52e0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +======= +cT3syv36WLSLvf5fgAEAbcPpsyNqBSoAAAAASUVORK5CYII=" transform="matrix(1 0 0 1 -3.7852 -1.6924)"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +>>>>>>> d8775734bd7c5fc91f87c18da270f277c10a52e0 diff --git a/sass/theme/images/logo-area-bckgrd--sm.svg b/sass/theme/images/logo-area-bckgrd--sm.svg new file mode 100644 index 0000000..a6257da --- /dev/null +++ b/sass/theme/images/logo-area-bckgrd--sm.svg @@ -0,0 +1,59 @@ +<<<<<<< HEAD + + + + + + + + + + + + + + + + + + + + + + + + + +======= + + + + + + + + + + + + + + + + + + + + + + + + + +>>>>>>> d8775734bd7c5fc91f87c18da270f277c10a52e0 diff --git a/sass/theme/images/navigation-menu__background--sm.svg b/sass/theme/images/navigation-menu__background--sm.svg new file mode 100644 index 0000000..d894081 --- /dev/null +++ b/sass/theme/images/navigation-menu__background--sm.svg @@ -0,0 +1,31 @@ +<<<<<<< HEAD + + + + + + + + + + + +======= + + + + + + + + + + + +>>>>>>> d8775734bd7c5fc91f87c18da270f277c10a52e0 diff --git a/sass/theme/images/navigation-menu__item--active__background--sm.svg b/sass/theme/images/navigation-menu__item--active__background--sm.svg new file mode 100644 index 0000000..bbf2c2a --- /dev/null +++ b/sass/theme/images/navigation-menu__item--active__background--sm.svg @@ -0,0 +1,83 @@ +<<<<<<< HEAD + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +======= + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +>>>>>>> d8775734bd7c5fc91f87c18da270f277c10a52e0 diff --git a/sass/theme/images/new-item__button__background--sm.svg b/sass/theme/images/new-item__button__background--sm.svg new file mode 100644 index 0000000..6b7dfc7 --- /dev/null +++ b/sass/theme/images/new-item__button__background--sm.svg @@ -0,0 +1,83 @@ +<<<<<<< HEAD + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +======= + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +>>>>>>> d8775734bd7c5fc91f87c18da270f277c10a52e0 diff --git a/sass/theme/images/post-info--group__background.svg b/sass/theme/images/post-info--group__background.svg new file mode 100644 index 0000000..eb8d420 --- /dev/null +++ b/sass/theme/images/post-info--group__background.svg @@ -0,0 +1,85 @@ +<<<<<<< HEAD + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +======= + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +>>>>>>> d8775734bd7c5fc91f87c18da270f277c10a52e0 From 943a98ea1f68b6e124528ce6187c205c4fb4b057 Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Fri, 13 Jul 2018 13:46:36 +0200 Subject: [PATCH 118/200] NGF-337: moved sass from fw-templates to funkywave theme --- css/style.css | 109 ++++++++++++------------- sass/base/_form.scss | 152 +++++++++++++++++++++++------------ sass/components/_chosen.scss | 7 +- 3 files changed, 157 insertions(+), 111 deletions(-) diff --git a/css/style.css b/css/style.css index 7a885c3..16d80f6 100644 --- a/css/style.css +++ b/css/style.css @@ -73,8 +73,7 @@ p + h2, p + h3, p + h4 { margin-top: 1.8em; } -a:not(.toolbar-item), -a:not(.ui-menu-item-wrapper) { +a:not(.toolbar-item) { color: #662D91; -webkit-transition: all 0.2s; transition: all 0.2s; @@ -87,10 +86,7 @@ a:not(.ui-menu-item-wrapper) { transition: all .2s ease; } - - -a:not(.toolbar-item):hover, -a:not(.ui-menu-item-wrapper):hover { +a:not(.toolbar-item):hover { color: #003ba7; -webkit-box-shadow: 0 1px 0 0 #FFFFFF; box-shadow: 0 1px 0 0 #FFFFFF; @@ -574,6 +570,48 @@ form .form__block--toggle .label-text, .form .form__block--toggle .label-text { clear: both; } +ul.ui-menu { + width: 100%; + max-width: 32em; + z-index: 2000; + margin: 0; + padding: 0; +} + +ul.ui-menu li.ui-menu-item { + list-style: none; + width: 100%; + max-width: none; +} + +ul.ui-menu li.ui-menu-item a { + text-shadow: none; + x-webkit-box-shadow: none; + -webkit-box-shadow: none; + box-shadow: none; + padding: 0.5rem 0.7rem; +} + +ul.ui-menu a.ui-menu-item-wrapper { + display: block; +} + +ul.ui-menu .ui-state-focus, + ul.ui-menu .ui-state-active { + margin: 0; +} + +ul.ui-menu .ui-menu-item-wrapper.ui-state-active { + background: #662D91 !important; + border: none; + color: #fff; +} + +.form-item-city, #city-wrapper { + margin: 0; + padding: 0; +} + @media (min-width: 578px) { .form .form__block--twocol { display: -webkit-box; @@ -1544,6 +1582,8 @@ a.btn:focus, input.btn:focus, button.btn:focus { box-shadow: none; font-size: 1.6rem; font-family: Raleway; + background: none; + border: none; } .chosen-container-single .chosen-default { @@ -1671,6 +1711,7 @@ a.btn:focus, input.btn:focus, button.btn:focus { .chosen-container .chosen-results li.highlighted { background-color: #662D91; color: #fff; + background-image: none; } .chosen-container .chosen-results li.no-results { @@ -1811,6 +1852,11 @@ a.btn:focus, input.btn:focus, button.btn:focus { box-shadow: none; } +.chosen-container-active.chosen-with-drop a.chosen-single { + background: none; + border: none; +} + .chosen-container-active.chosen-with-drop a.chosen-single div { border-left: none; background: transparent; @@ -3675,54 +3721,3 @@ a.share--email { } /*# sourceMappingURL=style.css.map */ - -ul.ui-menu { - width: 100%; - max-width: 32em; - z-index: 2000; - margin: 0; - padding: 0; -} - -ul.ui-menu li.ui-menu-item { - list-style: none; - width: 100%; - max-width: none; -} - -ul.ui-menu li.ui-menu-item a { - text-shadow: none; - x-webkit-box-shadow: none; - box-shadow: none; - padding: 0.5rem 0.7rem; -} - -ul.ui-menu a.ui-menu-item-wrapper { - display: block; -} - -ul.ui-menu .ui-state-focus, -ul.ui-menu .ui-state-active { - margin: 0; -} - -li.ui-menu-item .ui-menu-item-wrapper.ui-state-active { - background: #662D91 !important; - border: none; - color: #fff; -} - - - -.form-item-city, #city-wrapper { - margin: 0; - padding: 0; -} - -/* Remove chosen background */ - -.chosen-container .chosen-results li.highlighted { - background-image: none; -} - - diff --git a/sass/base/_form.scss b/sass/base/_form.scss index 4ada638..67f1392 100644 --- a/sass/base/_form.scss +++ b/sass/base/_form.scss @@ -7,7 +7,7 @@ } form, .form { - + &__block { margin: 1.5rem 0 1rem; } @@ -18,14 +18,14 @@ form, .form { text-align: left; margin-bottom: 0.3em; } - + textarea { font-family: $body__font; min-height: 6rem; } - + input[type=text], input[type=email], input[type=password],textarea { - padding: 0.7rem 0.9rem; + padding: 0.7rem 0.9rem; font-size: 1.6rem; line-height: 1.8; color: $gray-700; @@ -35,54 +35,54 @@ form, .form { box-shadow: inset 0 0 10px rgba(#000, 0.1); transition: border-color 0.2s; font-family: $body__font; - + &:focus:hover, &:focus { outline: none; border: solid 2px $purple; transition: border-color 0.2s; } - + &:hover{ border-color: $gray-700; transition: border-color 0.2s; } - + &::placeholder { opacity: 0.4; } - + &.error { border: solid 2px $red; transition: border-color 0.2s; } - + & + p { margin-top: 0.2em; transition: border-color 0.2s; } - - - + + + } - - - + + + .form__block--twocol { display: flex; flex-wrap: wrap; - + > *[class^="form__block--"] { - flex-basis: 100%; + flex-basis: 100%; width: 100%;; flex-grow:1; padding: 0rem 0px; margin: 0.8rem 0; } } - + .form__block--toggle, .form__block--checkbox { - + input[type=checkbox] { box-sizing: border-box; padding: 0; @@ -94,15 +94,15 @@ form, .form { margin-left: -20px; } } - + .form__block--submit { margin: 2.5rem 0 2rem; } - + .form__block--checkbox { - + margin: 1.5rem 0 1rem; - + input[type=checkbox]+label .onoffswitch-inner{ display: inline-block; height: 2.2rem; @@ -110,21 +110,21 @@ form, .form { background: $white; margin: 3px 20px 0 0; transition: 0.2s margin; - border: solid 2px $gray-500; + border: solid 2px $gray-500; position: absolute; } - + .label-text { margin-left: 3.5rem; display: inline-block; line-height: 1.5; } - + input[type=checkbox]:focus+label .onoffswitch-inner{ box-shadow: 0px 0px 0px 1px $purple; - border: solid 2px $purple !important; + border: solid 2px $purple !important; } - + input[type=checkbox]:checked+label .onoffswitch-inner{ display: inline-block; height: 2.2rem; @@ -132,9 +132,9 @@ form, .form { background: $teal; margin: 3px 20px 0 0; transition: 0.2s margin; - border: solid 2px $gray-500; + border: solid 2px $gray-500; position: absolute; - + &:before, &:after { position: absolute; content: ''; @@ -142,7 +142,7 @@ form, .form { height: 2.7rem; background-color: rgba($gray-900, 0.8); } - + &:before { transform: rotate(45deg); margin-left: 7px; @@ -155,10 +155,10 @@ form, .form { } } } - + .form__block--toggle { margin: 1.5rem 0 1rem; - + input[type=checkbox]+label:before{ background-color: #FFF; background-size: 40rem 20rem; @@ -174,27 +174,27 @@ form, .form { box-shadow: inset 0 0 10px rgba(#000, 0.2); position: absolute; } - + input[type=checkbox]:focus+label:before{ box-shadow: 0px 0px 0px 1px $purple; - border: solid 2px $purple !important; + border: solid 2px $purple !important; } - + input[type=checkbox]:checked+label:before{ background-color: $teal; transition: background-color .2s; border: solid 2px rgba(#000, 0.2); } - + input[type=checkbox]:checked+label .onoffswitch-inner{ display: inline-block; background: $gray-200; margin: 3px 0 0 20px; - border: solid 2px $gray-500; + border: solid 2px $gray-500; height: 2.2rem; width: 2.2rem; } - + input[type=checkbox]+label .onoffswitch-inner{ display: inline-block; height: 2.2rem; @@ -203,14 +203,14 @@ form, .form { margin: 3px 20px 0 0; transition: 0.2s margin; border-radius: 1rem; - border: solid 2px $gray-500; + border: solid 2px $gray-500; position: absolute; } - + .label-text { margin-left: 5rem; } - + } } @@ -224,15 +224,15 @@ form, .form { } .form__input--file + label { - - padding: 0.7rem 0.9rem; + + padding: 0.7rem 0.9rem; font-size: 1.6rem; color: $gray-700; max-width: 32em; width: 100%; border: solid 2px $gray-500; box-shadow: inset 0 0 10px rgba(#000, 0.1); - + &:focus { outline: none; border: solid 2px $purple; @@ -252,7 +252,7 @@ form, .form { .form__input--file:focus + label, .form__input--file.has-focus + label { outline: none; - border: solid 2px $purple; + border: solid 2px $purple; } @@ -287,7 +287,7 @@ form, .form { .form__input--file + label .form__input--selected{ text-align: left; } - + .form__input--file + label { color: $gray-700; } @@ -297,7 +297,7 @@ form, .form { box-shadow: inset 0 0 10px rgba(#000, 0.1); transition: border-color 0.2s; background-color: $white; - padding: 0; + padding: 0; } .form__input--file + label:hover { @@ -358,19 +358,65 @@ form, .form { clear: both; } +/* Registration (city) Autocomplete */ + +ul.ui-menu { + width: 100%; + max-width: 32em; + z-index: 2000; + margin: 0; + padding: 0; + + li.ui-menu-item { + list-style: none; + width: 100%; + max-width: none; + } + + li.ui-menu-item a { + text-shadow: none; + x-webkit-box-shadow: none; + box-shadow: none; + padding: 0.5rem 0.7rem; + } + + a.ui-menu-item-wrapper { + display: block; + } + + .ui-state-focus, + .ui-state-active { + margin: 0; + } + + .ui-menu-item-wrapper.ui-state-active { + background: #662D91 !important; + border: none; + color: #fff; + } + +} + +.form-item-city, #city-wrapper { + margin: 0; + padding: 0; +} + +/* End Registration (city) Autocomplete */ + @media (min-width: 578px) { .form .form__block--twocol { display: flex; flex-wrap: wrap; - + > *[class^="form__block--"] { - flex-basis: 50%; + flex-basis: 50%; width: calc(50% - 15px); flex-grow:1; } - + > *[class^="form__block--"]:nth-child(odd) { padding-right: 15px; } @@ -381,8 +427,8 @@ form, .form { .form-wrapper { padding: 0px 0px 30px 0px; } - + main.form-wrapper { padding: 75px 15px 30px 15px; } -} \ No newline at end of file +} diff --git a/sass/components/_chosen.scss b/sass/components/_chosen.scss index e062364..878cf32 100644 --- a/sass/components/_chosen.scss +++ b/sass/components/_chosen.scss @@ -51,7 +51,7 @@ top: 100%; z-index: 1010; width: calc(100% + 0.4rem); - padding: 0.7rem 0.9rem 0.7rem 1.6rem; + padding: 0.7rem 0.9rem 0.7rem 1.6rem; margin-left: -1.1rem; border: solid 2px #a6a7ab; border-top: 0; @@ -107,6 +107,8 @@ box-shadow: none; font-size: 1.6rem; font-family: Raleway; + background: none; + border: none; } .chosen-container-single .chosen-default { @@ -235,6 +237,7 @@ .chosen-container .chosen-results li.highlighted { background-color: #662D91; color: #fff; + background-image: none } .chosen-container .chosen-results li.no-results { @@ -379,6 +382,8 @@ } .chosen-container-active.chosen-with-drop a.chosen-single { + background: none; + border: none; } .chosen-container-active.chosen-with-drop a.chosen-single div { From 077971ca5de6fa66fa39db79320d761b63a1d207 Mon Sep 17 00:00:00 2001 From: iconodule Date: Mon, 16 Jul 2018 10:57:22 +0200 Subject: [PATCH 119/200] js update --- js/script.js | 186 +++++++++++++++++++++++++-------------------------- 1 file changed, 92 insertions(+), 94 deletions(-) diff --git a/js/script.js b/js/script.js index effbab3..d5dadd3 100644 --- a/js/script.js +++ b/js/script.js @@ -1,99 +1,97 @@ -$(document).ready(function() { - - $(".disabled").click(function (e) { - e.preventDefault(); - }) - - $("a.account-info__wrapper").click(function(e) { - e.preventDefault(); - - var $menu = $(".account-info__dropdown"); - - /*if ($menu.hasClass("open")) { - $menu.removeClass("open"); - } else { - $menu.addClass("open"); - }*/ - - $menu.toggle(200); - }) - - function addInterest ($btn) { - - var $interestedBtn = $btn; - var $cancelBtn = $('
    '); - var marginGap = 0; - - $interestedBtn.off("click"); - $interestedBtn.toggleClass("flip"); - $interestedBtn.blur(); - setTimeout(function() { - $interestedBtn.prepend(' '); - //$interestedBtn.css({transform: "rotateX(0deg)"}); - $interestedBtn.removeClass("flip"); - $interestedBtn.prop("disabled", true); - $interestedBtn.addClass("disabled"); - - $(".disabled").click(function (e) { +(function ($) { + // + $(document).ready(function() { + + $(".disabled").click(function (e) { + e.preventDefault(); + }) + + $("a.account-info__wrapper").click(function(e) { + e.preventDefault(); + + var $menu = $(".account-info__dropdown"); + + $menu.toggle(200); + }) + + function addInterest ($btn) { + + var $interestedBtn = $btn; + var $cancelBtn = $('
    '); + var marginGap = 0; + + $interestedBtn.off("click"); + $interestedBtn.toggleClass("flip"); + $interestedBtn.blur(); + setTimeout(function() { + $interestedBtn.prepend(' '); + //$interestedBtn.css({transform: "rotateX(0deg)"}); + $interestedBtn.removeClass("flip"); + $interestedBtn.prop("disabled", true); + $interestedBtn.addClass("disabled"); + + $(".disabled").click(function (e) { + e.preventDefault(); + }) + + }, 200); + + $cancelBtn.css({opacity: 0}); + $interestedBtn.after($cancelBtn); + + console.log("hello sergey"); + + + if (!$interestedBtn.parent().hasClass("btn-list--center")) { + marginGap = $interestedBtn.offset().top - $cancelBtn.offset().top - 4; + } + + $cancelBtn.css({display: "none", marginTop : marginGap}); + + $cancelBtn.slideToggle(200); + $cancelBtn.animate({opacity: 1}, 200); + + $cancelBtn.children(".btn").click(function (e) { + e.preventDefault(); + + cancelInterest( $(this) ); + }); + } + + function cancelInterest ($btn) { + + var $cancelBtn = $btn.parent(), + $interestedBtn = $cancelBtn.prev(".btn--interest"); + + $cancelBtn.off("click"); + $cancelBtn.animate({opacity: 0}, 200); + $cancelBtn.slideToggle(200, function () { + $cancelBtn.remove(); + }); + + $interestedBtn.prop("disabled", false); + $interestedBtn.removeClass("disabled"); + $interestedBtn.toggleClass("flip"); + setTimeout(function() { + $interestedBtn.find("svg").remove(); + $interestedBtn.removeClass("flip"); + $interestedBtn.prop("disabled", false); + $interestedBtn.removeClass("disabled"); + $interestedBtn.click(function (e) { e.preventDefault(); - }) - - }, 200); - - $cancelBtn.css({opacity: 0}); - $interestedBtn.after($cancelBtn); - - console.log("hello sergey"); - - - if (!$interestedBtn.parent().hasClass("btn-list--center")) { - marginGap = $interestedBtn.offset().top - $cancelBtn.offset().top - 4; + + addInterest( $(this) ); + }); + + }, 200); + } - - $cancelBtn.css({display: "none", marginTop : marginGap}); - - $cancelBtn.slideToggle(200); - $cancelBtn.animate({opacity: 1}, 200); - - $cancelBtn.children(".btn").click(function (e) { + + $(".btn--interest:not([disabled])").click(function (e) { e.preventDefault(); - - cancelInterest( $(this) ); - }); - } - - function cancelInterest ($btn) { - - var $cancelBtn = $btn.parent(), - $interestedBtn = $cancelBtn.prev(".btn--interest"); - - $cancelBtn.off("click"); - $cancelBtn.animate({opacity: 0}, 200); - $cancelBtn.slideToggle(200, function () { - $cancelBtn.remove(); + + addInterest( $(this) ); }); - - $interestedBtn.prop("disabled", false); - $interestedBtn.removeClass("disabled"); - $interestedBtn.toggleClass("flip"); - setTimeout(function() { - $interestedBtn.find("svg").remove(); - $interestedBtn.removeClass("flip"); - $interestedBtn.prop("disabled", false); - $interestedBtn.removeClass("disabled"); - $interestedBtn.click(function (e) { - e.preventDefault(); - - addInterest( $(this) ); - }); - - }, 200); - - } - - $(".btn--interest:not([disabled])").click(function (e) { - e.preventDefault(); - - addInterest( $(this) ); }); -}); \ No newline at end of file +// +})(jQuery); \ No newline at end of file From 103c82277b568d58696dabe02402a77754834674 Mon Sep 17 00:00:00 2001 From: Nikolay Lobachev Date: Tue, 17 Jul 2018 17:07:40 +0200 Subject: [PATCH 120/200] Add submit buttons templates. Add some changes for content form --- funkywave.info.yml | 1 - funkywave.libraries.yml | 1 - funkywave.theme | 14 +++++++---- .../form/input--submit--action.html.twig | 23 +++++++++++++++++++ templates/form/input--submit.html.twig | 1 - 5 files changed, 32 insertions(+), 8 deletions(-) create mode 100644 templates/form/input--submit--action.html.twig diff --git a/funkywave.info.yml b/funkywave.info.yml index 59e93bb..90feb20 100644 --- a/funkywave.info.yml +++ b/funkywave.info.yml @@ -19,5 +19,4 @@ component-libraries: paths: - patterns libraries-override: - system/base: false classy/base: false diff --git a/funkywave.libraries.yml b/funkywave.libraries.yml index ed7a932..ed8b735 100644 --- a/funkywave.libraries.yml +++ b/funkywave.libraries.yml @@ -3,7 +3,6 @@ global-css: theme: css/style.css: {} css/override.css: {} - css/autocomplete.css: {} global-js: js: js/script.js: {} diff --git a/funkywave.theme b/funkywave.theme index 2c87a5c..92daa00 100644 --- a/funkywave.theme +++ b/funkywave.theme @@ -220,8 +220,7 @@ function funkywave_preprocess_group(&$variables) { * Create theme suggestions for user profile templates **/ function funkywave_theme_suggestions_user_alter(&$suggestions, array $variables) { - $viewmode = $variables['elements']['#view_mode']; - $suggestions[] = 'user__' . $viewmode; + $suggestions[] = 'user__' . $variables['elements']['#view_mode']; } /** @@ -229,7 +228,12 @@ function funkywave_theme_suggestions_user_alter(&$suggestions, array $variables) * The form id becomes the data attribute on the input fields and submit button **/ function funkywave_form_alter(&$form, FormStateInterface $form_state, $form_id) { - $form['actions']['submit']['#attributes']['data-twig-suggestion'] = $form['#id']; + if (!empty($form['actions']['submit'])) { + $form['actions']['submit']['#attributes']['data-twig-suggestion'] = $form['#id']; + } + if (!empty($form['actions']['preview'])) { + $form['actions']['preview']['#attributes']['data-twig-suggestion'] = $form['#id']; + } $suggestion = str_replace(['-'], '_', $form['#id']); $form['keys']['#attributes']['data-twig-suggestion'] = $suggestion; } @@ -242,6 +246,7 @@ function funkywave_theme_suggestions_input_alter(&$suggestions, array $variables if (isset($element['#attributes']['data-twig-suggestion'])) { $suggestion_suffix = str_replace(['-'], '_', $element['#attributes']['data-twig-suggestion']); $suggestions[] = 'input__' . $element['#type'] . '__' . $suggestion_suffix; + $suggestions[] = 'input__' . $element['#type'] . '__action'; } } @@ -249,8 +254,7 @@ function funkywave_theme_suggestions_input_alter(&$suggestions, array $variables * Implements hook_theme_suggestions_container_alter(). */ function funkywave_theme_suggestions_container_alter(&$suggestions, array $variables) { - $element = $variables['element']; - $suggestions[] = 'container__' . $element['#type']; + $suggestions[] = 'container__' . $variables['element']['#type']; } /** diff --git a/templates/form/input--submit--action.html.twig b/templates/form/input--submit--action.html.twig new file mode 100644 index 0000000..1f432cc --- /dev/null +++ b/templates/form/input--submit--action.html.twig @@ -0,0 +1,23 @@ +{# +/** + * @file + * Theme override for an 'input' #type form element. + * + * Available variables: + * - attributes: A list of HTML attributes for the input element. + * - children: Optional additional rendered elements. + * + * @see template_preprocess_input() + */ +#} + +{% +set classes = [ +'btn', +'btn--green', +] +%} + + + {{ attributes.value }} + \ No newline at end of file diff --git a/templates/form/input--submit.html.twig b/templates/form/input--submit.html.twig index 1f432cc..a8fadd9 100644 --- a/templates/form/input--submit.html.twig +++ b/templates/form/input--submit.html.twig @@ -14,7 +14,6 @@ {% set classes = [ 'btn', -'btn--green', ] %} From adb2d02a4bcf4a45b45e48efe73f53c28ef597b6 Mon Sep 17 00:00:00 2001 From: Nikolay Lobachev Date: Wed, 25 Jul 2018 15:54:45 +0200 Subject: [PATCH 121/200] Small fixes --- funkywave.theme | 11 +++++++---- .../pattern-profile-shortinfo.html.twig | 4 ++++ templates/layout/page.html.twig | 1 - 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/funkywave.theme b/funkywave.theme index 92daa00..d97019d 100644 --- a/funkywave.theme +++ b/funkywave.theme @@ -261,11 +261,8 @@ function funkywave_theme_suggestions_container_alter(&$suggestions, array $varia * Implements hook_theme_suggestions_HOOK_alter(). */ function funkywave_theme_suggestions_page_alter(array &$suggestions, array $variables) { - // Get Request Object. - $request = \Drupal::request(); - // If there is HTTP Exception.. - if ($exception = $request->attributes->get('exception')) { + if ($exception = \Drupal::request()->attributes->get('exception')) { // Get the status code. $status_code = $exception->getStatusCode(); if (in_array($status_code, [401, 403, 404])) { @@ -282,5 +279,11 @@ function funkywave_theme() { 'url' => NULL, ], ]; + $themes['user_list_item'] = [ + 'variables' => [ + 'user_list' => NULL, + 'context' => NULL, + ], + ]; return $themes; } diff --git a/patterns/profile-shortinfo/pattern-profile-shortinfo.html.twig b/patterns/profile-shortinfo/pattern-profile-shortinfo.html.twig index 90631c0..c669494 100644 --- a/patterns/profile-shortinfo/pattern-profile-shortinfo.html.twig +++ b/patterns/profile-shortinfo/pattern-profile-shortinfo.html.twig @@ -6,11 +6,13 @@ #}
    + {% if image_url %}

    {# link is in html.html.twig #} -
    {{ page.content }}
    {# /.layout-content #} From 264edfb5b575bc85c8ffb026c57c3c0b6f3b1da7 Mon Sep 17 00:00:00 2001 From: iconodule Date: Wed, 25 Jul 2018 17:07:59 +0200 Subject: [PATCH 122/200] NGF-339 --- css/style.css | 20 ++++++++++---------- sass/base/_utilities.scss | 11 +++++++++++ sass/components/_comments.scss | 10 ---------- 3 files changed, 21 insertions(+), 20 deletions(-) diff --git a/css/style.css b/css/style.css index 16d80f6..b4170ac 100644 --- a/css/style.css +++ b/css/style.css @@ -824,6 +824,16 @@ li.tag { height: 1px; } +ul.links.inline { + margin: 0; + padding: 0; + padding-bottom: 15px; +} + +ul.links.inline li { + display: inline-block; +} + .focusable:active, .focusable:focus { position: static !important; clip: auto; @@ -2005,16 +2015,6 @@ a.btn:focus, input.btn:focus, button.btn:focus { margin: 0; } -.sub-section--comments ul.links.inline { - margin: 0; - padding: 0; - padding-bottom: 15px; -} - -.sub-section--comments ul.links.inline li { - display: inline-block; -} - .sub-section--comments li { list-style: none; } diff --git a/sass/base/_utilities.scss b/sass/base/_utilities.scss index a4b36ab..12c669c 100644 --- a/sass/base/_utilities.scss +++ b/sass/base/_utilities.scss @@ -15,6 +15,17 @@ height: 1px; } + + ul.links.inline { + margin: 0; + padding: 0; + padding-bottom: 15px; + + li { + display: inline-block; + } + } + .focusable:active, .focusable:focus { position: static !important; clip: auto; diff --git a/sass/components/_comments.scss b/sass/components/_comments.scss index b805174..83c248f 100644 --- a/sass/components/_comments.scss +++ b/sass/components/_comments.scss @@ -31,16 +31,6 @@ margin: 0; } - ul.links.inline { - margin: 0; - padding: 0; - padding-bottom: 15px; - - li { - display: inline-block; - } - } - li { list-style: none; From 56312a693fbf1bcd7bf2fbb81a0f438a79140ae7 Mon Sep 17 00:00:00 2001 From: Nikolay Lobachev Date: Fri, 27 Jul 2018 14:37:08 +0200 Subject: [PATCH 123/200] Add shor list item template --- funkywave.theme | 5 +++-- templates/short-list-item.html.twig | 7 +++++++ 2 files changed, 10 insertions(+), 2 deletions(-) create mode 100644 templates/short-list-item.html.twig diff --git a/funkywave.theme b/funkywave.theme index d97019d..3ae46b0 100644 --- a/funkywave.theme +++ b/funkywave.theme @@ -279,9 +279,10 @@ function funkywave_theme() { 'url' => NULL, ], ]; - $themes['user_list_item'] = [ + $themes['short_list_item'] = [ 'variables' => [ - 'user_list' => NULL, + 'url' => NULL, + 'title' => NULL, 'context' => NULL, ], ]; diff --git a/templates/short-list-item.html.twig b/templates/short-list-item.html.twig new file mode 100644 index 0000000..4a002cf --- /dev/null +++ b/templates/short-list-item.html.twig @@ -0,0 +1,7 @@ +{% include "@patterns/profile-shortinfo/pattern-profile-shortinfo.html.twig" + with { + title: title, + url: url, + context_text: context, + } +%} \ No newline at end of file From 1bccbbe83b7ad0bbc6b93064a8d0de54e2b940bf Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Tue, 31 Jul 2018 15:39:47 +0200 Subject: [PATCH 124/200] NGF-340: fix cannot click on create a group link --- css/style.css | 2 +- sass/components/_navigation.scss | 66 ++++++++++++++++---------------- 2 files changed, 34 insertions(+), 34 deletions(-) diff --git a/css/style.css b/css/style.css index 16d80f6..8188c89 100644 --- a/css/style.css +++ b/css/style.css @@ -2941,7 +2941,7 @@ a.logo__link span { .navigation-menu__list--tools { background-size: 100% 80px; background-position: left top; - height: 100px; + height: 80px; width: 75vw; max-width: 900px; margin-left: -15px; diff --git a/sass/components/_navigation.scss b/sass/components/_navigation.scss index 4e14b5e..c90556b 100644 --- a/sass/components/_navigation.scss +++ b/sass/components/_navigation.scss @@ -28,12 +28,12 @@ height: 12.5vw; max-width: 54px; max-height: 39px; - + &.active { background: url(../images/navigation-menu__item--active__background--sm.svg) no-repeat center bottom; background-size: cover; border-bottom: solid 2px $pink; - + a { color: scale-lightness($pink, 40); } @@ -54,13 +54,13 @@ -@media (max-width: 767.98px) and (orientation: landscape) { +@media (max-width: 767.98px) and (orientation: landscape) { .navigation-menu { background-position: center bottom; background-size: 100vw 23vh; - + &__list { - + padding:0; margin: 0vw 1vw 0; } @@ -71,7 +71,7 @@ .not-signed .navigation-menu { display: block; } - + .navigation-menu { position: relative; bottom: auto; @@ -80,7 +80,7 @@ height: auto; max-height: none; padding-top: 15px; - + &__list { width: auto; height: auto; @@ -101,52 +101,52 @@ line-height: inherit; padding: 0.5rem 0.8rem; border-radius: 0.5rem; - + svg { margin-right: 1.5rem; } - + a{ color: $white; text-shadow: none; box-shadow: none; padding: 6px 0; box-shadow: none; - + &:hover { color: $pink; box-shadow: none; - + .badge { background-color: $pink; transition: all 0.2s; } } } - + &.active { background: rgba($white, 0.1); border-bottom: none; - + .fas { color: $pink; } - + } } } - + &__list--feeds { svg { min-width: 2rem; } } - - &__list--tools { + + &__list--tools { position: fixed; display: flex; justify-content: flex-end; - top: 0px; + top: 0px; z-index: 10001; background-image: $logo-area__background-image--md; background-repeat: no-repeat; @@ -155,22 +155,22 @@ height: 100px; width: 100vw; margin-left: -15px; - + &:empty { background-image: url(../images/logo-area-bckgrd--md--no-action.svg); } - + &.navigation-menu__list--single-tool { background-image: url(../images/logo-area-bckgrd--md--one-action.svg); } - + .navigation-menu__item { display: inline-block; padding:0; margin-left: 0px; - + } - + .navigation-menu__item:only-child { display: block; margin: 0px 0% 0 -2.45% !important; @@ -178,7 +178,7 @@ height: 54px; width: 54px; } - + .navigation-menu__item:first-child { display: block; margin: 11px 0% 0 -8.75%; @@ -186,7 +186,7 @@ height: 54px; width: 54px; } - + .navigation-menu__item:nth-child(2) { display: block; margin: 0px 0% 0 -3.75%; @@ -194,14 +194,14 @@ height: 42px; width: 42px; } - + .navigation-menu__item--tool { text-align: center; display: inline-block; background-image: url(../images/navigation-tools__btn__background.svg); background-repeat: none; color: $gray-900; - + &.navigation-menu__item--filter { height: 54px; width: 54px; @@ -212,7 +212,7 @@ margin: auto; } } - + &.navigation-menu__item--search { background-size: 42px 42px; display: inline-block; @@ -225,9 +225,9 @@ } } } - + } - + .badge { background: rgba($white, 0.8); padding: 0rem 0.5rem 0.1rem; @@ -243,11 +243,11 @@ &__list--tools { background-size: 100% 80px; background-position: left top; - height: 100px; + height: 80px; width: 75vw; max-width: 900px; margin-left: -15px; - + .navigation-menu__item:only-child { display: block; margin: 0px 0% 0 -18px !important; @@ -274,4 +274,4 @@ } -} \ No newline at end of file +} From 34dd0d5d898ca0e138d4e6aa1fd8b5614414b683 Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Mon, 6 Aug 2018 17:44:27 +0200 Subject: [PATCH 125/200] NGF-342 form improvements --- css/override.css | 298 +++++++++++++++++++++++++++++++++ css/style.css | 77 +++++---- images/required.svg | 1 + sass/base/_form.scss | 2 +- sass/base/_utilities.scss | 18 +- sass/components/_buttons.scss | 58 ++++--- sass/components/_newsfeed.scss | 76 ++++----- 7 files changed, 420 insertions(+), 110 deletions(-) create mode 100644 images/required.svg diff --git a/css/override.css b/css/override.css index e69de29..127cbf1 100644 --- a/css/override.css +++ b/css/override.css @@ -0,0 +1,298 @@ +/** + * @file + * Seven styles for Tables. + */ + +table { + width: 100%; + margin: 0 0 10px; +} + +/* custom */ + +table h4 { + margin: 0; + padding: 0; +} + +button.link { + background: transparent; + border: 0; + cursor: pointer; + margin: 0; + margin-bottom: 0px; + padding: 0; + font-size: 1em; +} + +caption { + text-align: left; /* LTR */ +} +[dir="rtl"] caption { + text-align: right; +} +th { + text-align: left; /* LTR */ + padding: 10px 12px; +} +[dir="rtl"] th { + text-align: right; +} +thead th { + background: #26252B; + border: solid #bfbfba; + border-width: 1px 0; + color: #ffffff; + text-transform: uppercase; +} + +fieldset thead th { + background: none; + color: #333333; +} + +tr { + border-bottom: 1px solid #e6e4df; + padding: 0.1em 0.6em; +} +thead > tr { + border-bottom: 1px solid #000; +} +tbody tr:hover, +tbody tr:focus { + background: #f7fcff; +} +/* See colors.css */ +tbody tr.color-warning:hover, +tbody tr.color-warning:focus { + background: #fdf8ed; +} +tbody tr.color-error:hover, +tbody tr.color-error:focus { + background: #fcf4f2; +} + +table.no-highlight tr.selected td { + background: transparent; +} + +td, +th { + vertical-align: middle; +} +td { + padding: 10px 12px; + text-align: left; /* LTR */ +} +[dir="rtl"] td { + text-align: right; +} +th > a { + position: relative; + display: block; +} + +/* 1. Must match negative bottom padding of the parent */ +th > a:after { + content: ''; + display: block; + position: absolute; + top: 0; + bottom: -10px; /* 1. */ + left: 0; + right: 0; + border-bottom: 2px solid transparent; + -webkit-transition: all 0.1s; + transition: all 0.1s; +} +th.is-active > a { + color: #004875; +} +th.is-active img { + position: absolute; + right: 0; /* LTR */ + top: 50%; +} +[dir="rtl"] th.is-active img { + right: auto; + left: 0; +} +th.is-active > a:after { + border-bottom-color: #004875; +} +th > a:hover, +th > a:focus, +th.is-active > a:hover, +th.is-active > a:focus { + color: #008ee6; + text-decoration: none; +} +th > a:hover:after, +th > a:focus:after, +th.is-active > a:hover:after, +th.is-active > a:focus:after { + border-bottom-color: #008ee6; +} +td .item-list ul { + margin: 0; +} +/* This is required to win over specificity of [dir="rtl"] .item-list ul */ +[dir="rtl"] td .item-list ul { + margin: 0; +} +td.is-active { + background: none; +} + +/* Force browsers to calculate the width of a 'select all' element. */ +th.select-all { + width: 1px; +} + +/** + * Captions. + */ +.caption { + margin-bottom: 1.2em; +} + +/** + * Responsive tables. + */ +@media screen and (max-width: 37.5em) { /* 600px */ + th.priority-low, + td.priority-low, + th.priority-medium, + td.priority-medium { + display: none; + } +} + +@media screen and (max-width: 60em) { /* 920px */ + th.priority-low, + td.priority-low { + display: none; + } +} + +/* forms */ + +fieldset:not(.fieldgroup) { + display: table-cell; +} +fieldset:not(.fieldgroup) { + border-radius: 2px; + margin: 1em 0; + padding: 35px 0 0 0; + min-width: 0; + position: relative; +} + +fieldset:not(.fieldgroup) > legend { + font-size: 1em; + font-weight: bold; + position: absolute; + top: 0; + left: 0; + width: 100%; + padding: 0; +} + +legend { + border: 0; + padding: 0; +} + +fieldset > legend { + padding-inline-start: 2px; + padding-inline-end: 2px; + inline-size: -moz-fit-content; +} + +legend { + display: block; +} + +.fieldset-legend { + display: inline-block; +} + +/* required form field theming */ + +.form-required::after { + background-size: 7px 7px; + width: 7px; + height: 7px; +} +.form-required::after { + content: ''; + vertical-align: super; + display: inline-block; + background-image: url(../images/required.svg); + background-repeat: no-repeat; + background-size: 6px 6px; + width: 6px; + height: 6px; + margin: 0 0.3em; +} + +.description { + color: #777777; + border-left: 5px solid #ccc; + padding-left: 20px; + font-size: 14px; + margin: 20px 0 20px 0; +} + +a.tabledrag-handle { + box-shadow: none; + padding: 0 5px 0 5px; +} + +a.tabledrag-handle .handle { + background-position: 0; + width: 16px; + height: 16px; + margin: 0; + +} + +h4.label { + display: inline; +} + +.field-multiple-table .form-wrapper, +.field--name-field-ngf-cover-image .js-form-item.form-wrapper .form-wrapper, +.details-wrapper .form-wrapper, +details.form-wrapper { + padding: 0; +} + +/* border to fix */ + +fieldset { + border: none; +} + + +.field-multiple-table .paragraphs-subform { + padding: 0 15px 0 15px; +} + +.field-multiple-table fieldset.form-wrapper { + padding-top: 50px; +} + +.container-inline.js-form-wrapper { + padding-bottom: 0; +} + +/* +.js-form-item.form-wrapper .form-wrapper { + padding: 0 10px 0 10px; +} +*/ + +tr.draggable.even { + background: #f5f5f2; +} diff --git a/css/style.css b/css/style.css index 82595fd..97ff9e0 100644 --- a/css/style.css +++ b/css/style.css @@ -210,7 +210,7 @@ form textarea, .form textarea { min-height: 6rem; } -form input[type=text], form input[type=email], form input[type=password], form textarea, .form input[type=text], .form input[type=email], .form input[type=password], .form textarea { +form input[type=text], form input[type=email], form input[type=password], form textarea, form .form-date, .form input[type=text], .form input[type=email], .form input[type=password], .form textarea, .form .form-date { padding: 0.7rem 0.9rem; font-size: 1.6rem; line-height: 1.8; @@ -225,42 +225,42 @@ form input[type=text], form input[type=email], form input[type=password], form t font-family: "Raleway"; } -form input[type=text]:focus:hover, form input[type=text]:focus, form input[type=email]:focus:hover, form input[type=email]:focus, form input[type=password]:focus:hover, form input[type=password]:focus, form textarea:focus:hover, form textarea:focus, .form input[type=text]:focus:hover, .form input[type=text]:focus, .form input[type=email]:focus:hover, .form input[type=email]:focus, .form input[type=password]:focus:hover, .form input[type=password]:focus, .form textarea:focus:hover, .form textarea:focus { +form input[type=text]:focus:hover, form input[type=text]:focus, form input[type=email]:focus:hover, form input[type=email]:focus, form input[type=password]:focus:hover, form input[type=password]:focus, form textarea:focus:hover, form textarea:focus, form .form-date:focus:hover, form .form-date:focus, .form input[type=text]:focus:hover, .form input[type=text]:focus, .form input[type=email]:focus:hover, .form input[type=email]:focus, .form input[type=password]:focus:hover, .form input[type=password]:focus, .form textarea:focus:hover, .form textarea:focus, .form .form-date:focus:hover, .form .form-date:focus { outline: none; border: solid 2px #662D91; -webkit-transition: border-color 0.2s; transition: border-color 0.2s; } -form input[type=text]:hover, form input[type=email]:hover, form input[type=password]:hover, form textarea:hover, .form input[type=text]:hover, .form input[type=email]:hover, .form input[type=password]:hover, .form textarea:hover { +form input[type=text]:hover, form input[type=email]:hover, form input[type=password]:hover, form textarea:hover, form .form-date:hover, .form input[type=text]:hover, .form input[type=email]:hover, .form input[type=password]:hover, .form textarea:hover, .form .form-date:hover { border-color: #515155; -webkit-transition: border-color 0.2s; transition: border-color 0.2s; } -form input[type=text]::-webkit-input-placeholder, form input[type=email]::-webkit-input-placeholder, form input[type=password]::-webkit-input-placeholder, form textarea::-webkit-input-placeholder, .form input[type=text]::-webkit-input-placeholder, .form input[type=email]::-webkit-input-placeholder, .form input[type=password]::-webkit-input-placeholder, .form textarea::-webkit-input-placeholder { +form input[type=text]::-webkit-input-placeholder, form input[type=email]::-webkit-input-placeholder, form input[type=password]::-webkit-input-placeholder, form textarea::-webkit-input-placeholder, form .form-date::-webkit-input-placeholder, .form input[type=text]::-webkit-input-placeholder, .form input[type=email]::-webkit-input-placeholder, .form input[type=password]::-webkit-input-placeholder, .form textarea::-webkit-input-placeholder, .form .form-date::-webkit-input-placeholder { opacity: 0.4; } -form input[type=text]:-ms-input-placeholder, form input[type=email]:-ms-input-placeholder, form input[type=password]:-ms-input-placeholder, form textarea:-ms-input-placeholder, .form input[type=text]:-ms-input-placeholder, .form input[type=email]:-ms-input-placeholder, .form input[type=password]:-ms-input-placeholder, .form textarea:-ms-input-placeholder { +form input[type=text]:-ms-input-placeholder, form input[type=email]:-ms-input-placeholder, form input[type=password]:-ms-input-placeholder, form textarea:-ms-input-placeholder, form .form-date:-ms-input-placeholder, .form input[type=text]:-ms-input-placeholder, .form input[type=email]:-ms-input-placeholder, .form input[type=password]:-ms-input-placeholder, .form textarea:-ms-input-placeholder, .form .form-date:-ms-input-placeholder { opacity: 0.4; } -form input[type=text]::-ms-input-placeholder, form input[type=email]::-ms-input-placeholder, form input[type=password]::-ms-input-placeholder, form textarea::-ms-input-placeholder, .form input[type=text]::-ms-input-placeholder, .form input[type=email]::-ms-input-placeholder, .form input[type=password]::-ms-input-placeholder, .form textarea::-ms-input-placeholder { +form input[type=text]::-ms-input-placeholder, form input[type=email]::-ms-input-placeholder, form input[type=password]::-ms-input-placeholder, form textarea::-ms-input-placeholder, form .form-date::-ms-input-placeholder, .form input[type=text]::-ms-input-placeholder, .form input[type=email]::-ms-input-placeholder, .form input[type=password]::-ms-input-placeholder, .form textarea::-ms-input-placeholder, .form .form-date::-ms-input-placeholder { opacity: 0.4; } -form input[type=text]::placeholder, form input[type=email]::placeholder, form input[type=password]::placeholder, form textarea::placeholder, .form input[type=text]::placeholder, .form input[type=email]::placeholder, .form input[type=password]::placeholder, .form textarea::placeholder { +form input[type=text]::placeholder, form input[type=email]::placeholder, form input[type=password]::placeholder, form textarea::placeholder, form .form-date::placeholder, .form input[type=text]::placeholder, .form input[type=email]::placeholder, .form input[type=password]::placeholder, .form textarea::placeholder, .form .form-date::placeholder { opacity: 0.4; } -form input[type=text].error, form input[type=email].error, form input[type=password].error, form textarea.error, .form input[type=text].error, .form input[type=email].error, .form input[type=password].error, .form textarea.error { +form input[type=text].error, form input[type=email].error, form input[type=password].error, form textarea.error, form .form-date.error, .form input[type=text].error, .form input[type=email].error, .form input[type=password].error, .form textarea.error, .form .form-date.error { border: solid 2px #ff3939; -webkit-transition: border-color 0.2s; transition: border-color 0.2s; } -form input[type=text] + p, form input[type=email] + p, form input[type=password] + p, form textarea + p, .form input[type=text] + p, .form input[type=email] + p, .form input[type=password] + p, .form textarea + p { +form input[type=text] + p, form input[type=email] + p, form input[type=password] + p, form textarea + p, form .form-date + p, .form input[type=text] + p, .form input[type=email] + p, .form input[type=password] + p, .form textarea + p, .form .form-date + p { margin-top: 0.2em; -webkit-transition: border-color 0.2s; transition: border-color 0.2s; @@ -866,7 +866,7 @@ ul.links.inline li { } .text-danger, a span.text-danger { - color: #ff3939; + display: none; } .text-center { @@ -1271,6 +1271,7 @@ input.btn { -webkit-box-flex: 1; -ms-flex-positive: 1; flex-grow: 1; + margin: 15px 0 15px 10px; } .btn-list--right .opposite { @@ -1345,7 +1346,7 @@ a.btn, input.btn, button.btn { min-width: 12rem; font-weight: 700; line-height: 1.3; - margin: 15px 0; + margin: 15px 10px 15px 0; border: none; cursor: pointer; } @@ -1370,12 +1371,12 @@ a.btn:focus, input.btn:focus, button.btn:focus { outline: none; } -.btn--green { +.btn--grey, .paragraphs-icon-button, .form-submit { display: inline-block; - background: #1eb49c; + background: #c6c7cc; background-image: none; - -webkit-box-shadow: 0 0 0 4px rgba(30, 180, 156, 0.5) !important; - box-shadow: 0 0 0 4px rgba(30, 180, 156, 0.5) !important; + -webkit-box-shadow: 0 0 0 4px rgba(198, 199, 204, 0.5) !important; + box-shadow: 0 0 0 4px rgba(198, 199, 204, 0.5) !important; text-shadow: none; -webkit-transition: all 0.2s ease; transition: all 0.2s ease; @@ -1385,22 +1386,22 @@ a.btn:focus, input.btn:focus, button.btn:focus { transform-style: preserve-3d; } -.btn--green:not([disabled]):hover { - background: #18917e; +.btn--grey:not([disabled]):hover, .paragraphs-icon-button:not([disabled]):hover, .form-submit:not([disabled]):hover { + background: #b0b2b9; -webkit-transition: all 0.2s ease; transition: all 0.2s ease; } -.btn--green:active { - background: #0c473d; +.btn--grey:active, .paragraphs-icon-button:active, .form-submit:active { + background: #838590; } -.btn--blue { +.btn--green { display: inline-block; - background: #00c9ff; + background: #1eb49c; background-image: none; - -webkit-box-shadow: 0 0 0 4px rgba(0, 201, 255, 0.5) !important; - box-shadow: 0 0 0 4px rgba(0, 201, 255, 0.5) !important; + -webkit-box-shadow: 0 0 0 4px rgba(30, 180, 156, 0.5) !important; + box-shadow: 0 0 0 4px rgba(30, 180, 156, 0.5) !important; text-shadow: none; -webkit-transition: all 0.2s ease; transition: all 0.2s ease; @@ -1410,22 +1411,22 @@ a.btn:focus, input.btn:focus, button.btn:focus { transform-style: preserve-3d; } -.btn--blue:not([disabled]):hover { - background: #00a9d6; +.btn--green:not([disabled]):hover { + background: #18917e; -webkit-transition: all 0.2s ease; transition: all 0.2s ease; } -.btn--blue:active { - background: #006580; +.btn--green:active { + background: #0c473d; } -.btn--grey { +.btn--blue, .field-add-more-submit { display: inline-block; - background: #c6c7cc; + background: #00c9ff; background-image: none; - -webkit-box-shadow: 0 0 0 4px rgba(198, 199, 204, 0.5) !important; - box-shadow: 0 0 0 4px rgba(198, 199, 204, 0.5) !important; + -webkit-box-shadow: 0 0 0 4px rgba(0, 201, 255, 0.5) !important; + box-shadow: 0 0 0 4px rgba(0, 201, 255, 0.5) !important; text-shadow: none; -webkit-transition: all 0.2s ease; transition: all 0.2s ease; @@ -1435,20 +1436,24 @@ a.btn:focus, input.btn:focus, button.btn:focus { transform-style: preserve-3d; } -.btn--grey:not([disabled]):hover { - background: #b0b2b9; +.btn--blue:not([disabled]):hover, .field-add-more-submit:not([disabled]):hover { + background: #00a9d6; -webkit-transition: all 0.2s ease; transition: all 0.2s ease; } -.btn--grey:active { - background: #838590; +.btn--blue:active, .field-add-more-submit:active { + background: #006580; } .btn-list { margin-top: 3rem; } +.paragraphs-actions > .button { + margin: 0; +} + .flip { -webkit-transform: rotateX(90deg); transform: rotateX(90deg); @@ -2979,7 +2984,7 @@ a.logo__link span { margin-bottom: 16px; } -.field--type-video { +.field__item.field--type-video { position: relative; padding-bottom: 56.25%; padding-top: 30px; diff --git a/images/required.svg b/images/required.svg new file mode 100644 index 0000000..f7882d6 --- /dev/null +++ b/images/required.svg @@ -0,0 +1 @@ + diff --git a/sass/base/_form.scss b/sass/base/_form.scss index 67f1392..c592001 100644 --- a/sass/base/_form.scss +++ b/sass/base/_form.scss @@ -24,7 +24,7 @@ form, .form { min-height: 6rem; } - input[type=text], input[type=email], input[type=password],textarea { + input[type=text], input[type=email], input[type=password],textarea, .form-date { padding: 0.7rem 0.9rem; font-size: 1.6rem; line-height: 1.8; diff --git a/sass/base/_utilities.scss b/sass/base/_utilities.scss index 12c669c..e59c1e9 100644 --- a/sass/base/_utilities.scss +++ b/sass/base/_utilities.scss @@ -15,12 +15,12 @@ height: 1px; } - + ul.links.inline { margin: 0; padding: 0; padding-bottom: 15px; - + li { display: inline-block; } @@ -42,7 +42,7 @@ position: absolute !important; top: -9999px !important; left: -9999px !important; -} +} /*.clearfix { overflow: auto; @@ -62,7 +62,7 @@ } .text-danger, a span.text-danger { - color: $red; + display: none; } .text-center { @@ -86,8 +86,8 @@ opacity: 1; width: 80%; margin: 5rem auto 3rem auto; - - + + &:before { content: ''; background: $gray-600; @@ -124,12 +124,12 @@ } .small-top-margin { - margin-top: 5px !important; + margin-top: 5px !important; } .extra-space--top { margin-top: 5rem !important; -} +} .extra-space--bottom { margin-bottom: 3rem !important; @@ -141,7 +141,7 @@ top: auto !important; left: auto !important; } - + .no-display--md { position: absolute !important; top: -9999px !important; diff --git a/sass/components/_buttons.scss b/sass/components/_buttons.scss index ba7352a..8f04590 100644 --- a/sass/components/_buttons.scss +++ b/sass/components/_buttons.scss @@ -1,5 +1,5 @@ @mixin button-bg($bg) { - + display: inline-block; background: $bg; background-image: none; @@ -8,16 +8,16 @@ transition: all 0.2s ease; transform: rotateX(0deg); transform-style: preserve-3d; - + &:not([disabled]):hover { background:darken($bg,8%); transition: all 0.2s ease; - + } &:active { background:darken($bg,25%); } -} +} input.btn{ appearance: none; @@ -31,12 +31,13 @@ input.btn{ justify-content: flex-end; flex-wrap: nowrap; align-content: flex-start; - + > .btn { position: relative; flex-grow: 1; + margin: 15px 0 15px 10px; } - + .opposite { align-self: flex-start; order: -1; @@ -45,7 +46,7 @@ input.btn{ } } .btn-list--left { - text-align: left; + text-align: left; } .btn-list--byside.btn-list--left { float: left @@ -63,11 +64,11 @@ input.btn{ .btn-list--center { - text-align: center; + text-align: center; width: 80%; max-width: 512px; margin: auto; - + > a.btn, input.btn, button.btn { &:not(.btn--large):last-child { margin: 2.5rem auto 2rem auto; @@ -82,7 +83,7 @@ input.btn{ max-width: 32em; padding: 0.3rem 1rem; font-size: 1.8rem; - + .icon { height: 1.8rem; margin-right : 1rem; @@ -101,11 +102,10 @@ a.btn, input.btn, button.btn { min-width: 12rem; font-weight: 700; line-height: 1.3; - //margin-right: 15px; - margin: 15px 0; + margin: 15px 10px 15px 0; border: none; cursor: pointer; - + .icon { height: 1.3rem; margin-right : 1rem; @@ -119,50 +119,56 @@ a.btn, input.btn, button.btn { &:not([disabled]):hover { color: $white; } - + &:focus { box-shadow: 0 0 0 4px $purple !important; outline: none; } } +.btn--grey, .paragraphs-icon-button, .form-submit { + @include button-bg($gray-400); +} + .btn--green { @include button-bg($teal); } -.btn--blue { +.btn--blue, .field-add-more-submit { @include button-bg($cyan); } -.btn--grey { - @include button-bg($gray-400); -} + .btn-list { margin-top: 3rem; } - + +.paragraphs-actions > .button { + margin: 0; +} + .flip { transform: rotateX(90deg); transform-style: preserve-3d; transition: all 0.2s; -} +} @media (min-width: 768px) { - + a.btn, input.btn, button.btn { font-size: 1.6rem; } - + .btn.btn--large { padding: 0.4rem 0rem; font-size: 2rem; } - + .btn-list--center { //width: 60%; text-align: center; - + > a.btn, input.btn, button.btn { &:not(.btn--large):last-child { margin: 2.5rem auto 2rem auto; @@ -171,5 +177,5 @@ a.btn, input.btn, button.btn { margin: 2.5rem auto 2rem auto; } } - -} \ No newline at end of file + +} diff --git a/sass/components/_newsfeed.scss b/sass/components/_newsfeed.scss index 08c6b2c..ef65818 100644 --- a/sass/components/_newsfeed.scss +++ b/sass/components/_newsfeed.scss @@ -1,6 +1,6 @@ .newsfeed { margin: 0 -15px; - + .view-empty { padding: 0 15px; } @@ -11,7 +11,7 @@ margin-bottom: 16px; } -.field--type-video { +.field__item.field--type-video { position: relative; padding-bottom: 56.25%; padding-top: 30px; height: 0; overflow: hidden; @@ -26,35 +26,35 @@ width: 100%; height: 100%; } - + .newsfeed__item { h2 { padding-left: 32px; background: transparent left top no-repeat; background-size: 22px 24px; margin: 0 0 1.8rem 0; - + .newsfeed__item__state { opacity: 0.8; white-space: nowrap; } } - + h2 a { font-family: 'Raleway'; font-weight: 800; color: $gray-800; text-shadow: none; box-shadow: none; - + &:hover { color: $purple; - + text-shadow: 0 2px 0 $white, 0 3px 0 $white, 1px 2px 0 $white, -1px 2px 0 $white; box-shadow: 0 1px 0 0 $purple; } } - + .field--name-field-ngf-cover-image, .field--name-field-media-image { border-radius: 10px; @@ -64,9 +64,9 @@ justify-content: center; align-items: center; overflow:hidden; - - - + + + img.responsive { max-height: 320px; width: auto; @@ -75,11 +75,11 @@ //border:1px solid rgba($gray-900, 0); } } - + .newsfeed__article-wrapper { padding: 0 15px; - } - + } + } .newsfeed__legend-copyright { @@ -89,18 +89,18 @@ opacity: 0.8; text-align: center; max-width: 100%; - + span { - + &:after { content: " | "; display: inline; } - + &:last-child:after { content : ""; } - + a{ color: $gray-700 !important; box-shadow: 0 1px 0 0 $gray-700 !important; @@ -109,85 +109,85 @@ box-shadow: 0 1px 0 0 $purple !important; } } - + } } - + .newsfeed__item--ngf-discussion { h2 { background-image: url(../images/article--discussion-icon.svg); - background-size: 2.38rem 2.5rem; + background-size: 2.38rem 2.5rem; } } .newsfeed__item--ngf-event { h2 { background-image: url(../images/article--event-icon.svg); - background-size: 2.38rem 2.5rem; + background-size: 2.38rem 2.5rem; } } .newsfeed__item--unpublished { h2 { background-image: url(../images/article--draft-icon.svg); - background-size: 2.38rem 2.5rem; + background-size: 2.38rem 2.5rem; } } .newsfeed__item--pinned { h2 { background-image: url(../images/article--pinned-icon.svg); - background-size: 2.38rem 2.5rem; + background-size: 2.38rem 2.5rem; padding-left: 25px; } } - + .newsfeed__item--teaser { background-image: url(../images/hr--wavy.svg); background-repeat: no-repeat; background-position: center top; padding: 7.5rem 15px 4rem 15px; background-size: 100% 40px; - + margin-top: -30px; - + &:first-child { padding-top: 4rem; background-image: none !important; - + margin-top: 0px; } } - + .newsfeed__item--pinned { - + color: $gray-900; - + background-image: url(../images/hr--wavy.svg), linear-gradient( scale-lightness($purple, 90%) 50%, scale-lightness($purple, 90%) 50%), ; background-repeat: no-repeat, no-repeat; background-position: center top, center bottom; background-size: 100% 40px, 100% calc(100% - 28px); - + a, a:hover, h2 a, h2 a:hover { text-shadow: 0 2px 0 scale-lightness($purple, 90%), 0 3px 0 scale-lightness($purple, 90%), 1px 2px 0 scale-lightness($purple, 90%), -1px 2px 0 scale-lightness($purple, 90%); } - + &.newsfeed__item--teaser:first-child{ background-color: scale-lightness($purple, 90%); } } - + .newsfeed__item--unpublished { - + color: $gray-900; background-image: url(../images/hr--wavy.svg), linear-gradient( scale-lightness($red, 90%) 50%, scale-lightness($red, 90%) 50%) ; background-repeat: no-repeat, no-repeat; background-position: center top, center bottom; background-size: 100% 40px, 100% calc(100% - 28px); - + > * a, > * a:hover, h2 a, h2 a:hover { text-shadow: 0 2px 0 scale-lightness($red, 90%), 0 3px 0 scale-lightness($red, 90%), 1px 2px 0 scale-lightness($red, 90%), -1px 2px 0 scale-lightness($red, 90%); } - + &.newsfeed__item--teaser:first-child{ background-color: scale-lightness($red, 90%); } - } \ No newline at end of file + } From c9e5a7e0e0d0073b6d79b9cbca0836c8f3561db3 Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Tue, 7 Aug 2018 10:36:56 +0200 Subject: [PATCH 126/200] NGF-342 fix alignment buttons --- css/style.css | 22 +++++++++++----------- sass/components/_buttons.scss | 15 +++++++++++---- 2 files changed, 22 insertions(+), 15 deletions(-) diff --git a/css/style.css b/css/style.css index 97ff9e0..eafc8ec 100644 --- a/css/style.css +++ b/css/style.css @@ -1253,10 +1253,10 @@ input.btn { -webkit-box-align: end; -ms-flex-align: end; align-items: flex-end; - -webkit-box-orient: vertical; + -webkit-box-orient: horizontal; -webkit-box-direction: normal; - -ms-flex-direction: column; - flex-direction: column; + -ms-flex-direction: row; + flex-direction: row; -webkit-box-pack: end; -ms-flex-pack: end; justify-content: flex-end; @@ -1268,10 +1268,7 @@ input.btn { .btn-list--right > .btn { position: relative; - -webkit-box-flex: 1; - -ms-flex-positive: 1; - flex-grow: 1; - margin: 15px 0 15px 10px; + margin: 15px 0 15px 15px; } .btn-list--right .opposite { @@ -1357,10 +1354,6 @@ a.btn .icon, input.btn .icon, button.btn .icon { display: inline-block; } -a.btn:not(.btn--large):last-child, input.btn:not(.btn--large):last-child, button.btn:not(.btn--large):last-child { - margin-bottom: 0px; -} - a.btn:not([disabled]):hover, input.btn:not([disabled]):hover, button.btn:not([disabled]):hover { color: #FFFFFF; } @@ -1446,6 +1439,13 @@ a.btn:focus, input.btn:focus, button.btn:focus { background: #006580; } +button.paragraphs-dropdown-action { + border: none; + -webkit-box-shadow: none !important; + box-shadow: none !important; + margin-bottom: 0; +} + .btn-list { margin-top: 3rem; } diff --git a/sass/components/_buttons.scss b/sass/components/_buttons.scss index 8f04590..c3a3b6d 100644 --- a/sass/components/_buttons.scss +++ b/sass/components/_buttons.scss @@ -27,15 +27,16 @@ input.btn{ width: 100%; display: flex; align-items: flex-end; - flex-direction: column; + /* flex-direction: column; */ + flex-direction: row; justify-content: flex-end; flex-wrap: nowrap; align-content: flex-start; > .btn { position: relative; - flex-grow: 1; - margin: 15px 0 15px 10px; + /* flex-grow: 1; */ + margin: 15px 0 15px 15px; } .opposite { @@ -112,9 +113,11 @@ a.btn, input.btn, button.btn { display: inline-block; } + /* &:not(.btn--large):last-child { margin-bottom: 0px; } + */ &:not([disabled]):hover { color: $white; @@ -138,7 +141,11 @@ a.btn, input.btn, button.btn { @include button-bg($cyan); } - +button.paragraphs-dropdown-action { + border: none; + box-shadow: none !important; + margin-bottom: 0; +} .btn-list { margin-top: 3rem; From 8bcd24caa7531f740f389791e881ee94e00cf56a Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Wed, 8 Aug 2018 14:05:36 +0200 Subject: [PATCH 127/200] NGF-342 fontawesome added to sass and icon added to buttons and files --- css/style.css | 4972 +++++++++++++++++++++++- sass/base/_variables.scss | 6 +- sass/components/_buttons.scss | 47 +- sass/components/_files.scss | 76 +- sass/fontawesome/_animated.scss | 20 + sass/fontawesome/_bordered-pulled.scss | 20 + sass/fontawesome/_core.scss | 16 + sass/fontawesome/_fixed-width.scss | 6 + sass/fontawesome/_icons.scss | 1148 ++++++ sass/fontawesome/_larger.scss | 23 + sass/fontawesome/_list.scss | 18 + sass/fontawesome/_mixins.scss | 57 + sass/fontawesome/_rotated-flipped.scss | 23 + sass/fontawesome/_screen-reader.scss | 5 + sass/fontawesome/_shims.scss | 2066 ++++++++++ sass/fontawesome/_stacked.scss | 31 + sass/fontawesome/_variables.scss | 1161 ++++++ sass/fontawesome/brands.scss | 21 + sass/fontawesome/fontawesome.scss | 16 + sass/fontawesome/regular.scss | 22 + sass/fontawesome/solid.scss | 23 + sass/fontawesome/v4-shims.scss | 6 + sass/style.scss | 5 +- webfonts/fa-brands-400.eot | Bin 0 -> 116516 bytes webfonts/fa-brands-400.svg | 1148 ++++++ webfonts/fa-brands-400.ttf | Bin 0 -> 116280 bytes webfonts/fa-brands-400.woff | Bin 0 -> 74928 bytes webfonts/fa-brands-400.woff2 | Bin 0 -> 64144 bytes webfonts/fa-regular-400.eot | Bin 0 -> 40644 bytes webfonts/fa-regular-400.svg | 467 +++ webfonts/fa-regular-400.ttf | Bin 0 -> 40416 bytes webfonts/fa-regular-400.woff | Bin 0 -> 18156 bytes webfonts/fa-regular-400.woff2 | Bin 0 -> 14888 bytes webfonts/fa-solid-900.eot | Bin 0 -> 168396 bytes webfonts/fa-solid-900.svg | 2312 +++++++++++ webfonts/fa-solid-900.ttf | Bin 0 -> 168176 bytes webfonts/fa-solid-900.woff | Bin 0 -> 80484 bytes webfonts/fa-solid-900.woff2 | Bin 0 -> 62472 bytes 38 files changed, 13645 insertions(+), 70 deletions(-) create mode 100644 sass/fontawesome/_animated.scss create mode 100644 sass/fontawesome/_bordered-pulled.scss create mode 100644 sass/fontawesome/_core.scss create mode 100644 sass/fontawesome/_fixed-width.scss create mode 100644 sass/fontawesome/_icons.scss create mode 100644 sass/fontawesome/_larger.scss create mode 100644 sass/fontawesome/_list.scss create mode 100644 sass/fontawesome/_mixins.scss create mode 100644 sass/fontawesome/_rotated-flipped.scss create mode 100644 sass/fontawesome/_screen-reader.scss create mode 100644 sass/fontawesome/_shims.scss create mode 100644 sass/fontawesome/_stacked.scss create mode 100644 sass/fontawesome/_variables.scss create mode 100644 sass/fontawesome/brands.scss create mode 100644 sass/fontawesome/fontawesome.scss create mode 100644 sass/fontawesome/regular.scss create mode 100644 sass/fontawesome/solid.scss create mode 100644 sass/fontawesome/v4-shims.scss create mode 100644 webfonts/fa-brands-400.eot create mode 100644 webfonts/fa-brands-400.svg create mode 100644 webfonts/fa-brands-400.ttf create mode 100644 webfonts/fa-brands-400.woff create mode 100644 webfonts/fa-brands-400.woff2 create mode 100644 webfonts/fa-regular-400.eot create mode 100644 webfonts/fa-regular-400.svg create mode 100644 webfonts/fa-regular-400.ttf create mode 100644 webfonts/fa-regular-400.woff create mode 100644 webfonts/fa-regular-400.woff2 create mode 100644 webfonts/fa-solid-900.eot create mode 100644 webfonts/fa-solid-900.svg create mode 100644 webfonts/fa-solid-900.ttf create mode 100644 webfonts/fa-solid-900.woff create mode 100644 webfonts/fa-solid-900.woff2 diff --git a/css/style.css b/css/style.css index eafc8ec..585669d 100644 --- a/css/style.css +++ b/css/style.css @@ -1,5 +1,4856 @@ @charset "UTF-8"; +.fa, +.fas, +.field-add-more-submit:before, +.field--type-file .file:before, +.far, +.fal, +.fab { + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + display: inline-block; + font-style: normal; + font-variant: normal; + text-rendering: auto; + line-height: 1; +} + +.fa-lg { + font-size: 1.33333em; + line-height: 0.75em; + vertical-align: -.0667em; +} + +.fa-xs { + font-size: .75em; +} + +.fa-sm { + font-size: .875em; +} + +.fa-1x { + font-size: 1em; +} + +.fa-2x { + font-size: 2em; +} + +.fa-3x { + font-size: 3em; +} + +.fa-4x { + font-size: 4em; +} + +.fa-5x { + font-size: 5em; +} + +.fa-6x { + font-size: 6em; +} + +.fa-7x { + font-size: 7em; +} + +.fa-8x { + font-size: 8em; +} + +.fa-9x { + font-size: 9em; +} + +.fa-10x { + font-size: 10em; +} + +.fa-fw { + text-align: center; + width: 1.25em; +} + +.fa-ul { + list-style-type: none; + margin-left: 2.5em; + padding-left: 0; +} + +.fa-ul > li { + position: relative; +} + +.fa-li { + left: -2em; + position: absolute; + text-align: center; + width: 2em; + line-height: inherit; +} + +.fa-border { + border: solid 0.08em #eee; + border-radius: .1em; + padding: .2em .25em .15em; +} + +.fa-pull-left { + float: left; +} + +.fa-pull-right { + float: right; +} + +.fa.fa-pull-left, +.fas.fa-pull-left, +.fa-pull-left.field-add-more-submit:before, +.field--type-file .fa-pull-left.file:before, +.far.fa-pull-left, +.fal.fa-pull-left, +.fab.fa-pull-left { + margin-right: .3em; +} + +.fa.fa-pull-right, +.fas.fa-pull-right, +.fa-pull-right.field-add-more-submit:before, +.field--type-file .fa-pull-right.file:before, +.far.fa-pull-right, +.fal.fa-pull-right, +.fab.fa-pull-right { + margin-left: .3em; +} + +.fa-spin { + -webkit-animation: fa-spin 2s infinite linear; + animation: fa-spin 2s infinite linear; +} + +.fa-pulse { + -webkit-animation: fa-spin 1s infinite steps(8); + animation: fa-spin 1s infinite steps(8); +} + +@-webkit-keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } +} + +@keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } +} + +.fa-rotate-90 { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)"; + -webkit-transform: rotate(90deg); + transform: rotate(90deg); +} + +.fa-rotate-180 { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)"; + -webkit-transform: rotate(180deg); + transform: rotate(180deg); +} + +.fa-rotate-270 { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)"; + -webkit-transform: rotate(270deg); + transform: rotate(270deg); +} + +.fa-flip-horizontal { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)"; + -webkit-transform: scale(-1, 1); + transform: scale(-1, 1); +} + +.fa-flip-vertical { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"; + -webkit-transform: scale(1, -1); + transform: scale(1, -1); +} + +.fa-flip-horizontal.fa-flip-vertical { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"; + -webkit-transform: scale(-1, -1); + transform: scale(-1, -1); +} + +:root .fa-rotate-90, +:root .fa-rotate-180, +:root .fa-rotate-270, +:root .fa-flip-horizontal, +:root .fa-flip-vertical { + -webkit-filter: none; + filter: none; +} + +.fa-stack { + display: inline-block; + height: 2em; + line-height: 2em; + position: relative; + vertical-align: middle; + width: 2em; +} + +.fa-stack-1x, +.fa-stack-2x { + left: 0; + position: absolute; + text-align: center; + width: 100%; +} + +.fa-stack-1x { + line-height: inherit; +} + +.fa-stack-2x { + font-size: 2em; +} + +.fa-inverse { + color: #fff; +} + +.fa-500px:before { + content: "\f26e"; +} + +.fa-accessible-icon:before { + content: "\f368"; +} + +.fa-accusoft:before { + content: "\f369"; +} + +.fa-address-book:before { + content: "\f2b9"; +} + +.fa-address-card:before { + content: "\f2bb"; +} + +.fa-adjust:before { + content: "\f042"; +} + +.fa-adn:before { + content: "\f170"; +} + +.fa-adversal:before { + content: "\f36a"; +} + +.fa-affiliatetheme:before { + content: "\f36b"; +} + +.fa-air-freshener:before { + content: "\f5d0"; +} + +.fa-algolia:before { + content: "\f36c"; +} + +.fa-align-center:before { + content: "\f037"; +} + +.fa-align-justify:before { + content: "\f039"; +} + +.fa-align-left:before { + content: "\f036"; +} + +.fa-align-right:before { + content: "\f038"; +} + +.fa-allergies:before { + content: "\f461"; +} + +.fa-amazon:before { + content: "\f270"; +} + +.fa-amazon-pay:before { + content: "\f42c"; +} + +.fa-ambulance:before { + content: "\f0f9"; +} + +.fa-american-sign-language-interpreting:before { + content: "\f2a3"; +} + +.fa-amilia:before { + content: "\f36d"; +} + +.fa-anchor:before { + content: "\f13d"; +} + +.fa-android:before { + content: "\f17b"; +} + +.fa-angellist:before { + content: "\f209"; +} + +.fa-angle-double-down:before { + content: "\f103"; +} + +.fa-angle-double-left:before { + content: "\f100"; +} + +.fa-angle-double-right:before { + content: "\f101"; +} + +.fa-angle-double-up:before { + content: "\f102"; +} + +.fa-angle-down:before { + content: "\f107"; +} + +.fa-angle-left:before { + content: "\f104"; +} + +.fa-angle-right:before { + content: "\f105"; +} + +.fa-angle-up:before { + content: "\f106"; +} + +.fa-angry:before { + content: "\f556"; +} + +.fa-angrycreative:before { + content: "\f36e"; +} + +.fa-angular:before { + content: "\f420"; +} + +.fa-app-store:before { + content: "\f36f"; +} + +.fa-app-store-ios:before { + content: "\f370"; +} + +.fa-apper:before { + content: "\f371"; +} + +.fa-apple:before { + content: "\f179"; +} + +.fa-apple-alt:before { + content: "\f5d1"; +} + +.fa-apple-pay:before { + content: "\f415"; +} + +.fa-archive:before { + content: "\f187"; +} + +.fa-archway:before { + content: "\f557"; +} + +.fa-arrow-alt-circle-down:before { + content: "\f358"; +} + +.fa-arrow-alt-circle-left:before { + content: "\f359"; +} + +.fa-arrow-alt-circle-right:before { + content: "\f35a"; +} + +.fa-arrow-alt-circle-up:before { + content: "\f35b"; +} + +.fa-arrow-circle-down:before { + content: "\f0ab"; +} + +.fa-arrow-circle-left:before { + content: "\f0a8"; +} + +.fa-arrow-circle-right:before { + content: "\f0a9"; +} + +.fa-arrow-circle-up:before { + content: "\f0aa"; +} + +.fa-arrow-down:before { + content: "\f063"; +} + +.fa-arrow-left:before { + content: "\f060"; +} + +.fa-arrow-right:before { + content: "\f061"; +} + +.fa-arrow-up:before { + content: "\f062"; +} + +.fa-arrows-alt:before { + content: "\f0b2"; +} + +.fa-arrows-alt-h:before { + content: "\f337"; +} + +.fa-arrows-alt-v:before { + content: "\f338"; +} + +.fa-assistive-listening-systems:before { + content: "\f2a2"; +} + +.fa-asterisk:before { + content: "\f069"; +} + +.fa-asymmetrik:before { + content: "\f372"; +} + +.fa-at:before { + content: "\f1fa"; +} + +.fa-atlas:before { + content: "\f558"; +} + +.fa-atom:before { + content: "\f5d2"; +} + +.fa-audible:before { + content: "\f373"; +} + +.fa-audio-description:before { + content: "\f29e"; +} + +.fa-autoprefixer:before { + content: "\f41c"; +} + +.fa-avianex:before { + content: "\f374"; +} + +.fa-aviato:before { + content: "\f421"; +} + +.fa-award:before { + content: "\f559"; +} + +.fa-aws:before { + content: "\f375"; +} + +.fa-backspace:before { + content: "\f55a"; +} + +.fa-backward:before { + content: "\f04a"; +} + +.fa-balance-scale:before { + content: "\f24e"; +} + +.fa-ban:before { + content: "\f05e"; +} + +.fa-band-aid:before { + content: "\f462"; +} + +.fa-bandcamp:before { + content: "\f2d5"; +} + +.fa-barcode:before { + content: "\f02a"; +} + +.fa-bars:before { + content: "\f0c9"; +} + +.fa-baseball-ball:before { + content: "\f433"; +} + +.fa-basketball-ball:before { + content: "\f434"; +} + +.fa-bath:before { + content: "\f2cd"; +} + +.fa-battery-empty:before { + content: "\f244"; +} + +.fa-battery-full:before { + content: "\f240"; +} + +.fa-battery-half:before { + content: "\f242"; +} + +.fa-battery-quarter:before { + content: "\f243"; +} + +.fa-battery-three-quarters:before { + content: "\f241"; +} + +.fa-bed:before { + content: "\f236"; +} + +.fa-beer:before { + content: "\f0fc"; +} + +.fa-behance:before { + content: "\f1b4"; +} + +.fa-behance-square:before { + content: "\f1b5"; +} + +.fa-bell:before { + content: "\f0f3"; +} + +.fa-bell-slash:before { + content: "\f1f6"; +} + +.fa-bezier-curve:before { + content: "\f55b"; +} + +.fa-bicycle:before { + content: "\f206"; +} + +.fa-bimobject:before { + content: "\f378"; +} + +.fa-binoculars:before { + content: "\f1e5"; +} + +.fa-birthday-cake:before { + content: "\f1fd"; +} + +.fa-bitbucket:before { + content: "\f171"; +} + +.fa-bitcoin:before { + content: "\f379"; +} + +.fa-bity:before { + content: "\f37a"; +} + +.fa-black-tie:before { + content: "\f27e"; +} + +.fa-blackberry:before { + content: "\f37b"; +} + +.fa-blender:before { + content: "\f517"; +} + +.fa-blind:before { + content: "\f29d"; +} + +.fa-blogger:before { + content: "\f37c"; +} + +.fa-blogger-b:before { + content: "\f37d"; +} + +.fa-bluetooth:before { + content: "\f293"; +} + +.fa-bluetooth-b:before { + content: "\f294"; +} + +.fa-bold:before { + content: "\f032"; +} + +.fa-bolt:before { + content: "\f0e7"; +} + +.fa-bomb:before { + content: "\f1e2"; +} + +.fa-bone:before { + content: "\f5d7"; +} + +.fa-bong:before { + content: "\f55c"; +} + +.fa-book:before { + content: "\f02d"; +} + +.fa-book-open:before { + content: "\f518"; +} + +.fa-book-reader:before { + content: "\f5da"; +} + +.fa-bookmark:before { + content: "\f02e"; +} + +.fa-bowling-ball:before { + content: "\f436"; +} + +.fa-box:before { + content: "\f466"; +} + +.fa-box-open:before { + content: "\f49e"; +} + +.fa-boxes:before { + content: "\f468"; +} + +.fa-braille:before { + content: "\f2a1"; +} + +.fa-brain:before { + content: "\f5dc"; +} + +.fa-briefcase:before { + content: "\f0b1"; +} + +.fa-briefcase-medical:before { + content: "\f469"; +} + +.fa-broadcast-tower:before { + content: "\f519"; +} + +.fa-broom:before { + content: "\f51a"; +} + +.fa-brush:before { + content: "\f55d"; +} + +.fa-btc:before { + content: "\f15a"; +} + +.fa-bug:before { + content: "\f188"; +} + +.fa-building:before { + content: "\f1ad"; +} + +.fa-bullhorn:before { + content: "\f0a1"; +} + +.fa-bullseye:before { + content: "\f140"; +} + +.fa-burn:before { + content: "\f46a"; +} + +.fa-buromobelexperte:before { + content: "\f37f"; +} + +.fa-bus:before { + content: "\f207"; +} + +.fa-bus-alt:before { + content: "\f55e"; +} + +.fa-buysellads:before { + content: "\f20d"; +} + +.fa-calculator:before { + content: "\f1ec"; +} + +.fa-calendar:before { + content: "\f133"; +} + +.fa-calendar-alt:before { + content: "\f073"; +} + +.fa-calendar-check:before { + content: "\f274"; +} + +.fa-calendar-minus:before { + content: "\f272"; +} + +.fa-calendar-plus:before { + content: "\f271"; +} + +.fa-calendar-times:before { + content: "\f273"; +} + +.fa-camera:before { + content: "\f030"; +} + +.fa-camera-retro:before { + content: "\f083"; +} + +.fa-cannabis:before { + content: "\f55f"; +} + +.fa-capsules:before { + content: "\f46b"; +} + +.fa-car:before { + content: "\f1b9"; +} + +.fa-car-alt:before { + content: "\f5de"; +} + +.fa-car-battery:before { + content: "\f5df"; +} + +.fa-car-crash:before { + content: "\f5e1"; +} + +.fa-car-side:before { + content: "\f5e4"; +} + +.fa-caret-down:before { + content: "\f0d7"; +} + +.fa-caret-left:before { + content: "\f0d9"; +} + +.fa-caret-right:before { + content: "\f0da"; +} + +.fa-caret-square-down:before { + content: "\f150"; +} + +.fa-caret-square-left:before { + content: "\f191"; +} + +.fa-caret-square-right:before { + content: "\f152"; +} + +.fa-caret-square-up:before { + content: "\f151"; +} + +.fa-caret-up:before { + content: "\f0d8"; +} + +.fa-cart-arrow-down:before { + content: "\f218"; +} + +.fa-cart-plus:before { + content: "\f217"; +} + +.fa-cc-amazon-pay:before { + content: "\f42d"; +} + +.fa-cc-amex:before { + content: "\f1f3"; +} + +.fa-cc-apple-pay:before { + content: "\f416"; +} + +.fa-cc-diners-club:before { + content: "\f24c"; +} + +.fa-cc-discover:before { + content: "\f1f2"; +} + +.fa-cc-jcb:before { + content: "\f24b"; +} + +.fa-cc-mastercard:before { + content: "\f1f1"; +} + +.fa-cc-paypal:before { + content: "\f1f4"; +} + +.fa-cc-stripe:before { + content: "\f1f5"; +} + +.fa-cc-visa:before { + content: "\f1f0"; +} + +.fa-centercode:before { + content: "\f380"; +} + +.fa-certificate:before { + content: "\f0a3"; +} + +.fa-chalkboard:before { + content: "\f51b"; +} + +.fa-chalkboard-teacher:before { + content: "\f51c"; +} + +.fa-charging-station:before { + content: "\f5e7"; +} + +.fa-chart-area:before { + content: "\f1fe"; +} + +.fa-chart-bar:before { + content: "\f080"; +} + +.fa-chart-line:before { + content: "\f201"; +} + +.fa-chart-pie:before { + content: "\f200"; +} + +.fa-check:before { + content: "\f00c"; +} + +.fa-check-circle:before { + content: "\f058"; +} + +.fa-check-double:before { + content: "\f560"; +} + +.fa-check-square:before { + content: "\f14a"; +} + +.fa-chess:before { + content: "\f439"; +} + +.fa-chess-bishop:before { + content: "\f43a"; +} + +.fa-chess-board:before { + content: "\f43c"; +} + +.fa-chess-king:before { + content: "\f43f"; +} + +.fa-chess-knight:before { + content: "\f441"; +} + +.fa-chess-pawn:before { + content: "\f443"; +} + +.fa-chess-queen:before { + content: "\f445"; +} + +.fa-chess-rook:before { + content: "\f447"; +} + +.fa-chevron-circle-down:before { + content: "\f13a"; +} + +.fa-chevron-circle-left:before { + content: "\f137"; +} + +.fa-chevron-circle-right:before { + content: "\f138"; +} + +.fa-chevron-circle-up:before { + content: "\f139"; +} + +.fa-chevron-down:before { + content: "\f078"; +} + +.fa-chevron-left:before { + content: "\f053"; +} + +.fa-chevron-right:before { + content: "\f054"; +} + +.fa-chevron-up:before { + content: "\f077"; +} + +.fa-child:before { + content: "\f1ae"; +} + +.fa-chrome:before { + content: "\f268"; +} + +.fa-church:before { + content: "\f51d"; +} + +.fa-circle:before { + content: "\f111"; +} + +.fa-circle-notch:before { + content: "\f1ce"; +} + +.fa-clipboard:before { + content: "\f328"; +} + +.fa-clipboard-check:before { + content: "\f46c"; +} + +.fa-clipboard-list:before { + content: "\f46d"; +} + +.fa-clock:before { + content: "\f017"; +} + +.fa-clone:before { + content: "\f24d"; +} + +.fa-closed-captioning:before { + content: "\f20a"; +} + +.fa-cloud:before { + content: "\f0c2"; +} + +.fa-cloud-download-alt:before { + content: "\f381"; +} + +.fa-cloud-upload-alt:before { + content: "\f382"; +} + +.fa-cloudscale:before { + content: "\f383"; +} + +.fa-cloudsmith:before { + content: "\f384"; +} + +.fa-cloudversify:before { + content: "\f385"; +} + +.fa-cocktail:before { + content: "\f561"; +} + +.fa-code:before { + content: "\f121"; +} + +.fa-code-branch:before { + content: "\f126"; +} + +.fa-codepen:before { + content: "\f1cb"; +} + +.fa-codiepie:before { + content: "\f284"; +} + +.fa-coffee:before { + content: "\f0f4"; +} + +.fa-cog:before { + content: "\f013"; +} + +.fa-cogs:before { + content: "\f085"; +} + +.fa-coins:before { + content: "\f51e"; +} + +.fa-columns:before { + content: "\f0db"; +} + +.fa-comment:before { + content: "\f075"; +} + +.fa-comment-alt:before { + content: "\f27a"; +} + +.fa-comment-dots:before { + content: "\f4ad"; +} + +.fa-comment-slash:before { + content: "\f4b3"; +} + +.fa-comments:before { + content: "\f086"; +} + +.fa-compact-disc:before { + content: "\f51f"; +} + +.fa-compass:before { + content: "\f14e"; +} + +.fa-compress:before { + content: "\f066"; +} + +.fa-concierge-bell:before { + content: "\f562"; +} + +.fa-connectdevelop:before { + content: "\f20e"; +} + +.fa-contao:before { + content: "\f26d"; +} + +.fa-cookie:before { + content: "\f563"; +} + +.fa-cookie-bite:before { + content: "\f564"; +} + +.fa-copy:before { + content: "\f0c5"; +} + +.fa-copyright:before { + content: "\f1f9"; +} + +.fa-couch:before { + content: "\f4b8"; +} + +.fa-cpanel:before { + content: "\f388"; +} + +.fa-creative-commons:before { + content: "\f25e"; +} + +.fa-creative-commons-by:before { + content: "\f4e7"; +} + +.fa-creative-commons-nc:before { + content: "\f4e8"; +} + +.fa-creative-commons-nc-eu:before { + content: "\f4e9"; +} + +.fa-creative-commons-nc-jp:before { + content: "\f4ea"; +} + +.fa-creative-commons-nd:before { + content: "\f4eb"; +} + +.fa-creative-commons-pd:before { + content: "\f4ec"; +} + +.fa-creative-commons-pd-alt:before { + content: "\f4ed"; +} + +.fa-creative-commons-remix:before { + content: "\f4ee"; +} + +.fa-creative-commons-sa:before { + content: "\f4ef"; +} + +.fa-creative-commons-sampling:before { + content: "\f4f0"; +} + +.fa-creative-commons-sampling-plus:before { + content: "\f4f1"; +} + +.fa-creative-commons-share:before { + content: "\f4f2"; +} + +.fa-credit-card:before { + content: "\f09d"; +} + +.fa-crop:before { + content: "\f125"; +} + +.fa-crop-alt:before { + content: "\f565"; +} + +.fa-crosshairs:before { + content: "\f05b"; +} + +.fa-crow:before { + content: "\f520"; +} + +.fa-crown:before { + content: "\f521"; +} + +.fa-css3:before { + content: "\f13c"; +} + +.fa-css3-alt:before { + content: "\f38b"; +} + +.fa-cube:before { + content: "\f1b2"; +} + +.fa-cubes:before { + content: "\f1b3"; +} + +.fa-cut:before { + content: "\f0c4"; +} + +.fa-cuttlefish:before { + content: "\f38c"; +} + +.fa-d-and-d:before { + content: "\f38d"; +} + +.fa-dashcube:before { + content: "\f210"; +} + +.fa-database:before { + content: "\f1c0"; +} + +.fa-deaf:before { + content: "\f2a4"; +} + +.fa-delicious:before { + content: "\f1a5"; +} + +.fa-deploydog:before { + content: "\f38e"; +} + +.fa-deskpro:before { + content: "\f38f"; +} + +.fa-desktop:before { + content: "\f108"; +} + +.fa-deviantart:before { + content: "\f1bd"; +} + +.fa-diagnoses:before { + content: "\f470"; +} + +.fa-dice:before { + content: "\f522"; +} + +.fa-dice-five:before { + content: "\f523"; +} + +.fa-dice-four:before { + content: "\f524"; +} + +.fa-dice-one:before { + content: "\f525"; +} + +.fa-dice-six:before { + content: "\f526"; +} + +.fa-dice-three:before { + content: "\f527"; +} + +.fa-dice-two:before { + content: "\f528"; +} + +.fa-digg:before { + content: "\f1a6"; +} + +.fa-digital-ocean:before { + content: "\f391"; +} + +.fa-digital-tachograph:before { + content: "\f566"; +} + +.fa-directions:before { + content: "\f5eb"; +} + +.fa-discord:before { + content: "\f392"; +} + +.fa-discourse:before { + content: "\f393"; +} + +.fa-divide:before { + content: "\f529"; +} + +.fa-dizzy:before { + content: "\f567"; +} + +.fa-dna:before { + content: "\f471"; +} + +.fa-dochub:before { + content: "\f394"; +} + +.fa-docker:before { + content: "\f395"; +} + +.fa-dollar-sign:before { + content: "\f155"; +} + +.fa-dolly:before { + content: "\f472"; +} + +.fa-dolly-flatbed:before { + content: "\f474"; +} + +.fa-donate:before { + content: "\f4b9"; +} + +.fa-door-closed:before { + content: "\f52a"; +} + +.fa-door-open:before { + content: "\f52b"; +} + +.fa-dot-circle:before { + content: "\f192"; +} + +.fa-dove:before { + content: "\f4ba"; +} + +.fa-download:before { + content: "\f019"; +} + +.fa-draft2digital:before { + content: "\f396"; +} + +.fa-drafting-compass:before { + content: "\f568"; +} + +.fa-draw-polygon:before { + content: "\f5ee"; +} + +.fa-dribbble:before { + content: "\f17d"; +} + +.fa-dribbble-square:before { + content: "\f397"; +} + +.fa-dropbox:before { + content: "\f16b"; +} + +.fa-drum:before { + content: "\f569"; +} + +.fa-drum-steelpan:before { + content: "\f56a"; +} + +.fa-drupal:before { + content: "\f1a9"; +} + +.fa-dumbbell:before { + content: "\f44b"; +} + +.fa-dyalog:before { + content: "\f399"; +} + +.fa-earlybirds:before { + content: "\f39a"; +} + +.fa-ebay:before { + content: "\f4f4"; +} + +.fa-edge:before { + content: "\f282"; +} + +.fa-edit:before { + content: "\f044"; +} + +.fa-eject:before { + content: "\f052"; +} + +.fa-elementor:before { + content: "\f430"; +} + +.fa-ellipsis-h:before { + content: "\f141"; +} + +.fa-ellipsis-v:before { + content: "\f142"; +} + +.fa-ello:before { + content: "\f5f1"; +} + +.fa-ember:before { + content: "\f423"; +} + +.fa-empire:before { + content: "\f1d1"; +} + +.fa-envelope:before { + content: "\f0e0"; +} + +.fa-envelope-open:before { + content: "\f2b6"; +} + +.fa-envelope-square:before { + content: "\f199"; +} + +.fa-envira:before { + content: "\f299"; +} + +.fa-equals:before { + content: "\f52c"; +} + +.fa-eraser:before { + content: "\f12d"; +} + +.fa-erlang:before { + content: "\f39d"; +} + +.fa-ethereum:before { + content: "\f42e"; +} + +.fa-etsy:before { + content: "\f2d7"; +} + +.fa-euro-sign:before { + content: "\f153"; +} + +.fa-exchange-alt:before { + content: "\f362"; +} + +.fa-exclamation:before { + content: "\f12a"; +} + +.fa-exclamation-circle:before { + content: "\f06a"; +} + +.fa-exclamation-triangle:before { + content: "\f071"; +} + +.fa-expand:before { + content: "\f065"; +} + +.fa-expand-arrows-alt:before { + content: "\f31e"; +} + +.fa-expeditedssl:before { + content: "\f23e"; +} + +.fa-external-link-alt:before { + content: "\f35d"; +} + +.fa-external-link-square-alt:before { + content: "\f360"; +} + +.fa-eye:before { + content: "\f06e"; +} + +.fa-eye-dropper:before { + content: "\f1fb"; +} + +.fa-eye-slash:before { + content: "\f070"; +} + +.fa-facebook:before { + content: "\f09a"; +} + +.fa-facebook-f:before { + content: "\f39e"; +} + +.fa-facebook-messenger:before { + content: "\f39f"; +} + +.fa-facebook-square:before { + content: "\f082"; +} + +.fa-fast-backward:before { + content: "\f049"; +} + +.fa-fast-forward:before { + content: "\f050"; +} + +.fa-fax:before { + content: "\f1ac"; +} + +.fa-feather:before { + content: "\f52d"; +} + +.fa-feather-alt:before { + content: "\f56b"; +} + +.fa-female:before { + content: "\f182"; +} + +.fa-fighter-jet:before { + content: "\f0fb"; +} + +.fa-file:before { + content: "\f15b"; +} + +.fa-file-alt:before { + content: "\f15c"; +} + +.fa-file-archive:before { + content: "\f1c6"; +} + +.fa-file-audio:before { + content: "\f1c7"; +} + +.fa-file-code:before { + content: "\f1c9"; +} + +.fa-file-contract:before { + content: "\f56c"; +} + +.fa-file-download:before { + content: "\f56d"; +} + +.fa-file-excel:before { + content: "\f1c3"; +} + +.fa-file-export:before { + content: "\f56e"; +} + +.fa-file-image:before { + content: "\f1c5"; +} + +.fa-file-import:before { + content: "\f56f"; +} + +.fa-file-invoice:before { + content: "\f570"; +} + +.fa-file-invoice-dollar:before { + content: "\f571"; +} + +.fa-file-medical:before { + content: "\f477"; +} + +.fa-file-medical-alt:before { + content: "\f478"; +} + +.fa-file-pdf:before { + content: "\f1c1"; +} + +.fa-file-powerpoint:before { + content: "\f1c4"; +} + +.fa-file-prescription:before { + content: "\f572"; +} + +.fa-file-signature:before { + content: "\f573"; +} + +.fa-file-upload:before { + content: "\f574"; +} + +.fa-file-video:before { + content: "\f1c8"; +} + +.fa-file-word:before { + content: "\f1c2"; +} + +.fa-fill:before { + content: "\f575"; +} + +.fa-fill-drip:before { + content: "\f576"; +} + +.fa-film:before { + content: "\f008"; +} + +.fa-filter:before { + content: "\f0b0"; +} + +.fa-fingerprint:before { + content: "\f577"; +} + +.fa-fire:before { + content: "\f06d"; +} + +.fa-fire-extinguisher:before { + content: "\f134"; +} + +.fa-firefox:before { + content: "\f269"; +} + +.fa-first-aid:before { + content: "\f479"; +} + +.fa-first-order:before { + content: "\f2b0"; +} + +.fa-first-order-alt:before { + content: "\f50a"; +} + +.fa-firstdraft:before { + content: "\f3a1"; +} + +.fa-fish:before { + content: "\f578"; +} + +.fa-flag:before { + content: "\f024"; +} + +.fa-flag-checkered:before { + content: "\f11e"; +} + +.fa-flask:before { + content: "\f0c3"; +} + +.fa-flickr:before { + content: "\f16e"; +} + +.fa-flipboard:before { + content: "\f44d"; +} + +.fa-flushed:before { + content: "\f579"; +} + +.fa-fly:before { + content: "\f417"; +} + +.fa-folder:before { + content: "\f07b"; +} + +.fa-folder-open:before { + content: "\f07c"; +} + +.fa-font:before { + content: "\f031"; +} + +.fa-font-awesome:before { + content: "\f2b4"; +} + +.fa-font-awesome-alt:before { + content: "\f35c"; +} + +.fa-font-awesome-flag:before { + content: "\f425"; +} + +.fa-font-awesome-logo-full:before { + content: "\f4e6"; +} + +.fa-fonticons:before { + content: "\f280"; +} + +.fa-fonticons-fi:before { + content: "\f3a2"; +} + +.fa-football-ball:before { + content: "\f44e"; +} + +.fa-fort-awesome:before { + content: "\f286"; +} + +.fa-fort-awesome-alt:before { + content: "\f3a3"; +} + +.fa-forumbee:before { + content: "\f211"; +} + +.fa-forward:before { + content: "\f04e"; +} + +.fa-foursquare:before { + content: "\f180"; +} + +.fa-free-code-camp:before { + content: "\f2c5"; +} + +.fa-freebsd:before { + content: "\f3a4"; +} + +.fa-frog:before { + content: "\f52e"; +} + +.fa-frown:before { + content: "\f119"; +} + +.fa-frown-open:before { + content: "\f57a"; +} + +.fa-fulcrum:before { + content: "\f50b"; +} + +.fa-futbol:before { + content: "\f1e3"; +} + +.fa-galactic-republic:before { + content: "\f50c"; +} + +.fa-galactic-senate:before { + content: "\f50d"; +} + +.fa-gamepad:before { + content: "\f11b"; +} + +.fa-gas-pump:before { + content: "\f52f"; +} + +.fa-gavel:before { + content: "\f0e3"; +} + +.fa-gem:before { + content: "\f3a5"; +} + +.fa-genderless:before { + content: "\f22d"; +} + +.fa-get-pocket:before { + content: "\f265"; +} + +.fa-gg:before { + content: "\f260"; +} + +.fa-gg-circle:before { + content: "\f261"; +} + +.fa-gift:before { + content: "\f06b"; +} + +.fa-git:before { + content: "\f1d3"; +} + +.fa-git-square:before { + content: "\f1d2"; +} + +.fa-github:before { + content: "\f09b"; +} + +.fa-github-alt:before { + content: "\f113"; +} + +.fa-github-square:before { + content: "\f092"; +} + +.fa-gitkraken:before { + content: "\f3a6"; +} + +.fa-gitlab:before { + content: "\f296"; +} + +.fa-gitter:before { + content: "\f426"; +} + +.fa-glass-martini:before { + content: "\f000"; +} + +.fa-glass-martini-alt:before { + content: "\f57b"; +} + +.fa-glasses:before { + content: "\f530"; +} + +.fa-glide:before { + content: "\f2a5"; +} + +.fa-glide-g:before { + content: "\f2a6"; +} + +.fa-globe:before { + content: "\f0ac"; +} + +.fa-globe-africa:before { + content: "\f57c"; +} + +.fa-globe-americas:before { + content: "\f57d"; +} + +.fa-globe-asia:before { + content: "\f57e"; +} + +.fa-gofore:before { + content: "\f3a7"; +} + +.fa-golf-ball:before { + content: "\f450"; +} + +.fa-goodreads:before { + content: "\f3a8"; +} + +.fa-goodreads-g:before { + content: "\f3a9"; +} + +.fa-google:before { + content: "\f1a0"; +} + +.fa-google-drive:before { + content: "\f3aa"; +} + +.fa-google-play:before { + content: "\f3ab"; +} + +.fa-google-plus:before { + content: "\f2b3"; +} + +.fa-google-plus-g:before { + content: "\f0d5"; +} + +.fa-google-plus-square:before { + content: "\f0d4"; +} + +.fa-google-wallet:before { + content: "\f1ee"; +} + +.fa-graduation-cap:before { + content: "\f19d"; +} + +.fa-gratipay:before { + content: "\f184"; +} + +.fa-grav:before { + content: "\f2d6"; +} + +.fa-greater-than:before { + content: "\f531"; +} + +.fa-greater-than-equal:before { + content: "\f532"; +} + +.fa-grimace:before { + content: "\f57f"; +} + +.fa-grin:before { + content: "\f580"; +} + +.fa-grin-alt:before { + content: "\f581"; +} + +.fa-grin-beam:before { + content: "\f582"; +} + +.fa-grin-beam-sweat:before { + content: "\f583"; +} + +.fa-grin-hearts:before { + content: "\f584"; +} + +.fa-grin-squint:before { + content: "\f585"; +} + +.fa-grin-squint-tears:before { + content: "\f586"; +} + +.fa-grin-stars:before { + content: "\f587"; +} + +.fa-grin-tears:before { + content: "\f588"; +} + +.fa-grin-tongue:before { + content: "\f589"; +} + +.fa-grin-tongue-squint:before { + content: "\f58a"; +} + +.fa-grin-tongue-wink:before { + content: "\f58b"; +} + +.fa-grin-wink:before { + content: "\f58c"; +} + +.fa-grip-horizontal:before { + content: "\f58d"; +} + +.fa-grip-vertical:before { + content: "\f58e"; +} + +.fa-gripfire:before { + content: "\f3ac"; +} + +.fa-grunt:before { + content: "\f3ad"; +} + +.fa-gulp:before { + content: "\f3ae"; +} + +.fa-h-square:before { + content: "\f0fd"; +} + +.fa-hacker-news:before { + content: "\f1d4"; +} + +.fa-hacker-news-square:before { + content: "\f3af"; +} + +.fa-hackerrank:before { + content: "\f5f7"; +} + +.fa-hand-holding:before { + content: "\f4bd"; +} + +.fa-hand-holding-heart:before { + content: "\f4be"; +} + +.fa-hand-holding-usd:before { + content: "\f4c0"; +} + +.fa-hand-lizard:before { + content: "\f258"; +} + +.fa-hand-paper:before { + content: "\f256"; +} + +.fa-hand-peace:before { + content: "\f25b"; +} + +.fa-hand-point-down:before { + content: "\f0a7"; +} + +.fa-hand-point-left:before { + content: "\f0a5"; +} + +.fa-hand-point-right:before { + content: "\f0a4"; +} + +.fa-hand-point-up:before { + content: "\f0a6"; +} + +.fa-hand-pointer:before { + content: "\f25a"; +} + +.fa-hand-rock:before { + content: "\f255"; +} + +.fa-hand-scissors:before { + content: "\f257"; +} + +.fa-hand-spock:before { + content: "\f259"; +} + +.fa-hands:before { + content: "\f4c2"; +} + +.fa-hands-helping:before { + content: "\f4c4"; +} + +.fa-handshake:before { + content: "\f2b5"; +} + +.fa-hashtag:before { + content: "\f292"; +} + +.fa-hdd:before { + content: "\f0a0"; +} + +.fa-heading:before { + content: "\f1dc"; +} + +.fa-headphones:before { + content: "\f025"; +} + +.fa-headphones-alt:before { + content: "\f58f"; +} + +.fa-headset:before { + content: "\f590"; +} + +.fa-heart:before { + content: "\f004"; +} + +.fa-heartbeat:before { + content: "\f21e"; +} + +.fa-helicopter:before { + content: "\f533"; +} + +.fa-highlighter:before { + content: "\f591"; +} + +.fa-hips:before { + content: "\f452"; +} + +.fa-hire-a-helper:before { + content: "\f3b0"; +} + +.fa-history:before { + content: "\f1da"; +} + +.fa-hockey-puck:before { + content: "\f453"; +} + +.fa-home:before { + content: "\f015"; +} + +.fa-hooli:before { + content: "\f427"; +} + +.fa-hornbill:before { + content: "\f592"; +} + +.fa-hospital:before { + content: "\f0f8"; +} + +.fa-hospital-alt:before { + content: "\f47d"; +} + +.fa-hospital-symbol:before { + content: "\f47e"; +} + +.fa-hot-tub:before { + content: "\f593"; +} + +.fa-hotel:before { + content: "\f594"; +} + +.fa-hotjar:before { + content: "\f3b1"; +} + +.fa-hourglass:before { + content: "\f254"; +} + +.fa-hourglass-end:before { + content: "\f253"; +} + +.fa-hourglass-half:before { + content: "\f252"; +} + +.fa-hourglass-start:before { + content: "\f251"; +} + +.fa-houzz:before { + content: "\f27c"; +} + +.fa-html5:before { + content: "\f13b"; +} + +.fa-hubspot:before { + content: "\f3b2"; +} + +.fa-i-cursor:before { + content: "\f246"; +} + +.fa-id-badge:before { + content: "\f2c1"; +} + +.fa-id-card:before { + content: "\f2c2"; +} + +.fa-id-card-alt:before { + content: "\f47f"; +} + +.fa-image:before { + content: "\f03e"; +} + +.fa-images:before { + content: "\f302"; +} + +.fa-imdb:before { + content: "\f2d8"; +} + +.fa-inbox:before { + content: "\f01c"; +} + +.fa-indent:before { + content: "\f03c"; +} + +.fa-industry:before { + content: "\f275"; +} + +.fa-infinity:before { + content: "\f534"; +} + +.fa-info:before { + content: "\f129"; +} + +.fa-info-circle:before { + content: "\f05a"; +} + +.fa-instagram:before { + content: "\f16d"; +} + +.fa-internet-explorer:before { + content: "\f26b"; +} + +.fa-ioxhost:before { + content: "\f208"; +} + +.fa-italic:before { + content: "\f033"; +} + +.fa-itunes:before { + content: "\f3b4"; +} + +.fa-itunes-note:before { + content: "\f3b5"; +} + +.fa-java:before { + content: "\f4e4"; +} + +.fa-jedi-order:before { + content: "\f50e"; +} + +.fa-jenkins:before { + content: "\f3b6"; +} + +.fa-joget:before { + content: "\f3b7"; +} + +.fa-joint:before { + content: "\f595"; +} + +.fa-joomla:before { + content: "\f1aa"; +} + +.fa-js:before { + content: "\f3b8"; +} + +.fa-js-square:before { + content: "\f3b9"; +} + +.fa-jsfiddle:before { + content: "\f1cc"; +} + +.fa-kaggle:before { + content: "\f5fa"; +} + +.fa-key:before { + content: "\f084"; +} + +.fa-keybase:before { + content: "\f4f5"; +} + +.fa-keyboard:before { + content: "\f11c"; +} + +.fa-keycdn:before { + content: "\f3ba"; +} + +.fa-kickstarter:before { + content: "\f3bb"; +} + +.fa-kickstarter-k:before { + content: "\f3bc"; +} + +.fa-kiss:before { + content: "\f596"; +} + +.fa-kiss-beam:before { + content: "\f597"; +} + +.fa-kiss-wink-heart:before { + content: "\f598"; +} + +.fa-kiwi-bird:before { + content: "\f535"; +} + +.fa-korvue:before { + content: "\f42f"; +} + +.fa-language:before { + content: "\f1ab"; +} + +.fa-laptop:before { + content: "\f109"; +} + +.fa-laptop-code:before { + content: "\f5fc"; +} + +.fa-laravel:before { + content: "\f3bd"; +} + +.fa-lastfm:before { + content: "\f202"; +} + +.fa-lastfm-square:before { + content: "\f203"; +} + +.fa-laugh:before { + content: "\f599"; +} + +.fa-laugh-beam:before { + content: "\f59a"; +} + +.fa-laugh-squint:before { + content: "\f59b"; +} + +.fa-laugh-wink:before { + content: "\f59c"; +} + +.fa-layer-group:before { + content: "\f5fd"; +} + +.fa-leaf:before { + content: "\f06c"; +} + +.fa-leanpub:before { + content: "\f212"; +} + +.fa-lemon:before { + content: "\f094"; +} + +.fa-less:before { + content: "\f41d"; +} + +.fa-less-than:before { + content: "\f536"; +} + +.fa-less-than-equal:before { + content: "\f537"; +} + +.fa-level-down-alt:before { + content: "\f3be"; +} + +.fa-level-up-alt:before { + content: "\f3bf"; +} + +.fa-life-ring:before { + content: "\f1cd"; +} + +.fa-lightbulb:before { + content: "\f0eb"; +} + +.fa-line:before { + content: "\f3c0"; +} + +.fa-link:before { + content: "\f0c1"; +} + +.fa-linkedin:before { + content: "\f08c"; +} + +.fa-linkedin-in:before { + content: "\f0e1"; +} + +.fa-linode:before { + content: "\f2b8"; +} + +.fa-linux:before { + content: "\f17c"; +} + +.fa-lira-sign:before { + content: "\f195"; +} + +.fa-list:before { + content: "\f03a"; +} + +.fa-list-alt:before { + content: "\f022"; +} + +.fa-list-ol:before { + content: "\f0cb"; +} + +.fa-list-ul:before { + content: "\f0ca"; +} + +.fa-location-arrow:before { + content: "\f124"; +} + +.fa-lock:before { + content: "\f023"; +} + +.fa-lock-open:before { + content: "\f3c1"; +} + +.fa-long-arrow-alt-down:before { + content: "\f309"; +} + +.fa-long-arrow-alt-left:before { + content: "\f30a"; +} + +.fa-long-arrow-alt-right:before { + content: "\f30b"; +} + +.fa-long-arrow-alt-up:before { + content: "\f30c"; +} + +.fa-low-vision:before { + content: "\f2a8"; +} + +.fa-luggage-cart:before { + content: "\f59d"; +} + +.fa-lyft:before { + content: "\f3c3"; +} + +.fa-magento:before { + content: "\f3c4"; +} + +.fa-magic:before { + content: "\f0d0"; +} + +.fa-magnet:before { + content: "\f076"; +} + +.fa-mailchimp:before { + content: "\f59e"; +} + +.fa-male:before { + content: "\f183"; +} + +.fa-mandalorian:before { + content: "\f50f"; +} + +.fa-map:before { + content: "\f279"; +} + +.fa-map-marked:before { + content: "\f59f"; +} + +.fa-map-marked-alt:before { + content: "\f5a0"; +} + +.fa-map-marker:before { + content: "\f041"; +} + +.fa-map-marker-alt:before { + content: "\f3c5"; +} + +.fa-map-pin:before { + content: "\f276"; +} + +.fa-map-signs:before { + content: "\f277"; +} + +.fa-markdown:before { + content: "\f60f"; +} + +.fa-marker:before { + content: "\f5a1"; +} + +.fa-mars:before { + content: "\f222"; +} + +.fa-mars-double:before { + content: "\f227"; +} + +.fa-mars-stroke:before { + content: "\f229"; +} + +.fa-mars-stroke-h:before { + content: "\f22b"; +} + +.fa-mars-stroke-v:before { + content: "\f22a"; +} + +.fa-mastodon:before { + content: "\f4f6"; +} + +.fa-maxcdn:before { + content: "\f136"; +} + +.fa-medal:before { + content: "\f5a2"; +} + +.fa-medapps:before { + content: "\f3c6"; +} + +.fa-medium:before { + content: "\f23a"; +} + +.fa-medium-m:before { + content: "\f3c7"; +} + +.fa-medkit:before { + content: "\f0fa"; +} + +.fa-medrt:before { + content: "\f3c8"; +} + +.fa-meetup:before { + content: "\f2e0"; +} + +.fa-megaport:before { + content: "\f5a3"; +} + +.fa-meh:before { + content: "\f11a"; +} + +.fa-meh-blank:before { + content: "\f5a4"; +} + +.fa-meh-rolling-eyes:before { + content: "\f5a5"; +} + +.fa-memory:before { + content: "\f538"; +} + +.fa-mercury:before { + content: "\f223"; +} + +.fa-microchip:before { + content: "\f2db"; +} + +.fa-microphone:before { + content: "\f130"; +} + +.fa-microphone-alt:before { + content: "\f3c9"; +} + +.fa-microphone-alt-slash:before { + content: "\f539"; +} + +.fa-microphone-slash:before { + content: "\f131"; +} + +.fa-microscope:before { + content: "\f610"; +} + +.fa-microsoft:before { + content: "\f3ca"; +} + +.fa-minus:before { + content: "\f068"; +} + +.fa-minus-circle:before { + content: "\f056"; +} + +.fa-minus-square:before { + content: "\f146"; +} + +.fa-mix:before { + content: "\f3cb"; +} + +.fa-mixcloud:before { + content: "\f289"; +} + +.fa-mizuni:before { + content: "\f3cc"; +} + +.fa-mobile:before { + content: "\f10b"; +} + +.fa-mobile-alt:before { + content: "\f3cd"; +} + +.fa-modx:before { + content: "\f285"; +} + +.fa-monero:before { + content: "\f3d0"; +} + +.fa-money-bill:before { + content: "\f0d6"; +} + +.fa-money-bill-alt:before { + content: "\f3d1"; +} + +.fa-money-bill-wave:before { + content: "\f53a"; +} + +.fa-money-bill-wave-alt:before { + content: "\f53b"; +} + +.fa-money-check:before { + content: "\f53c"; +} + +.fa-money-check-alt:before { + content: "\f53d"; +} + +.fa-monument:before { + content: "\f5a6"; +} + +.fa-moon:before { + content: "\f186"; +} + +.fa-mortar-pestle:before { + content: "\f5a7"; +} + +.fa-motorcycle:before { + content: "\f21c"; +} + +.fa-mouse-pointer:before { + content: "\f245"; +} + +.fa-music:before { + content: "\f001"; +} + +.fa-napster:before { + content: "\f3d2"; +} + +.fa-neos:before { + content: "\f612"; +} + +.fa-neuter:before { + content: "\f22c"; +} + +.fa-newspaper:before { + content: "\f1ea"; +} + +.fa-nimblr:before { + content: "\f5a8"; +} + +.fa-nintendo-switch:before { + content: "\f418"; +} + +.fa-node:before { + content: "\f419"; +} + +.fa-node-js:before { + content: "\f3d3"; +} + +.fa-not-equal:before { + content: "\f53e"; +} + +.fa-notes-medical:before { + content: "\f481"; +} + +.fa-npm:before { + content: "\f3d4"; +} + +.fa-ns8:before { + content: "\f3d5"; +} + +.fa-nutritionix:before { + content: "\f3d6"; +} + +.fa-object-group:before { + content: "\f247"; +} + +.fa-object-ungroup:before { + content: "\f248"; +} + +.fa-odnoklassniki:before { + content: "\f263"; +} + +.fa-odnoklassniki-square:before { + content: "\f264"; +} + +.fa-oil-can:before { + content: "\f613"; +} + +.fa-old-republic:before { + content: "\f510"; +} + +.fa-opencart:before { + content: "\f23d"; +} + +.fa-openid:before { + content: "\f19b"; +} + +.fa-opera:before { + content: "\f26a"; +} + +.fa-optin-monster:before { + content: "\f23c"; +} + +.fa-osi:before { + content: "\f41a"; +} + +.fa-outdent:before { + content: "\f03b"; +} + +.fa-page4:before { + content: "\f3d7"; +} + +.fa-pagelines:before { + content: "\f18c"; +} + +.fa-paint-brush:before { + content: "\f1fc"; +} + +.fa-paint-roller:before { + content: "\f5aa"; +} + +.fa-palette:before { + content: "\f53f"; +} + +.fa-palfed:before { + content: "\f3d8"; +} + +.fa-pallet:before { + content: "\f482"; +} + +.fa-paper-plane:before { + content: "\f1d8"; +} + +.fa-paperclip:before { + content: "\f0c6"; +} + +.fa-parachute-box:before { + content: "\f4cd"; +} + +.fa-paragraph:before { + content: "\f1dd"; +} + +.fa-parking:before { + content: "\f540"; +} + +.fa-passport:before { + content: "\f5ab"; +} + +.fa-paste:before { + content: "\f0ea"; +} + +.fa-patreon:before { + content: "\f3d9"; +} + +.fa-pause:before { + content: "\f04c"; +} + +.fa-pause-circle:before { + content: "\f28b"; +} + +.fa-paw:before { + content: "\f1b0"; +} + +.fa-paypal:before { + content: "\f1ed"; +} + +.fa-pen:before { + content: "\f304"; +} + +.fa-pen-alt:before { + content: "\f305"; +} + +.fa-pen-fancy:before { + content: "\f5ac"; +} + +.fa-pen-nib:before { + content: "\f5ad"; +} + +.fa-pen-square:before { + content: "\f14b"; +} + +.fa-pencil-alt:before { + content: "\f303"; +} + +.fa-pencil-ruler:before { + content: "\f5ae"; +} + +.fa-people-carry:before { + content: "\f4ce"; +} + +.fa-percent:before { + content: "\f295"; +} + +.fa-percentage:before { + content: "\f541"; +} + +.fa-periscope:before { + content: "\f3da"; +} + +.fa-phabricator:before { + content: "\f3db"; +} + +.fa-phoenix-framework:before { + content: "\f3dc"; +} + +.fa-phoenix-squadron:before { + content: "\f511"; +} + +.fa-phone:before { + content: "\f095"; +} + +.fa-phone-slash:before { + content: "\f3dd"; +} + +.fa-phone-square:before { + content: "\f098"; +} + +.fa-phone-volume:before { + content: "\f2a0"; +} + +.fa-php:before { + content: "\f457"; +} + +.fa-pied-piper:before { + content: "\f2ae"; +} + +.fa-pied-piper-alt:before { + content: "\f1a8"; +} + +.fa-pied-piper-hat:before { + content: "\f4e5"; +} + +.fa-pied-piper-pp:before { + content: "\f1a7"; +} + +.fa-piggy-bank:before { + content: "\f4d3"; +} + +.fa-pills:before { + content: "\f484"; +} + +.fa-pinterest:before { + content: "\f0d2"; +} + +.fa-pinterest-p:before { + content: "\f231"; +} + +.fa-pinterest-square:before { + content: "\f0d3"; +} + +.fa-plane:before { + content: "\f072"; +} + +.fa-plane-arrival:before { + content: "\f5af"; +} + +.fa-plane-departure:before { + content: "\f5b0"; +} + +.fa-play:before { + content: "\f04b"; +} + +.fa-play-circle:before { + content: "\f144"; +} + +.fa-playstation:before { + content: "\f3df"; +} + +.fa-plug:before { + content: "\f1e6"; +} + +.fa-plus:before { + content: "\f067"; +} + +.fa-plus-circle:before { + content: "\f055"; +} + +.fa-plus-square:before { + content: "\f0fe"; +} + +.fa-podcast:before { + content: "\f2ce"; +} + +.fa-poo:before { + content: "\f2fe"; +} + +.fa-poop:before { + content: "\f619"; +} + +.fa-portrait:before { + content: "\f3e0"; +} + +.fa-pound-sign:before { + content: "\f154"; +} + +.fa-power-off:before { + content: "\f011"; +} + +.fa-prescription:before { + content: "\f5b1"; +} + +.fa-prescription-bottle:before { + content: "\f485"; +} + +.fa-prescription-bottle-alt:before { + content: "\f486"; +} + +.fa-print:before { + content: "\f02f"; +} + +.fa-procedures:before { + content: "\f487"; +} + +.fa-product-hunt:before { + content: "\f288"; +} + +.fa-project-diagram:before { + content: "\f542"; +} + +.fa-pushed:before { + content: "\f3e1"; +} + +.fa-puzzle-piece:before { + content: "\f12e"; +} + +.fa-python:before { + content: "\f3e2"; +} + +.fa-qq:before { + content: "\f1d6"; +} + +.fa-qrcode:before { + content: "\f029"; +} + +.fa-question:before { + content: "\f128"; +} + +.fa-question-circle:before { + content: "\f059"; +} + +.fa-quidditch:before { + content: "\f458"; +} + +.fa-quinscape:before { + content: "\f459"; +} + +.fa-quora:before { + content: "\f2c4"; +} + +.fa-quote-left:before { + content: "\f10d"; +} + +.fa-quote-right:before { + content: "\f10e"; +} + +.fa-r-project:before { + content: "\f4f7"; +} + +.fa-random:before { + content: "\f074"; +} + +.fa-ravelry:before { + content: "\f2d9"; +} + +.fa-react:before { + content: "\f41b"; +} + +.fa-readme:before { + content: "\f4d5"; +} + +.fa-rebel:before { + content: "\f1d0"; +} + +.fa-receipt:before { + content: "\f543"; +} + +.fa-recycle:before { + content: "\f1b8"; +} + +.fa-red-river:before { + content: "\f3e3"; +} + +.fa-reddit:before { + content: "\f1a1"; +} + +.fa-reddit-alien:before { + content: "\f281"; +} + +.fa-reddit-square:before { + content: "\f1a2"; +} + +.fa-redo:before { + content: "\f01e"; +} + +.fa-redo-alt:before { + content: "\f2f9"; +} + +.fa-registered:before { + content: "\f25d"; +} + +.fa-rendact:before { + content: "\f3e4"; +} + +.fa-renren:before { + content: "\f18b"; +} + +.fa-reply:before { + content: "\f3e5"; +} + +.fa-reply-all:before { + content: "\f122"; +} + +.fa-replyd:before { + content: "\f3e6"; +} + +.fa-researchgate:before { + content: "\f4f8"; +} + +.fa-resolving:before { + content: "\f3e7"; +} + +.fa-retweet:before { + content: "\f079"; +} + +.fa-rev:before { + content: "\f5b2"; +} + +.fa-ribbon:before { + content: "\f4d6"; +} + +.fa-road:before { + content: "\f018"; +} + +.fa-robot:before { + content: "\f544"; +} + +.fa-rocket:before { + content: "\f135"; +} + +.fa-rocketchat:before { + content: "\f3e8"; +} + +.fa-rockrms:before { + content: "\f3e9"; +} + +.fa-route:before { + content: "\f4d7"; +} + +.fa-rss:before { + content: "\f09e"; +} + +.fa-rss-square:before { + content: "\f143"; +} + +.fa-ruble-sign:before { + content: "\f158"; +} + +.fa-ruler:before { + content: "\f545"; +} + +.fa-ruler-combined:before { + content: "\f546"; +} + +.fa-ruler-horizontal:before { + content: "\f547"; +} + +.fa-ruler-vertical:before { + content: "\f548"; +} + +.fa-rupee-sign:before { + content: "\f156"; +} + +.fa-sad-cry:before { + content: "\f5b3"; +} + +.fa-sad-tear:before { + content: "\f5b4"; +} + +.fa-safari:before { + content: "\f267"; +} + +.fa-sass:before { + content: "\f41e"; +} + +.fa-save:before { + content: "\f0c7"; +} + +.fa-schlix:before { + content: "\f3ea"; +} + +.fa-school:before { + content: "\f549"; +} + +.fa-screwdriver:before { + content: "\f54a"; +} + +.fa-scribd:before { + content: "\f28a"; +} + +.fa-search:before { + content: "\f002"; +} + +.fa-search-minus:before { + content: "\f010"; +} + +.fa-search-plus:before { + content: "\f00e"; +} + +.fa-searchengin:before { + content: "\f3eb"; +} + +.fa-seedling:before { + content: "\f4d8"; +} + +.fa-sellcast:before { + content: "\f2da"; +} + +.fa-sellsy:before { + content: "\f213"; +} + +.fa-server:before { + content: "\f233"; +} + +.fa-servicestack:before { + content: "\f3ec"; +} + +.fa-shapes:before { + content: "\f61f"; +} + +.fa-share:before { + content: "\f064"; +} + +.fa-share-alt:before { + content: "\f1e0"; +} + +.fa-share-alt-square:before { + content: "\f1e1"; +} + +.fa-share-square:before { + content: "\f14d"; +} + +.fa-shekel-sign:before { + content: "\f20b"; +} + +.fa-shield-alt:before { + content: "\f3ed"; +} + +.fa-ship:before { + content: "\f21a"; +} + +.fa-shipping-fast:before { + content: "\f48b"; +} + +.fa-shirtsinbulk:before { + content: "\f214"; +} + +.fa-shoe-prints:before { + content: "\f54b"; +} + +.fa-shopping-bag:before { + content: "\f290"; +} + +.fa-shopping-basket:before { + content: "\f291"; +} + +.fa-shopping-cart:before { + content: "\f07a"; +} + +.fa-shopware:before { + content: "\f5b5"; +} + +.fa-shower:before { + content: "\f2cc"; +} + +.fa-shuttle-van:before { + content: "\f5b6"; +} + +.fa-sign:before { + content: "\f4d9"; +} + +.fa-sign-in-alt:before { + content: "\f2f6"; +} + +.fa-sign-language:before { + content: "\f2a7"; +} + +.fa-sign-out-alt:before { + content: "\f2f5"; +} + +.fa-signal:before { + content: "\f012"; +} + +.fa-signature:before { + content: "\f5b7"; +} + +.fa-simplybuilt:before { + content: "\f215"; +} + +.fa-sistrix:before { + content: "\f3ee"; +} + +.fa-sitemap:before { + content: "\f0e8"; +} + +.fa-sith:before { + content: "\f512"; +} + +.fa-skull:before { + content: "\f54c"; +} + +.fa-skyatlas:before { + content: "\f216"; +} + +.fa-skype:before { + content: "\f17e"; +} + +.fa-slack:before { + content: "\f198"; +} + +.fa-slack-hash:before { + content: "\f3ef"; +} + +.fa-sliders-h:before { + content: "\f1de"; +} + +.fa-slideshare:before { + content: "\f1e7"; +} + +.fa-smile:before { + content: "\f118"; +} + +.fa-smile-beam:before { + content: "\f5b8"; +} + +.fa-smile-wink:before { + content: "\f4da"; +} + +.fa-smoking:before { + content: "\f48d"; +} + +.fa-smoking-ban:before { + content: "\f54d"; +} + +.fa-snapchat:before { + content: "\f2ab"; +} + +.fa-snapchat-ghost:before { + content: "\f2ac"; +} + +.fa-snapchat-square:before { + content: "\f2ad"; +} + +.fa-snowflake:before { + content: "\f2dc"; +} + +.fa-solar-panel:before { + content: "\f5ba"; +} + +.fa-sort:before { + content: "\f0dc"; +} + +.fa-sort-alpha-down:before { + content: "\f15d"; +} + +.fa-sort-alpha-up:before { + content: "\f15e"; +} + +.fa-sort-amount-down:before { + content: "\f160"; +} + +.fa-sort-amount-up:before { + content: "\f161"; +} + +.fa-sort-down:before { + content: "\f0dd"; +} + +.fa-sort-numeric-down:before { + content: "\f162"; +} + +.fa-sort-numeric-up:before { + content: "\f163"; +} + +.fa-sort-up:before { + content: "\f0de"; +} + +.fa-soundcloud:before { + content: "\f1be"; +} + +.fa-spa:before { + content: "\f5bb"; +} + +.fa-space-shuttle:before { + content: "\f197"; +} + +.fa-speakap:before { + content: "\f3f3"; +} + +.fa-spinner:before { + content: "\f110"; +} + +.fa-splotch:before { + content: "\f5bc"; +} + +.fa-spotify:before { + content: "\f1bc"; +} + +.fa-spray-can:before { + content: "\f5bd"; +} + +.fa-square:before { + content: "\f0c8"; +} + +.fa-square-full:before { + content: "\f45c"; +} + +.fa-squarespace:before { + content: "\f5be"; +} + +.fa-stack-exchange:before { + content: "\f18d"; +} + +.fa-stack-overflow:before { + content: "\f16c"; +} + +.fa-stamp:before { + content: "\f5bf"; +} + +.fa-star:before { + content: "\f005"; +} + +.fa-star-half:before { + content: "\f089"; +} + +.fa-star-half-alt:before { + content: "\f5c0"; +} + +.fa-star-of-life:before { + content: "\f621"; +} + +.fa-staylinked:before { + content: "\f3f5"; +} + +.fa-steam:before { + content: "\f1b6"; +} + +.fa-steam-square:before { + content: "\f1b7"; +} + +.fa-steam-symbol:before { + content: "\f3f6"; +} + +.fa-step-backward:before { + content: "\f048"; +} + +.fa-step-forward:before { + content: "\f051"; +} + +.fa-stethoscope:before { + content: "\f0f1"; +} + +.fa-sticker-mule:before { + content: "\f3f7"; +} + +.fa-sticky-note:before { + content: "\f249"; +} + +.fa-stop:before { + content: "\f04d"; +} + +.fa-stop-circle:before { + content: "\f28d"; +} + +.fa-stopwatch:before { + content: "\f2f2"; +} + +.fa-store:before { + content: "\f54e"; +} + +.fa-store-alt:before { + content: "\f54f"; +} + +.fa-strava:before { + content: "\f428"; +} + +.fa-stream:before { + content: "\f550"; +} + +.fa-street-view:before { + content: "\f21d"; +} + +.fa-strikethrough:before { + content: "\f0cc"; +} + +.fa-stripe:before { + content: "\f429"; +} + +.fa-stripe-s:before { + content: "\f42a"; +} + +.fa-stroopwafel:before { + content: "\f551"; +} + +.fa-studiovinari:before { + content: "\f3f8"; +} + +.fa-stumbleupon:before { + content: "\f1a4"; +} + +.fa-stumbleupon-circle:before { + content: "\f1a3"; +} + +.fa-subscript:before { + content: "\f12c"; +} + +.fa-subway:before { + content: "\f239"; +} + +.fa-suitcase:before { + content: "\f0f2"; +} + +.fa-suitcase-rolling:before { + content: "\f5c1"; +} + +.fa-sun:before { + content: "\f185"; +} + +.fa-superpowers:before { + content: "\f2dd"; +} + +.fa-superscript:before { + content: "\f12b"; +} + +.fa-supple:before { + content: "\f3f9"; +} + +.fa-surprise:before { + content: "\f5c2"; +} + +.fa-swatchbook:before { + content: "\f5c3"; +} + +.fa-swimmer:before { + content: "\f5c4"; +} + +.fa-swimming-pool:before { + content: "\f5c5"; +} + +.fa-sync:before { + content: "\f021"; +} + +.fa-sync-alt:before { + content: "\f2f1"; +} + +.fa-syringe:before { + content: "\f48e"; +} + +.fa-table:before { + content: "\f0ce"; +} + +.fa-table-tennis:before { + content: "\f45d"; +} + +.fa-tablet:before { + content: "\f10a"; +} + +.fa-tablet-alt:before { + content: "\f3fa"; +} + +.fa-tablets:before { + content: "\f490"; +} + +.fa-tachometer-alt:before { + content: "\f3fd"; +} + +.fa-tag:before { + content: "\f02b"; +} + +.fa-tags:before { + content: "\f02c"; +} + +.fa-tape:before { + content: "\f4db"; +} + +.fa-tasks:before { + content: "\f0ae"; +} + +.fa-taxi:before { + content: "\f1ba"; +} + +.fa-teamspeak:before { + content: "\f4f9"; +} + +.fa-teeth:before { + content: "\f62e"; +} + +.fa-teeth-open:before { + content: "\f62f"; +} + +.fa-telegram:before { + content: "\f2c6"; +} + +.fa-telegram-plane:before { + content: "\f3fe"; +} + +.fa-tencent-weibo:before { + content: "\f1d5"; +} + +.fa-terminal:before { + content: "\f120"; +} + +.fa-text-height:before { + content: "\f034"; +} + +.fa-text-width:before { + content: "\f035"; +} + +.fa-th:before { + content: "\f00a"; +} + +.fa-th-large:before { + content: "\f009"; +} + +.fa-th-list:before { + content: "\f00b"; +} + +.fa-theater-masks:before { + content: "\f630"; +} + +.fa-themeco:before { + content: "\f5c6"; +} + +.fa-themeisle:before { + content: "\f2b2"; +} + +.fa-thermometer:before { + content: "\f491"; +} + +.fa-thermometer-empty:before { + content: "\f2cb"; +} + +.fa-thermometer-full:before { + content: "\f2c7"; +} + +.fa-thermometer-half:before { + content: "\f2c9"; +} + +.fa-thermometer-quarter:before { + content: "\f2ca"; +} + +.fa-thermometer-three-quarters:before { + content: "\f2c8"; +} + +.fa-thumbs-down:before { + content: "\f165"; +} + +.fa-thumbs-up:before { + content: "\f164"; +} + +.fa-thumbtack:before { + content: "\f08d"; +} + +.fa-ticket-alt:before { + content: "\f3ff"; +} + +.fa-times:before { + content: "\f00d"; +} + +.fa-times-circle:before { + content: "\f057"; +} + +.fa-tint:before { + content: "\f043"; +} + +.fa-tint-slash:before { + content: "\f5c7"; +} + +.fa-tired:before { + content: "\f5c8"; +} + +.fa-toggle-off:before { + content: "\f204"; +} + +.fa-toggle-on:before { + content: "\f205"; +} + +.fa-toolbox:before { + content: "\f552"; +} + +.fa-tooth:before { + content: "\f5c9"; +} + +.fa-trade-federation:before { + content: "\f513"; +} + +.fa-trademark:before { + content: "\f25c"; +} + +.fa-traffic-light:before { + content: "\f637"; +} + +.fa-train:before { + content: "\f238"; +} + +.fa-transgender:before { + content: "\f224"; +} + +.fa-transgender-alt:before { + content: "\f225"; +} + +.fa-trash:before { + content: "\f1f8"; +} + +.fa-trash-alt:before { + content: "\f2ed"; +} + +.fa-tree:before { + content: "\f1bb"; +} + +.fa-trello:before { + content: "\f181"; +} + +.fa-tripadvisor:before { + content: "\f262"; +} + +.fa-trophy:before { + content: "\f091"; +} + +.fa-truck:before { + content: "\f0d1"; +} + +.fa-truck-loading:before { + content: "\f4de"; +} + +.fa-truck-monster:before { + content: "\f63b"; +} + +.fa-truck-moving:before { + content: "\f4df"; +} + +.fa-truck-pickup:before { + content: "\f63c"; +} + +.fa-tshirt:before { + content: "\f553"; +} + +.fa-tty:before { + content: "\f1e4"; +} + +.fa-tumblr:before { + content: "\f173"; +} + +.fa-tumblr-square:before { + content: "\f174"; +} + +.fa-tv:before { + content: "\f26c"; +} + +.fa-twitch:before { + content: "\f1e8"; +} + +.fa-twitter:before { + content: "\f099"; +} + +.fa-twitter-square:before { + content: "\f081"; +} + +.fa-typo3:before { + content: "\f42b"; +} + +.fa-uber:before { + content: "\f402"; +} + +.fa-uikit:before { + content: "\f403"; +} + +.fa-umbrella:before { + content: "\f0e9"; +} + +.fa-umbrella-beach:before { + content: "\f5ca"; +} + +.fa-underline:before { + content: "\f0cd"; +} + +.fa-undo:before { + content: "\f0e2"; +} + +.fa-undo-alt:before { + content: "\f2ea"; +} + +.fa-uniregistry:before { + content: "\f404"; +} + +.fa-universal-access:before { + content: "\f29a"; +} + +.fa-university:before { + content: "\f19c"; +} + +.fa-unlink:before { + content: "\f127"; +} + +.fa-unlock:before { + content: "\f09c"; +} + +.fa-unlock-alt:before { + content: "\f13e"; +} + +.fa-untappd:before { + content: "\f405"; +} + +.fa-upload:before { + content: "\f093"; +} + +.fa-usb:before { + content: "\f287"; +} + +.fa-user:before { + content: "\f007"; +} + +.fa-user-alt:before { + content: "\f406"; +} + +.fa-user-alt-slash:before { + content: "\f4fa"; +} + +.fa-user-astronaut:before { + content: "\f4fb"; +} + +.fa-user-check:before { + content: "\f4fc"; +} + +.fa-user-circle:before { + content: "\f2bd"; +} + +.fa-user-clock:before { + content: "\f4fd"; +} + +.fa-user-cog:before { + content: "\f4fe"; +} + +.fa-user-edit:before { + content: "\f4ff"; +} + +.fa-user-friends:before { + content: "\f500"; +} + +.fa-user-graduate:before { + content: "\f501"; +} + +.fa-user-lock:before { + content: "\f502"; +} + +.fa-user-md:before { + content: "\f0f0"; +} + +.fa-user-minus:before { + content: "\f503"; +} + +.fa-user-ninja:before { + content: "\f504"; +} + +.fa-user-plus:before { + content: "\f234"; +} + +.fa-user-secret:before { + content: "\f21b"; +} + +.fa-user-shield:before { + content: "\f505"; +} + +.fa-user-slash:before { + content: "\f506"; +} + +.fa-user-tag:before { + content: "\f507"; +} + +.fa-user-tie:before { + content: "\f508"; +} + +.fa-user-times:before { + content: "\f235"; +} + +.fa-users:before { + content: "\f0c0"; +} + +.fa-users-cog:before { + content: "\f509"; +} + +.fa-ussunnah:before { + content: "\f407"; +} + +.fa-utensil-spoon:before { + content: "\f2e5"; +} + +.fa-utensils:before { + content: "\f2e7"; +} + +.fa-vaadin:before { + content: "\f408"; +} + +.fa-vector-square:before { + content: "\f5cb"; +} + +.fa-venus:before { + content: "\f221"; +} + +.fa-venus-double:before { + content: "\f226"; +} + +.fa-venus-mars:before { + content: "\f228"; +} + +.fa-viacoin:before { + content: "\f237"; +} + +.fa-viadeo:before { + content: "\f2a9"; +} + +.fa-viadeo-square:before { + content: "\f2aa"; +} + +.fa-vial:before { + content: "\f492"; +} + +.fa-vials:before { + content: "\f493"; +} + +.fa-viber:before { + content: "\f409"; +} + +.fa-video:before { + content: "\f03d"; +} + +.fa-video-slash:before { + content: "\f4e2"; +} + +.fa-vimeo:before { + content: "\f40a"; +} + +.fa-vimeo-square:before { + content: "\f194"; +} + +.fa-vimeo-v:before { + content: "\f27d"; +} + +.fa-vine:before { + content: "\f1ca"; +} + +.fa-vk:before { + content: "\f189"; +} + +.fa-vnv:before { + content: "\f40b"; +} + +.fa-volleyball-ball:before { + content: "\f45f"; +} + +.fa-volume-down:before { + content: "\f027"; +} + +.fa-volume-off:before { + content: "\f026"; +} + +.fa-volume-up:before { + content: "\f028"; +} + +.fa-vuejs:before { + content: "\f41f"; +} + +.fa-walking:before { + content: "\f554"; +} + +.fa-wallet:before { + content: "\f555"; +} + +.fa-warehouse:before { + content: "\f494"; +} + +.fa-weebly:before { + content: "\f5cc"; +} + +.fa-weibo:before { + content: "\f18a"; +} + +.fa-weight:before { + content: "\f496"; +} + +.fa-weight-hanging:before { + content: "\f5cd"; +} + +.fa-weixin:before { + content: "\f1d7"; +} + +.fa-whatsapp:before { + content: "\f232"; +} + +.fa-whatsapp-square:before { + content: "\f40c"; +} + +.fa-wheelchair:before { + content: "\f193"; +} + +.fa-whmcs:before { + content: "\f40d"; +} + +.fa-wifi:before { + content: "\f1eb"; +} + +.fa-wikipedia-w:before { + content: "\f266"; +} + +.fa-window-close:before { + content: "\f410"; +} + +.fa-window-maximize:before { + content: "\f2d0"; +} + +.fa-window-minimize:before { + content: "\f2d1"; +} + +.fa-window-restore:before { + content: "\f2d2"; +} + +.fa-windows:before { + content: "\f17a"; +} + +.fa-wine-glass:before { + content: "\f4e3"; +} + +.fa-wine-glass-alt:before { + content: "\f5ce"; +} + +.fa-wix:before { + content: "\f5cf"; +} + +.fa-wolf-pack-battalion:before { + content: "\f514"; +} + +.fa-won-sign:before { + content: "\f159"; +} + +.fa-wordpress:before { + content: "\f19a"; +} + +.fa-wordpress-simple:before { + content: "\f411"; +} + +.fa-wpbeginner:before { + content: "\f297"; +} + +.fa-wpexplorer:before { + content: "\f2de"; +} + +.fa-wpforms:before { + content: "\f298"; +} + +.fa-wrench:before { + content: "\f0ad"; +} + +.fa-x-ray:before { + content: "\f497"; +} + +.fa-xbox:before { + content: "\f412"; +} + +.fa-xing:before { + content: "\f168"; +} + +.fa-xing-square:before { + content: "\f169"; +} + +.fa-y-combinator:before { + content: "\f23b"; +} + +.fa-yahoo:before { + content: "\f19e"; +} + +.fa-yandex:before { + content: "\f413"; +} + +.fa-yandex-international:before { + content: "\f414"; +} + +.fa-yelp:before { + content: "\f1e9"; +} + +.fa-yen-sign:before { + content: "\f157"; +} + +.fa-yoast:before { + content: "\f2b1"; +} + +.fa-youtube:before { + content: "\f167"; +} + +.fa-youtube-square:before { + content: "\f431"; +} + +.fa-zhihu:before { + content: "\f63f"; +} + +.sr-only { + border: 0; + clip: rect(0, 0, 0, 0); + height: 1px; + margin: -1px; + overflow: hidden; + padding: 0; + position: absolute; + width: 1px; +} + +.sr-only-focusable:active, .sr-only-focusable:focus { + clip: auto; + height: auto; + margin: 0; + overflow: visible; + position: static; + width: auto; +} + +@font-face { + font-family: 'Font Awesome 5 Free'; + font-style: normal; + font-weight: 900; + src: url("../webfonts/fa-solid-900.eot"); + src: url("../webfonts/fa-solid-900.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.woff") format("woff"), url("../webfonts/fa-solid-900.ttf") format("truetype"), url("../webfonts/fa-solid-900.svg#fontawesome") format("svg"); +} + +.fa, +.fas, +.field-add-more-submit:before, +.field--type-file .file:before { + font-family: 'Font Awesome 5 Free'; + font-weight: 900; +} + * { -webkit-box-sizing: border-box; box-sizing: border-box; @@ -1266,7 +6117,7 @@ input.btn { align-content: flex-start; } -.btn-list--right > .btn { +.btn-list--right > .btn, .btn-list--right .button { position: relative; margin: 15px 0 15px 15px; } @@ -1332,7 +6183,7 @@ input.btn { display: inline-block; } -a.btn, input.btn, button.btn { +a.btn, input.btn, button.btn, a.button { color: #05111E; font-size: 1.3rem; text-decoration: none; @@ -1348,17 +6199,17 @@ a.btn, input.btn, button.btn { cursor: pointer; } -a.btn .icon, input.btn .icon, button.btn .icon { +a.btn .icon, input.btn .icon, button.btn .icon, a.button .icon { height: 1.3rem; margin-right: 1rem; display: inline-block; } -a.btn:not([disabled]):hover, input.btn:not([disabled]):hover, button.btn:not([disabled]):hover { +a.btn:not([disabled]):hover, input.btn:not([disabled]):hover, button.btn:not([disabled]):hover, a.button:not([disabled]):hover { color: #FFFFFF; } -a.btn:focus, input.btn:focus, button.btn:focus { +a.btn:focus, input.btn:focus, button.btn:focus, a.button:focus { -webkit-box-shadow: 0 0 0 4px #662D91 !important; box-shadow: 0 0 0 4px #662D91 !important; outline: none; @@ -1414,7 +6265,9 @@ a.btn:focus, input.btn:focus, button.btn:focus { background: #0c473d; } -.btn--blue, .field-add-more-submit { +.btn--blue, +.field-add-more-submit, +#edit-field-ngf-cover-image-actions-ief-add { display: inline-block; background: #00c9ff; background-image: none; @@ -1429,16 +6282,74 @@ a.btn:focus, input.btn:focus, button.btn:focus { transform-style: preserve-3d; } -.btn--blue:not([disabled]):hover, .field-add-more-submit:not([disabled]):hover { +.btn--blue:not([disabled]):hover, + .field-add-more-submit:not([disabled]):hover, + #edit-field-ngf-cover-image-actions-ief-add:not([disabled]):hover { background: #00a9d6; -webkit-transition: all 0.2s ease; transition: all 0.2s ease; } -.btn--blue:active, .field-add-more-submit:active { +.btn--blue:active, + .field-add-more-submit:active, + #edit-field-ngf-cover-image-actions-ief-add:active { background: #006580; } +.button--danger { + display: inline-block; + background: #ff3939; + background-image: none; + -webkit-box-shadow: 0 0 0 4px rgba(255, 57, 57, 0.5) !important; + box-shadow: 0 0 0 4px rgba(255, 57, 57, 0.5) !important; + text-shadow: none; + -webkit-transition: all 0.2s ease; + transition: all 0.2s ease; + -webkit-transform: rotateX(0deg); + transform: rotateX(0deg); + -webkit-transform-style: preserve-3d; + transform-style: preserve-3d; +} + +.button--danger:not([disabled]):hover { + background: #ff1010; + -webkit-transition: all 0.2s ease; + transition: all 0.2s ease; +} + +.button--danger:active { + background: #b90000; +} + +.field-add-more-submit:before { + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + display: inline-block; + font-style: normal; + font-variant: normal; + font-weight: normal; + line-height: 1; + vertical-align: -.125em; + padding-right: 5px; + content: "\f067"; +} + +#field-ngf-description-ngf-text-add-more:before { + content: "\f044"; +} + +#field-ngf-description-ngf-file-add-more:before { + content: "\f15b"; +} + +#field-ngf-description-ngf-image-add-more:before { + content: "\f03e"; +} + +#field-ngf-description-ngf-video-add-more:before { + content: "\f03d"; +} + button.paragraphs-dropdown-action { border: none; -webkit-box-shadow: none !important; @@ -1464,7 +6375,7 @@ button.paragraphs-dropdown-action { } @media (min-width: 768px) { - a.btn, input.btn, button.btn { + a.btn, input.btn, button.btn, a.button { font-size: 1.6rem; } @@ -2171,32 +7082,49 @@ button.paragraphs-dropdown-action { } .media--type-file { - margin-top: 16px; + margin-bottom: 16px; } .field--type-file .file { list-style: none; background: transparent no-repeat left top; - background-size: 32px 38px; - padding-left: 45px; display: block; - min-height: 38px; + padding: 0 0 0 0; } -.field--type-file .file.file--mime-application-pdf { - background-image: url(../images/file--pdf.jpg); +.field--type-file .file:before { + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + display: inline-block; + font-style: normal; + font-variant: normal; + font-weight: normal; + line-height: 1; + vertical-align: -.125em; + content: "\f15b"; + padding-right: 5px; + font-size: 2.4rem; + color: #662D91; +} + +.field--type-file .file.file--x-office-document:before { + content: "\f1c2"; +} + +.field--type-file .file.file--application-pdf:before { + content: "\f1c1"; } -.field--type-file .file.file--mime-application-txt, .field--type-file .file.file--mime-application-rtf, .field--type-file .file.file--mime-application-doc, .field--type-file .file.file--mime-application-docx, .field--type-file .file.file--mime-application-odf, .field--type-file .file.file--mime-application-odg, .field--type-file .file.file--mime-application-odp, .field--type-file .file.file--mime-application-ods, .field--type-file .file.file--mime-application-odt, .field--type-file .file.file--mime-application-fodt, .field--type-file .file.file--mime-application-fodg, .field--type-file .file.file--mime-application-apges { - background-image: url(../images/file--txt.jpg); +.field--type-file .file.file--x-office-presentation:before { + content: "\f1c4"; } -.field--type-file .file.file--mime-application-ppt, .field--type-file .file.file--mime-application-pptx, .field--type-file .file.file--mime-application-key { - background-image: url(../images/file--ppt.ppt); +.field--type-file .file.file--x-office-spreadsheet:before { + content: "\f1c3"; } -.field--type-file .file.file--mime-application-xls, .field--type-file .file.file--mime-application-xlsx, .field--type-file .file.file--mime-application-numbers { - background-image: url(../images/file--xls.jpg); +.field--type-file .file.file--text:before { + content: "\f15c"; } .general-footer--card { @@ -2835,7 +7763,7 @@ a.logo__link span { border-bottom: none; } - .navigation-menu__list li.active .fas { + .navigation-menu__list li.active .fas, .navigation-menu__list li.active .field-add-more-submit:before, .navigation-menu__list li.active .field--type-file .file:before, .field--type-file .navigation-menu__list li.active .file:before { color: #ff397f; } diff --git a/sass/base/_variables.scss b/sass/base/_variables.scss index 6164fac..1961ffc 100644 --- a/sass/base/_variables.scss +++ b/sass/base/_variables.scss @@ -52,7 +52,7 @@ $theme-colors: map-merge(( error: $red, light: $gray-200, dark: $gray-600 -), $theme-colors) !default; +), $theme-colors) !default; $body__background-color: $white !default; @@ -122,7 +122,7 @@ $theme-colors: map-merge(( error: $red, light: $gray-200, dark: $gray-600 -), $theme-colors) !default; +), $theme-colors) !default; $body__background-color: $white !default; @@ -137,4 +137,4 @@ $body__font: $font-family-sans-serif !default; $headings__font: $font-family-sans-serif !default; $text-color: $gray-700 !default; -$line-height-base: 1.15 !default; \ No newline at end of file +$line-height-base: 1.15 !default; diff --git a/sass/components/_buttons.scss b/sass/components/_buttons.scss index c3a3b6d..afa9bda 100644 --- a/sass/components/_buttons.scss +++ b/sass/components/_buttons.scss @@ -33,7 +33,7 @@ input.btn{ flex-wrap: nowrap; align-content: flex-start; - > .btn { + > .btn, .button { position: relative; /* flex-grow: 1; */ margin: 15px 0 15px 15px; @@ -92,7 +92,7 @@ input.btn{ } } -a.btn, input.btn, button.btn { +a.btn, input.btn, button.btn, a.button { color: $gray-900; font-size: 1.3rem; text-decoration:none; @@ -137,10 +137,49 @@ a.btn, input.btn, button.btn { @include button-bg($teal); } -.btn--blue, .field-add-more-submit { +.btn--blue, +.field-add-more-submit, +#edit-field-ngf-cover-image-actions-ief-add { @include button-bg($cyan); } +.button--danger { + @include button-bg($red); +} + +.field-add-more-submit { + &:before { + @include fa-icon; + @extend .fas; + padding-right: 5px; + content: fa-content($fa-var-plus); + } +} + +#field-ngf-description-ngf-text-add-more { + &:before { + content: fa-content($fa-var-edit); + } +} + +#field-ngf-description-ngf-file-add-more { + &:before { + content: fa-content($fa-var-file); + } +} + +#field-ngf-description-ngf-image-add-more { + &:before { + content: fa-content($fa-var-image); + } +} + +#field-ngf-description-ngf-video-add-more { + &:before { + content: fa-content($fa-var-video); + } +} + button.paragraphs-dropdown-action { border: none; box-shadow: none !important; @@ -163,7 +202,7 @@ button.paragraphs-dropdown-action { @media (min-width: 768px) { - a.btn, input.btn, button.btn { + a.btn, input.btn, button.btn, a.button { font-size: 1.6rem; } diff --git a/sass/components/_files.scss b/sass/components/_files.scss index 98ec80f..ef9e5a7 100644 --- a/sass/components/_files.scss +++ b/sass/components/_files.scss @@ -1,52 +1,48 @@ -/*.list--file, .list--event { - padding: 0; - - .list__item--file, .list__item--event { - list-style: none; - background: transparent no-repeat left top; - background-size: 32px 38px; - padding-left: 45px; - - &.list__item--pdf { - background-image: url(../images/file--pdf.jpg); - } - &.list__item--url { - background-image: url(../images/file--url.jpg); - } - - p { - margin: 0 0 0.8rem 0; - } - } - - .list__item--event { - background-image: url(../images/article--event-icon.svg); - } -}*/ - .media--type-file { - margin-top: 16px; + margin-bottom: 16px; } + .field--type-file .file{ // same as .list__item--file list-style: none; background: transparent no-repeat left top; - background-size: 32px 38px; - padding-left: 45px; display: block; - min-height: 38px; - - &.file--mime-application-pdf { - background-image: url(../images/file--pdf.jpg); + padding: 0 0 0 0; + &:before { + @include fa-icon; + @extend .fas; + content: fa-content($fa-var-file); + padding-right: 5px; + font-size: 2.4rem; + color: $purple; } - &.file--mime-application-txt, &.file--mime-application-rtf, &.file--mime-application-doc, &.file--mime-application-docx, &.file--mime-application-odf, &.file--mime-application-odg, &.file--mime-application-odp, &.file--mime-application-ods, &.file--mime-application-odt, &.file--mime-application-fodt, &.file--mime-application-fodg, &.file--mime-application-apges { - background-image: url(../images/file--txt.jpg); + &.file--x-office-document { + &:before { + content: fa-content($fa-var-file-word); + } } - &.file--mime-application-ppt, &.file--mime-application-pptx, &.file--mime-application-key { - background-image: url(../images/file--ppt.ppt); + &.file--application-pdf { + &:before { + content: fa-content($fa-var-file-pdf); + } + } + + &.file--x-office-presentation { + &:before { + content: fa-content($fa-var-file-powerpoint); + } + } + + &.file--x-office-spreadsheet { + &:before { + content: fa-content($fa-var-file-excel); + } } - &.file--mime-application-xls, &.file--mime-application-xlsx, &.file--mime-application-numbers { - background-image: url(../images/file--xls.jpg); + + &.file--text { + &:before { + content: fa-content($fa-var-file-alt); + } } -} \ No newline at end of file +} diff --git a/sass/fontawesome/_animated.scss b/sass/fontawesome/_animated.scss new file mode 100644 index 0000000..7c7c0e1 --- /dev/null +++ b/sass/fontawesome/_animated.scss @@ -0,0 +1,20 @@ +// Animated Icons +// -------------------------- + +.#{$fa-css-prefix}-spin { + animation: fa-spin 2s infinite linear; +} + +.#{$fa-css-prefix}-pulse { + animation: fa-spin 1s infinite steps(8); +} + +@keyframes fa-spin { + 0% { + transform: rotate(0deg); + } + + 100% { + transform: rotate(360deg); + } +} diff --git a/sass/fontawesome/_bordered-pulled.scss b/sass/fontawesome/_bordered-pulled.scss new file mode 100644 index 0000000..c8c4274 --- /dev/null +++ b/sass/fontawesome/_bordered-pulled.scss @@ -0,0 +1,20 @@ +// Bordered & Pulled +// ------------------------- + +.#{$fa-css-prefix}-border { + border: solid .08em $fa-border-color; + border-radius: .1em; + padding: .2em .25em .15em; +} + +.#{$fa-css-prefix}-pull-left { float: left; } +.#{$fa-css-prefix}-pull-right { float: right; } + +.#{$fa-css-prefix}, +.fas, +.far, +.fal, +.fab { + &.#{$fa-css-prefix}-pull-left { margin-right: .3em; } + &.#{$fa-css-prefix}-pull-right { margin-left: .3em; } +} diff --git a/sass/fontawesome/_core.scss b/sass/fontawesome/_core.scss new file mode 100644 index 0000000..7fd37f8 --- /dev/null +++ b/sass/fontawesome/_core.scss @@ -0,0 +1,16 @@ +// Base Class Definition +// ------------------------- + +.#{$fa-css-prefix}, +.fas, +.far, +.fal, +.fab { + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + display: inline-block; + font-style: normal; + font-variant: normal; + text-rendering: auto; + line-height: 1; +} diff --git a/sass/fontawesome/_fixed-width.scss b/sass/fontawesome/_fixed-width.scss new file mode 100644 index 0000000..5b33eb4 --- /dev/null +++ b/sass/fontawesome/_fixed-width.scss @@ -0,0 +1,6 @@ +// Fixed Width Icons +// ------------------------- +.#{$fa-css-prefix}-fw { + text-align: center; + width: (20em / 16); +} diff --git a/sass/fontawesome/_icons.scss b/sass/fontawesome/_icons.scss new file mode 100644 index 0000000..2b6193b --- /dev/null +++ b/sass/fontawesome/_icons.scss @@ -0,0 +1,1148 @@ +/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen +readers do not read off random characters that represent icons */ + +.#{$fa-css-prefix}-500px:before { content: fa-content($fa-var-500px); } +.#{$fa-css-prefix}-accessible-icon:before { content: fa-content($fa-var-accessible-icon); } +.#{$fa-css-prefix}-accusoft:before { content: fa-content($fa-var-accusoft); } +.#{$fa-css-prefix}-address-book:before { content: fa-content($fa-var-address-book); } +.#{$fa-css-prefix}-address-card:before { content: fa-content($fa-var-address-card); } +.#{$fa-css-prefix}-adjust:before { content: fa-content($fa-var-adjust); } +.#{$fa-css-prefix}-adn:before { content: fa-content($fa-var-adn); } +.#{$fa-css-prefix}-adversal:before { content: fa-content($fa-var-adversal); } +.#{$fa-css-prefix}-affiliatetheme:before { content: fa-content($fa-var-affiliatetheme); } +.#{$fa-css-prefix}-air-freshener:before { content: fa-content($fa-var-air-freshener); } +.#{$fa-css-prefix}-algolia:before { content: fa-content($fa-var-algolia); } +.#{$fa-css-prefix}-align-center:before { content: fa-content($fa-var-align-center); } +.#{$fa-css-prefix}-align-justify:before { content: fa-content($fa-var-align-justify); } +.#{$fa-css-prefix}-align-left:before { content: fa-content($fa-var-align-left); } +.#{$fa-css-prefix}-align-right:before { content: fa-content($fa-var-align-right); } +.#{$fa-css-prefix}-allergies:before { content: fa-content($fa-var-allergies); } +.#{$fa-css-prefix}-amazon:before { content: fa-content($fa-var-amazon); } +.#{$fa-css-prefix}-amazon-pay:before { content: fa-content($fa-var-amazon-pay); } +.#{$fa-css-prefix}-ambulance:before { content: fa-content($fa-var-ambulance); } +.#{$fa-css-prefix}-american-sign-language-interpreting:before { content: fa-content($fa-var-american-sign-language-interpreting); } +.#{$fa-css-prefix}-amilia:before { content: fa-content($fa-var-amilia); } +.#{$fa-css-prefix}-anchor:before { content: fa-content($fa-var-anchor); } +.#{$fa-css-prefix}-android:before { content: fa-content($fa-var-android); } +.#{$fa-css-prefix}-angellist:before { content: fa-content($fa-var-angellist); } +.#{$fa-css-prefix}-angle-double-down:before { content: fa-content($fa-var-angle-double-down); } +.#{$fa-css-prefix}-angle-double-left:before { content: fa-content($fa-var-angle-double-left); } +.#{$fa-css-prefix}-angle-double-right:before { content: fa-content($fa-var-angle-double-right); } +.#{$fa-css-prefix}-angle-double-up:before { content: fa-content($fa-var-angle-double-up); } +.#{$fa-css-prefix}-angle-down:before { content: fa-content($fa-var-angle-down); } +.#{$fa-css-prefix}-angle-left:before { content: fa-content($fa-var-angle-left); } +.#{$fa-css-prefix}-angle-right:before { content: fa-content($fa-var-angle-right); } +.#{$fa-css-prefix}-angle-up:before { content: fa-content($fa-var-angle-up); } +.#{$fa-css-prefix}-angry:before { content: fa-content($fa-var-angry); } +.#{$fa-css-prefix}-angrycreative:before { content: fa-content($fa-var-angrycreative); } +.#{$fa-css-prefix}-angular:before { content: fa-content($fa-var-angular); } +.#{$fa-css-prefix}-app-store:before { content: fa-content($fa-var-app-store); } +.#{$fa-css-prefix}-app-store-ios:before { content: fa-content($fa-var-app-store-ios); } +.#{$fa-css-prefix}-apper:before { content: fa-content($fa-var-apper); } +.#{$fa-css-prefix}-apple:before { content: fa-content($fa-var-apple); } +.#{$fa-css-prefix}-apple-alt:before { content: fa-content($fa-var-apple-alt); } +.#{$fa-css-prefix}-apple-pay:before { content: fa-content($fa-var-apple-pay); } +.#{$fa-css-prefix}-archive:before { content: fa-content($fa-var-archive); } +.#{$fa-css-prefix}-archway:before { content: fa-content($fa-var-archway); } +.#{$fa-css-prefix}-arrow-alt-circle-down:before { content: fa-content($fa-var-arrow-alt-circle-down); } +.#{$fa-css-prefix}-arrow-alt-circle-left:before { content: fa-content($fa-var-arrow-alt-circle-left); } +.#{$fa-css-prefix}-arrow-alt-circle-right:before { content: fa-content($fa-var-arrow-alt-circle-right); } +.#{$fa-css-prefix}-arrow-alt-circle-up:before { content: fa-content($fa-var-arrow-alt-circle-up); } +.#{$fa-css-prefix}-arrow-circle-down:before { content: fa-content($fa-var-arrow-circle-down); } +.#{$fa-css-prefix}-arrow-circle-left:before { content: fa-content($fa-var-arrow-circle-left); } +.#{$fa-css-prefix}-arrow-circle-right:before { content: fa-content($fa-var-arrow-circle-right); } +.#{$fa-css-prefix}-arrow-circle-up:before { content: fa-content($fa-var-arrow-circle-up); } +.#{$fa-css-prefix}-arrow-down:before { content: fa-content($fa-var-arrow-down); } +.#{$fa-css-prefix}-arrow-left:before { content: fa-content($fa-var-arrow-left); } +.#{$fa-css-prefix}-arrow-right:before { content: fa-content($fa-var-arrow-right); } +.#{$fa-css-prefix}-arrow-up:before { content: fa-content($fa-var-arrow-up); } +.#{$fa-css-prefix}-arrows-alt:before { content: fa-content($fa-var-arrows-alt); } +.#{$fa-css-prefix}-arrows-alt-h:before { content: fa-content($fa-var-arrows-alt-h); } +.#{$fa-css-prefix}-arrows-alt-v:before { content: fa-content($fa-var-arrows-alt-v); } +.#{$fa-css-prefix}-assistive-listening-systems:before { content: fa-content($fa-var-assistive-listening-systems); } +.#{$fa-css-prefix}-asterisk:before { content: fa-content($fa-var-asterisk); } +.#{$fa-css-prefix}-asymmetrik:before { content: fa-content($fa-var-asymmetrik); } +.#{$fa-css-prefix}-at:before { content: fa-content($fa-var-at); } +.#{$fa-css-prefix}-atlas:before { content: fa-content($fa-var-atlas); } +.#{$fa-css-prefix}-atom:before { content: fa-content($fa-var-atom); } +.#{$fa-css-prefix}-audible:before { content: fa-content($fa-var-audible); } +.#{$fa-css-prefix}-audio-description:before { content: fa-content($fa-var-audio-description); } +.#{$fa-css-prefix}-autoprefixer:before { content: fa-content($fa-var-autoprefixer); } +.#{$fa-css-prefix}-avianex:before { content: fa-content($fa-var-avianex); } +.#{$fa-css-prefix}-aviato:before { content: fa-content($fa-var-aviato); } +.#{$fa-css-prefix}-award:before { content: fa-content($fa-var-award); } +.#{$fa-css-prefix}-aws:before { content: fa-content($fa-var-aws); } +.#{$fa-css-prefix}-backspace:before { content: fa-content($fa-var-backspace); } +.#{$fa-css-prefix}-backward:before { content: fa-content($fa-var-backward); } +.#{$fa-css-prefix}-balance-scale:before { content: fa-content($fa-var-balance-scale); } +.#{$fa-css-prefix}-ban:before { content: fa-content($fa-var-ban); } +.#{$fa-css-prefix}-band-aid:before { content: fa-content($fa-var-band-aid); } +.#{$fa-css-prefix}-bandcamp:before { content: fa-content($fa-var-bandcamp); } +.#{$fa-css-prefix}-barcode:before { content: fa-content($fa-var-barcode); } +.#{$fa-css-prefix}-bars:before { content: fa-content($fa-var-bars); } +.#{$fa-css-prefix}-baseball-ball:before { content: fa-content($fa-var-baseball-ball); } +.#{$fa-css-prefix}-basketball-ball:before { content: fa-content($fa-var-basketball-ball); } +.#{$fa-css-prefix}-bath:before { content: fa-content($fa-var-bath); } +.#{$fa-css-prefix}-battery-empty:before { content: fa-content($fa-var-battery-empty); } +.#{$fa-css-prefix}-battery-full:before { content: fa-content($fa-var-battery-full); } +.#{$fa-css-prefix}-battery-half:before { content: fa-content($fa-var-battery-half); } +.#{$fa-css-prefix}-battery-quarter:before { content: fa-content($fa-var-battery-quarter); } +.#{$fa-css-prefix}-battery-three-quarters:before { content: fa-content($fa-var-battery-three-quarters); } +.#{$fa-css-prefix}-bed:before { content: fa-content($fa-var-bed); } +.#{$fa-css-prefix}-beer:before { content: fa-content($fa-var-beer); } +.#{$fa-css-prefix}-behance:before { content: fa-content($fa-var-behance); } +.#{$fa-css-prefix}-behance-square:before { content: fa-content($fa-var-behance-square); } +.#{$fa-css-prefix}-bell:before { content: fa-content($fa-var-bell); } +.#{$fa-css-prefix}-bell-slash:before { content: fa-content($fa-var-bell-slash); } +.#{$fa-css-prefix}-bezier-curve:before { content: fa-content($fa-var-bezier-curve); } +.#{$fa-css-prefix}-bicycle:before { content: fa-content($fa-var-bicycle); } +.#{$fa-css-prefix}-bimobject:before { content: fa-content($fa-var-bimobject); } +.#{$fa-css-prefix}-binoculars:before { content: fa-content($fa-var-binoculars); } +.#{$fa-css-prefix}-birthday-cake:before { content: fa-content($fa-var-birthday-cake); } +.#{$fa-css-prefix}-bitbucket:before { content: fa-content($fa-var-bitbucket); } +.#{$fa-css-prefix}-bitcoin:before { content: fa-content($fa-var-bitcoin); } +.#{$fa-css-prefix}-bity:before { content: fa-content($fa-var-bity); } +.#{$fa-css-prefix}-black-tie:before { content: fa-content($fa-var-black-tie); } +.#{$fa-css-prefix}-blackberry:before { content: fa-content($fa-var-blackberry); } +.#{$fa-css-prefix}-blender:before { content: fa-content($fa-var-blender); } +.#{$fa-css-prefix}-blind:before { content: fa-content($fa-var-blind); } +.#{$fa-css-prefix}-blogger:before { content: fa-content($fa-var-blogger); } +.#{$fa-css-prefix}-blogger-b:before { content: fa-content($fa-var-blogger-b); } +.#{$fa-css-prefix}-bluetooth:before { content: fa-content($fa-var-bluetooth); } +.#{$fa-css-prefix}-bluetooth-b:before { content: fa-content($fa-var-bluetooth-b); } +.#{$fa-css-prefix}-bold:before { content: fa-content($fa-var-bold); } +.#{$fa-css-prefix}-bolt:before { content: fa-content($fa-var-bolt); } +.#{$fa-css-prefix}-bomb:before { content: fa-content($fa-var-bomb); } +.#{$fa-css-prefix}-bone:before { content: fa-content($fa-var-bone); } +.#{$fa-css-prefix}-bong:before { content: fa-content($fa-var-bong); } +.#{$fa-css-prefix}-book:before { content: fa-content($fa-var-book); } +.#{$fa-css-prefix}-book-open:before { content: fa-content($fa-var-book-open); } +.#{$fa-css-prefix}-book-reader:before { content: fa-content($fa-var-book-reader); } +.#{$fa-css-prefix}-bookmark:before { content: fa-content($fa-var-bookmark); } +.#{$fa-css-prefix}-bowling-ball:before { content: fa-content($fa-var-bowling-ball); } +.#{$fa-css-prefix}-box:before { content: fa-content($fa-var-box); } +.#{$fa-css-prefix}-box-open:before { content: fa-content($fa-var-box-open); } +.#{$fa-css-prefix}-boxes:before { content: fa-content($fa-var-boxes); } +.#{$fa-css-prefix}-braille:before { content: fa-content($fa-var-braille); } +.#{$fa-css-prefix}-brain:before { content: fa-content($fa-var-brain); } +.#{$fa-css-prefix}-briefcase:before { content: fa-content($fa-var-briefcase); } +.#{$fa-css-prefix}-briefcase-medical:before { content: fa-content($fa-var-briefcase-medical); } +.#{$fa-css-prefix}-broadcast-tower:before { content: fa-content($fa-var-broadcast-tower); } +.#{$fa-css-prefix}-broom:before { content: fa-content($fa-var-broom); } +.#{$fa-css-prefix}-brush:before { content: fa-content($fa-var-brush); } +.#{$fa-css-prefix}-btc:before { content: fa-content($fa-var-btc); } +.#{$fa-css-prefix}-bug:before { content: fa-content($fa-var-bug); } +.#{$fa-css-prefix}-building:before { content: fa-content($fa-var-building); } +.#{$fa-css-prefix}-bullhorn:before { content: fa-content($fa-var-bullhorn); } +.#{$fa-css-prefix}-bullseye:before { content: fa-content($fa-var-bullseye); } +.#{$fa-css-prefix}-burn:before { content: fa-content($fa-var-burn); } +.#{$fa-css-prefix}-buromobelexperte:before { content: fa-content($fa-var-buromobelexperte); } +.#{$fa-css-prefix}-bus:before { content: fa-content($fa-var-bus); } +.#{$fa-css-prefix}-bus-alt:before { content: fa-content($fa-var-bus-alt); } +.#{$fa-css-prefix}-buysellads:before { content: fa-content($fa-var-buysellads); } +.#{$fa-css-prefix}-calculator:before { content: fa-content($fa-var-calculator); } +.#{$fa-css-prefix}-calendar:before { content: fa-content($fa-var-calendar); } +.#{$fa-css-prefix}-calendar-alt:before { content: fa-content($fa-var-calendar-alt); } +.#{$fa-css-prefix}-calendar-check:before { content: fa-content($fa-var-calendar-check); } +.#{$fa-css-prefix}-calendar-minus:before { content: fa-content($fa-var-calendar-minus); } +.#{$fa-css-prefix}-calendar-plus:before { content: fa-content($fa-var-calendar-plus); } +.#{$fa-css-prefix}-calendar-times:before { content: fa-content($fa-var-calendar-times); } +.#{$fa-css-prefix}-camera:before { content: fa-content($fa-var-camera); } +.#{$fa-css-prefix}-camera-retro:before { content: fa-content($fa-var-camera-retro); } +.#{$fa-css-prefix}-cannabis:before { content: fa-content($fa-var-cannabis); } +.#{$fa-css-prefix}-capsules:before { content: fa-content($fa-var-capsules); } +.#{$fa-css-prefix}-car:before { content: fa-content($fa-var-car); } +.#{$fa-css-prefix}-car-alt:before { content: fa-content($fa-var-car-alt); } +.#{$fa-css-prefix}-car-battery:before { content: fa-content($fa-var-car-battery); } +.#{$fa-css-prefix}-car-crash:before { content: fa-content($fa-var-car-crash); } +.#{$fa-css-prefix}-car-side:before { content: fa-content($fa-var-car-side); } +.#{$fa-css-prefix}-caret-down:before { content: fa-content($fa-var-caret-down); } +.#{$fa-css-prefix}-caret-left:before { content: fa-content($fa-var-caret-left); } +.#{$fa-css-prefix}-caret-right:before { content: fa-content($fa-var-caret-right); } +.#{$fa-css-prefix}-caret-square-down:before { content: fa-content($fa-var-caret-square-down); } +.#{$fa-css-prefix}-caret-square-left:before { content: fa-content($fa-var-caret-square-left); } +.#{$fa-css-prefix}-caret-square-right:before { content: fa-content($fa-var-caret-square-right); } +.#{$fa-css-prefix}-caret-square-up:before { content: fa-content($fa-var-caret-square-up); } +.#{$fa-css-prefix}-caret-up:before { content: fa-content($fa-var-caret-up); } +.#{$fa-css-prefix}-cart-arrow-down:before { content: fa-content($fa-var-cart-arrow-down); } +.#{$fa-css-prefix}-cart-plus:before { content: fa-content($fa-var-cart-plus); } +.#{$fa-css-prefix}-cc-amazon-pay:before { content: fa-content($fa-var-cc-amazon-pay); } +.#{$fa-css-prefix}-cc-amex:before { content: fa-content($fa-var-cc-amex); } +.#{$fa-css-prefix}-cc-apple-pay:before { content: fa-content($fa-var-cc-apple-pay); } +.#{$fa-css-prefix}-cc-diners-club:before { content: fa-content($fa-var-cc-diners-club); } +.#{$fa-css-prefix}-cc-discover:before { content: fa-content($fa-var-cc-discover); } +.#{$fa-css-prefix}-cc-jcb:before { content: fa-content($fa-var-cc-jcb); } +.#{$fa-css-prefix}-cc-mastercard:before { content: fa-content($fa-var-cc-mastercard); } +.#{$fa-css-prefix}-cc-paypal:before { content: fa-content($fa-var-cc-paypal); } +.#{$fa-css-prefix}-cc-stripe:before { content: fa-content($fa-var-cc-stripe); } +.#{$fa-css-prefix}-cc-visa:before { content: fa-content($fa-var-cc-visa); } +.#{$fa-css-prefix}-centercode:before { content: fa-content($fa-var-centercode); } +.#{$fa-css-prefix}-certificate:before { content: fa-content($fa-var-certificate); } +.#{$fa-css-prefix}-chalkboard:before { content: fa-content($fa-var-chalkboard); } +.#{$fa-css-prefix}-chalkboard-teacher:before { content: fa-content($fa-var-chalkboard-teacher); } +.#{$fa-css-prefix}-charging-station:before { content: fa-content($fa-var-charging-station); } +.#{$fa-css-prefix}-chart-area:before { content: fa-content($fa-var-chart-area); } +.#{$fa-css-prefix}-chart-bar:before { content: fa-content($fa-var-chart-bar); } +.#{$fa-css-prefix}-chart-line:before { content: fa-content($fa-var-chart-line); } +.#{$fa-css-prefix}-chart-pie:before { content: fa-content($fa-var-chart-pie); } +.#{$fa-css-prefix}-check:before { content: fa-content($fa-var-check); } +.#{$fa-css-prefix}-check-circle:before { content: fa-content($fa-var-check-circle); } +.#{$fa-css-prefix}-check-double:before { content: fa-content($fa-var-check-double); } +.#{$fa-css-prefix}-check-square:before { content: fa-content($fa-var-check-square); } +.#{$fa-css-prefix}-chess:before { content: fa-content($fa-var-chess); } +.#{$fa-css-prefix}-chess-bishop:before { content: fa-content($fa-var-chess-bishop); } +.#{$fa-css-prefix}-chess-board:before { content: fa-content($fa-var-chess-board); } +.#{$fa-css-prefix}-chess-king:before { content: fa-content($fa-var-chess-king); } +.#{$fa-css-prefix}-chess-knight:before { content: fa-content($fa-var-chess-knight); } +.#{$fa-css-prefix}-chess-pawn:before { content: fa-content($fa-var-chess-pawn); } +.#{$fa-css-prefix}-chess-queen:before { content: fa-content($fa-var-chess-queen); } +.#{$fa-css-prefix}-chess-rook:before { content: fa-content($fa-var-chess-rook); } +.#{$fa-css-prefix}-chevron-circle-down:before { content: fa-content($fa-var-chevron-circle-down); } +.#{$fa-css-prefix}-chevron-circle-left:before { content: fa-content($fa-var-chevron-circle-left); } +.#{$fa-css-prefix}-chevron-circle-right:before { content: fa-content($fa-var-chevron-circle-right); } +.#{$fa-css-prefix}-chevron-circle-up:before { content: fa-content($fa-var-chevron-circle-up); } +.#{$fa-css-prefix}-chevron-down:before { content: fa-content($fa-var-chevron-down); } +.#{$fa-css-prefix}-chevron-left:before { content: fa-content($fa-var-chevron-left); } +.#{$fa-css-prefix}-chevron-right:before { content: fa-content($fa-var-chevron-right); } +.#{$fa-css-prefix}-chevron-up:before { content: fa-content($fa-var-chevron-up); } +.#{$fa-css-prefix}-child:before { content: fa-content($fa-var-child); } +.#{$fa-css-prefix}-chrome:before { content: fa-content($fa-var-chrome); } +.#{$fa-css-prefix}-church:before { content: fa-content($fa-var-church); } +.#{$fa-css-prefix}-circle:before { content: fa-content($fa-var-circle); } +.#{$fa-css-prefix}-circle-notch:before { content: fa-content($fa-var-circle-notch); } +.#{$fa-css-prefix}-clipboard:before { content: fa-content($fa-var-clipboard); } +.#{$fa-css-prefix}-clipboard-check:before { content: fa-content($fa-var-clipboard-check); } +.#{$fa-css-prefix}-clipboard-list:before { content: fa-content($fa-var-clipboard-list); } +.#{$fa-css-prefix}-clock:before { content: fa-content($fa-var-clock); } +.#{$fa-css-prefix}-clone:before { content: fa-content($fa-var-clone); } +.#{$fa-css-prefix}-closed-captioning:before { content: fa-content($fa-var-closed-captioning); } +.#{$fa-css-prefix}-cloud:before { content: fa-content($fa-var-cloud); } +.#{$fa-css-prefix}-cloud-download-alt:before { content: fa-content($fa-var-cloud-download-alt); } +.#{$fa-css-prefix}-cloud-upload-alt:before { content: fa-content($fa-var-cloud-upload-alt); } +.#{$fa-css-prefix}-cloudscale:before { content: fa-content($fa-var-cloudscale); } +.#{$fa-css-prefix}-cloudsmith:before { content: fa-content($fa-var-cloudsmith); } +.#{$fa-css-prefix}-cloudversify:before { content: fa-content($fa-var-cloudversify); } +.#{$fa-css-prefix}-cocktail:before { content: fa-content($fa-var-cocktail); } +.#{$fa-css-prefix}-code:before { content: fa-content($fa-var-code); } +.#{$fa-css-prefix}-code-branch:before { content: fa-content($fa-var-code-branch); } +.#{$fa-css-prefix}-codepen:before { content: fa-content($fa-var-codepen); } +.#{$fa-css-prefix}-codiepie:before { content: fa-content($fa-var-codiepie); } +.#{$fa-css-prefix}-coffee:before { content: fa-content($fa-var-coffee); } +.#{$fa-css-prefix}-cog:before { content: fa-content($fa-var-cog); } +.#{$fa-css-prefix}-cogs:before { content: fa-content($fa-var-cogs); } +.#{$fa-css-prefix}-coins:before { content: fa-content($fa-var-coins); } +.#{$fa-css-prefix}-columns:before { content: fa-content($fa-var-columns); } +.#{$fa-css-prefix}-comment:before { content: fa-content($fa-var-comment); } +.#{$fa-css-prefix}-comment-alt:before { content: fa-content($fa-var-comment-alt); } +.#{$fa-css-prefix}-comment-dots:before { content: fa-content($fa-var-comment-dots); } +.#{$fa-css-prefix}-comment-slash:before { content: fa-content($fa-var-comment-slash); } +.#{$fa-css-prefix}-comments:before { content: fa-content($fa-var-comments); } +.#{$fa-css-prefix}-compact-disc:before { content: fa-content($fa-var-compact-disc); } +.#{$fa-css-prefix}-compass:before { content: fa-content($fa-var-compass); } +.#{$fa-css-prefix}-compress:before { content: fa-content($fa-var-compress); } +.#{$fa-css-prefix}-concierge-bell:before { content: fa-content($fa-var-concierge-bell); } +.#{$fa-css-prefix}-connectdevelop:before { content: fa-content($fa-var-connectdevelop); } +.#{$fa-css-prefix}-contao:before { content: fa-content($fa-var-contao); } +.#{$fa-css-prefix}-cookie:before { content: fa-content($fa-var-cookie); } +.#{$fa-css-prefix}-cookie-bite:before { content: fa-content($fa-var-cookie-bite); } +.#{$fa-css-prefix}-copy:before { content: fa-content($fa-var-copy); } +.#{$fa-css-prefix}-copyright:before { content: fa-content($fa-var-copyright); } +.#{$fa-css-prefix}-couch:before { content: fa-content($fa-var-couch); } +.#{$fa-css-prefix}-cpanel:before { content: fa-content($fa-var-cpanel); } +.#{$fa-css-prefix}-creative-commons:before { content: fa-content($fa-var-creative-commons); } +.#{$fa-css-prefix}-creative-commons-by:before { content: fa-content($fa-var-creative-commons-by); } +.#{$fa-css-prefix}-creative-commons-nc:before { content: fa-content($fa-var-creative-commons-nc); } +.#{$fa-css-prefix}-creative-commons-nc-eu:before { content: fa-content($fa-var-creative-commons-nc-eu); } +.#{$fa-css-prefix}-creative-commons-nc-jp:before { content: fa-content($fa-var-creative-commons-nc-jp); } +.#{$fa-css-prefix}-creative-commons-nd:before { content: fa-content($fa-var-creative-commons-nd); } +.#{$fa-css-prefix}-creative-commons-pd:before { content: fa-content($fa-var-creative-commons-pd); } +.#{$fa-css-prefix}-creative-commons-pd-alt:before { content: fa-content($fa-var-creative-commons-pd-alt); } +.#{$fa-css-prefix}-creative-commons-remix:before { content: fa-content($fa-var-creative-commons-remix); } +.#{$fa-css-prefix}-creative-commons-sa:before { content: fa-content($fa-var-creative-commons-sa); } +.#{$fa-css-prefix}-creative-commons-sampling:before { content: fa-content($fa-var-creative-commons-sampling); } +.#{$fa-css-prefix}-creative-commons-sampling-plus:before { content: fa-content($fa-var-creative-commons-sampling-plus); } +.#{$fa-css-prefix}-creative-commons-share:before { content: fa-content($fa-var-creative-commons-share); } +.#{$fa-css-prefix}-credit-card:before { content: fa-content($fa-var-credit-card); } +.#{$fa-css-prefix}-crop:before { content: fa-content($fa-var-crop); } +.#{$fa-css-prefix}-crop-alt:before { content: fa-content($fa-var-crop-alt); } +.#{$fa-css-prefix}-crosshairs:before { content: fa-content($fa-var-crosshairs); } +.#{$fa-css-prefix}-crow:before { content: fa-content($fa-var-crow); } +.#{$fa-css-prefix}-crown:before { content: fa-content($fa-var-crown); } +.#{$fa-css-prefix}-css3:before { content: fa-content($fa-var-css3); } +.#{$fa-css-prefix}-css3-alt:before { content: fa-content($fa-var-css3-alt); } +.#{$fa-css-prefix}-cube:before { content: fa-content($fa-var-cube); } +.#{$fa-css-prefix}-cubes:before { content: fa-content($fa-var-cubes); } +.#{$fa-css-prefix}-cut:before { content: fa-content($fa-var-cut); } +.#{$fa-css-prefix}-cuttlefish:before { content: fa-content($fa-var-cuttlefish); } +.#{$fa-css-prefix}-d-and-d:before { content: fa-content($fa-var-d-and-d); } +.#{$fa-css-prefix}-dashcube:before { content: fa-content($fa-var-dashcube); } +.#{$fa-css-prefix}-database:before { content: fa-content($fa-var-database); } +.#{$fa-css-prefix}-deaf:before { content: fa-content($fa-var-deaf); } +.#{$fa-css-prefix}-delicious:before { content: fa-content($fa-var-delicious); } +.#{$fa-css-prefix}-deploydog:before { content: fa-content($fa-var-deploydog); } +.#{$fa-css-prefix}-deskpro:before { content: fa-content($fa-var-deskpro); } +.#{$fa-css-prefix}-desktop:before { content: fa-content($fa-var-desktop); } +.#{$fa-css-prefix}-deviantart:before { content: fa-content($fa-var-deviantart); } +.#{$fa-css-prefix}-diagnoses:before { content: fa-content($fa-var-diagnoses); } +.#{$fa-css-prefix}-dice:before { content: fa-content($fa-var-dice); } +.#{$fa-css-prefix}-dice-five:before { content: fa-content($fa-var-dice-five); } +.#{$fa-css-prefix}-dice-four:before { content: fa-content($fa-var-dice-four); } +.#{$fa-css-prefix}-dice-one:before { content: fa-content($fa-var-dice-one); } +.#{$fa-css-prefix}-dice-six:before { content: fa-content($fa-var-dice-six); } +.#{$fa-css-prefix}-dice-three:before { content: fa-content($fa-var-dice-three); } +.#{$fa-css-prefix}-dice-two:before { content: fa-content($fa-var-dice-two); } +.#{$fa-css-prefix}-digg:before { content: fa-content($fa-var-digg); } +.#{$fa-css-prefix}-digital-ocean:before { content: fa-content($fa-var-digital-ocean); } +.#{$fa-css-prefix}-digital-tachograph:before { content: fa-content($fa-var-digital-tachograph); } +.#{$fa-css-prefix}-directions:before { content: fa-content($fa-var-directions); } +.#{$fa-css-prefix}-discord:before { content: fa-content($fa-var-discord); } +.#{$fa-css-prefix}-discourse:before { content: fa-content($fa-var-discourse); } +.#{$fa-css-prefix}-divide:before { content: fa-content($fa-var-divide); } +.#{$fa-css-prefix}-dizzy:before { content: fa-content($fa-var-dizzy); } +.#{$fa-css-prefix}-dna:before { content: fa-content($fa-var-dna); } +.#{$fa-css-prefix}-dochub:before { content: fa-content($fa-var-dochub); } +.#{$fa-css-prefix}-docker:before { content: fa-content($fa-var-docker); } +.#{$fa-css-prefix}-dollar-sign:before { content: fa-content($fa-var-dollar-sign); } +.#{$fa-css-prefix}-dolly:before { content: fa-content($fa-var-dolly); } +.#{$fa-css-prefix}-dolly-flatbed:before { content: fa-content($fa-var-dolly-flatbed); } +.#{$fa-css-prefix}-donate:before { content: fa-content($fa-var-donate); } +.#{$fa-css-prefix}-door-closed:before { content: fa-content($fa-var-door-closed); } +.#{$fa-css-prefix}-door-open:before { content: fa-content($fa-var-door-open); } +.#{$fa-css-prefix}-dot-circle:before { content: fa-content($fa-var-dot-circle); } +.#{$fa-css-prefix}-dove:before { content: fa-content($fa-var-dove); } +.#{$fa-css-prefix}-download:before { content: fa-content($fa-var-download); } +.#{$fa-css-prefix}-draft2digital:before { content: fa-content($fa-var-draft2digital); } +.#{$fa-css-prefix}-drafting-compass:before { content: fa-content($fa-var-drafting-compass); } +.#{$fa-css-prefix}-draw-polygon:before { content: fa-content($fa-var-draw-polygon); } +.#{$fa-css-prefix}-dribbble:before { content: fa-content($fa-var-dribbble); } +.#{$fa-css-prefix}-dribbble-square:before { content: fa-content($fa-var-dribbble-square); } +.#{$fa-css-prefix}-dropbox:before { content: fa-content($fa-var-dropbox); } +.#{$fa-css-prefix}-drum:before { content: fa-content($fa-var-drum); } +.#{$fa-css-prefix}-drum-steelpan:before { content: fa-content($fa-var-drum-steelpan); } +.#{$fa-css-prefix}-drupal:before { content: fa-content($fa-var-drupal); } +.#{$fa-css-prefix}-dumbbell:before { content: fa-content($fa-var-dumbbell); } +.#{$fa-css-prefix}-dyalog:before { content: fa-content($fa-var-dyalog); } +.#{$fa-css-prefix}-earlybirds:before { content: fa-content($fa-var-earlybirds); } +.#{$fa-css-prefix}-ebay:before { content: fa-content($fa-var-ebay); } +.#{$fa-css-prefix}-edge:before { content: fa-content($fa-var-edge); } +.#{$fa-css-prefix}-edit:before { content: fa-content($fa-var-edit); } +.#{$fa-css-prefix}-eject:before { content: fa-content($fa-var-eject); } +.#{$fa-css-prefix}-elementor:before { content: fa-content($fa-var-elementor); } +.#{$fa-css-prefix}-ellipsis-h:before { content: fa-content($fa-var-ellipsis-h); } +.#{$fa-css-prefix}-ellipsis-v:before { content: fa-content($fa-var-ellipsis-v); } +.#{$fa-css-prefix}-ello:before { content: fa-content($fa-var-ello); } +.#{$fa-css-prefix}-ember:before { content: fa-content($fa-var-ember); } +.#{$fa-css-prefix}-empire:before { content: fa-content($fa-var-empire); } +.#{$fa-css-prefix}-envelope:before { content: fa-content($fa-var-envelope); } +.#{$fa-css-prefix}-envelope-open:before { content: fa-content($fa-var-envelope-open); } +.#{$fa-css-prefix}-envelope-square:before { content: fa-content($fa-var-envelope-square); } +.#{$fa-css-prefix}-envira:before { content: fa-content($fa-var-envira); } +.#{$fa-css-prefix}-equals:before { content: fa-content($fa-var-equals); } +.#{$fa-css-prefix}-eraser:before { content: fa-content($fa-var-eraser); } +.#{$fa-css-prefix}-erlang:before { content: fa-content($fa-var-erlang); } +.#{$fa-css-prefix}-ethereum:before { content: fa-content($fa-var-ethereum); } +.#{$fa-css-prefix}-etsy:before { content: fa-content($fa-var-etsy); } +.#{$fa-css-prefix}-euro-sign:before { content: fa-content($fa-var-euro-sign); } +.#{$fa-css-prefix}-exchange-alt:before { content: fa-content($fa-var-exchange-alt); } +.#{$fa-css-prefix}-exclamation:before { content: fa-content($fa-var-exclamation); } +.#{$fa-css-prefix}-exclamation-circle:before { content: fa-content($fa-var-exclamation-circle); } +.#{$fa-css-prefix}-exclamation-triangle:before { content: fa-content($fa-var-exclamation-triangle); } +.#{$fa-css-prefix}-expand:before { content: fa-content($fa-var-expand); } +.#{$fa-css-prefix}-expand-arrows-alt:before { content: fa-content($fa-var-expand-arrows-alt); } +.#{$fa-css-prefix}-expeditedssl:before { content: fa-content($fa-var-expeditedssl); } +.#{$fa-css-prefix}-external-link-alt:before { content: fa-content($fa-var-external-link-alt); } +.#{$fa-css-prefix}-external-link-square-alt:before { content: fa-content($fa-var-external-link-square-alt); } +.#{$fa-css-prefix}-eye:before { content: fa-content($fa-var-eye); } +.#{$fa-css-prefix}-eye-dropper:before { content: fa-content($fa-var-eye-dropper); } +.#{$fa-css-prefix}-eye-slash:before { content: fa-content($fa-var-eye-slash); } +.#{$fa-css-prefix}-facebook:before { content: fa-content($fa-var-facebook); } +.#{$fa-css-prefix}-facebook-f:before { content: fa-content($fa-var-facebook-f); } +.#{$fa-css-prefix}-facebook-messenger:before { content: fa-content($fa-var-facebook-messenger); } +.#{$fa-css-prefix}-facebook-square:before { content: fa-content($fa-var-facebook-square); } +.#{$fa-css-prefix}-fast-backward:before { content: fa-content($fa-var-fast-backward); } +.#{$fa-css-prefix}-fast-forward:before { content: fa-content($fa-var-fast-forward); } +.#{$fa-css-prefix}-fax:before { content: fa-content($fa-var-fax); } +.#{$fa-css-prefix}-feather:before { content: fa-content($fa-var-feather); } +.#{$fa-css-prefix}-feather-alt:before { content: fa-content($fa-var-feather-alt); } +.#{$fa-css-prefix}-female:before { content: fa-content($fa-var-female); } +.#{$fa-css-prefix}-fighter-jet:before { content: fa-content($fa-var-fighter-jet); } +.#{$fa-css-prefix}-file:before { content: fa-content($fa-var-file); } +.#{$fa-css-prefix}-file-alt:before { content: fa-content($fa-var-file-alt); } +.#{$fa-css-prefix}-file-archive:before { content: fa-content($fa-var-file-archive); } +.#{$fa-css-prefix}-file-audio:before { content: fa-content($fa-var-file-audio); } +.#{$fa-css-prefix}-file-code:before { content: fa-content($fa-var-file-code); } +.#{$fa-css-prefix}-file-contract:before { content: fa-content($fa-var-file-contract); } +.#{$fa-css-prefix}-file-download:before { content: fa-content($fa-var-file-download); } +.#{$fa-css-prefix}-file-excel:before { content: fa-content($fa-var-file-excel); } +.#{$fa-css-prefix}-file-export:before { content: fa-content($fa-var-file-export); } +.#{$fa-css-prefix}-file-image:before { content: fa-content($fa-var-file-image); } +.#{$fa-css-prefix}-file-import:before { content: fa-content($fa-var-file-import); } +.#{$fa-css-prefix}-file-invoice:before { content: fa-content($fa-var-file-invoice); } +.#{$fa-css-prefix}-file-invoice-dollar:before { content: fa-content($fa-var-file-invoice-dollar); } +.#{$fa-css-prefix}-file-medical:before { content: fa-content($fa-var-file-medical); } +.#{$fa-css-prefix}-file-medical-alt:before { content: fa-content($fa-var-file-medical-alt); } +.#{$fa-css-prefix}-file-pdf:before { content: fa-content($fa-var-file-pdf); } +.#{$fa-css-prefix}-file-powerpoint:before { content: fa-content($fa-var-file-powerpoint); } +.#{$fa-css-prefix}-file-prescription:before { content: fa-content($fa-var-file-prescription); } +.#{$fa-css-prefix}-file-signature:before { content: fa-content($fa-var-file-signature); } +.#{$fa-css-prefix}-file-upload:before { content: fa-content($fa-var-file-upload); } +.#{$fa-css-prefix}-file-video:before { content: fa-content($fa-var-file-video); } +.#{$fa-css-prefix}-file-word:before { content: fa-content($fa-var-file-word); } +.#{$fa-css-prefix}-fill:before { content: fa-content($fa-var-fill); } +.#{$fa-css-prefix}-fill-drip:before { content: fa-content($fa-var-fill-drip); } +.#{$fa-css-prefix}-film:before { content: fa-content($fa-var-film); } +.#{$fa-css-prefix}-filter:before { content: fa-content($fa-var-filter); } +.#{$fa-css-prefix}-fingerprint:before { content: fa-content($fa-var-fingerprint); } +.#{$fa-css-prefix}-fire:before { content: fa-content($fa-var-fire); } +.#{$fa-css-prefix}-fire-extinguisher:before { content: fa-content($fa-var-fire-extinguisher); } +.#{$fa-css-prefix}-firefox:before { content: fa-content($fa-var-firefox); } +.#{$fa-css-prefix}-first-aid:before { content: fa-content($fa-var-first-aid); } +.#{$fa-css-prefix}-first-order:before { content: fa-content($fa-var-first-order); } +.#{$fa-css-prefix}-first-order-alt:before { content: fa-content($fa-var-first-order-alt); } +.#{$fa-css-prefix}-firstdraft:before { content: fa-content($fa-var-firstdraft); } +.#{$fa-css-prefix}-fish:before { content: fa-content($fa-var-fish); } +.#{$fa-css-prefix}-flag:before { content: fa-content($fa-var-flag); } +.#{$fa-css-prefix}-flag-checkered:before { content: fa-content($fa-var-flag-checkered); } +.#{$fa-css-prefix}-flask:before { content: fa-content($fa-var-flask); } +.#{$fa-css-prefix}-flickr:before { content: fa-content($fa-var-flickr); } +.#{$fa-css-prefix}-flipboard:before { content: fa-content($fa-var-flipboard); } +.#{$fa-css-prefix}-flushed:before { content: fa-content($fa-var-flushed); } +.#{$fa-css-prefix}-fly:before { content: fa-content($fa-var-fly); } +.#{$fa-css-prefix}-folder:before { content: fa-content($fa-var-folder); } +.#{$fa-css-prefix}-folder-open:before { content: fa-content($fa-var-folder-open); } +.#{$fa-css-prefix}-font:before { content: fa-content($fa-var-font); } +.#{$fa-css-prefix}-font-awesome:before { content: fa-content($fa-var-font-awesome); } +.#{$fa-css-prefix}-font-awesome-alt:before { content: fa-content($fa-var-font-awesome-alt); } +.#{$fa-css-prefix}-font-awesome-flag:before { content: fa-content($fa-var-font-awesome-flag); } +.#{$fa-css-prefix}-font-awesome-logo-full:before { content: fa-content($fa-var-font-awesome-logo-full); } +.#{$fa-css-prefix}-fonticons:before { content: fa-content($fa-var-fonticons); } +.#{$fa-css-prefix}-fonticons-fi:before { content: fa-content($fa-var-fonticons-fi); } +.#{$fa-css-prefix}-football-ball:before { content: fa-content($fa-var-football-ball); } +.#{$fa-css-prefix}-fort-awesome:before { content: fa-content($fa-var-fort-awesome); } +.#{$fa-css-prefix}-fort-awesome-alt:before { content: fa-content($fa-var-fort-awesome-alt); } +.#{$fa-css-prefix}-forumbee:before { content: fa-content($fa-var-forumbee); } +.#{$fa-css-prefix}-forward:before { content: fa-content($fa-var-forward); } +.#{$fa-css-prefix}-foursquare:before { content: fa-content($fa-var-foursquare); } +.#{$fa-css-prefix}-free-code-camp:before { content: fa-content($fa-var-free-code-camp); } +.#{$fa-css-prefix}-freebsd:before { content: fa-content($fa-var-freebsd); } +.#{$fa-css-prefix}-frog:before { content: fa-content($fa-var-frog); } +.#{$fa-css-prefix}-frown:before { content: fa-content($fa-var-frown); } +.#{$fa-css-prefix}-frown-open:before { content: fa-content($fa-var-frown-open); } +.#{$fa-css-prefix}-fulcrum:before { content: fa-content($fa-var-fulcrum); } +.#{$fa-css-prefix}-futbol:before { content: fa-content($fa-var-futbol); } +.#{$fa-css-prefix}-galactic-republic:before { content: fa-content($fa-var-galactic-republic); } +.#{$fa-css-prefix}-galactic-senate:before { content: fa-content($fa-var-galactic-senate); } +.#{$fa-css-prefix}-gamepad:before { content: fa-content($fa-var-gamepad); } +.#{$fa-css-prefix}-gas-pump:before { content: fa-content($fa-var-gas-pump); } +.#{$fa-css-prefix}-gavel:before { content: fa-content($fa-var-gavel); } +.#{$fa-css-prefix}-gem:before { content: fa-content($fa-var-gem); } +.#{$fa-css-prefix}-genderless:before { content: fa-content($fa-var-genderless); } +.#{$fa-css-prefix}-get-pocket:before { content: fa-content($fa-var-get-pocket); } +.#{$fa-css-prefix}-gg:before { content: fa-content($fa-var-gg); } +.#{$fa-css-prefix}-gg-circle:before { content: fa-content($fa-var-gg-circle); } +.#{$fa-css-prefix}-gift:before { content: fa-content($fa-var-gift); } +.#{$fa-css-prefix}-git:before { content: fa-content($fa-var-git); } +.#{$fa-css-prefix}-git-square:before { content: fa-content($fa-var-git-square); } +.#{$fa-css-prefix}-github:before { content: fa-content($fa-var-github); } +.#{$fa-css-prefix}-github-alt:before { content: fa-content($fa-var-github-alt); } +.#{$fa-css-prefix}-github-square:before { content: fa-content($fa-var-github-square); } +.#{$fa-css-prefix}-gitkraken:before { content: fa-content($fa-var-gitkraken); } +.#{$fa-css-prefix}-gitlab:before { content: fa-content($fa-var-gitlab); } +.#{$fa-css-prefix}-gitter:before { content: fa-content($fa-var-gitter); } +.#{$fa-css-prefix}-glass-martini:before { content: fa-content($fa-var-glass-martini); } +.#{$fa-css-prefix}-glass-martini-alt:before { content: fa-content($fa-var-glass-martini-alt); } +.#{$fa-css-prefix}-glasses:before { content: fa-content($fa-var-glasses); } +.#{$fa-css-prefix}-glide:before { content: fa-content($fa-var-glide); } +.#{$fa-css-prefix}-glide-g:before { content: fa-content($fa-var-glide-g); } +.#{$fa-css-prefix}-globe:before { content: fa-content($fa-var-globe); } +.#{$fa-css-prefix}-globe-africa:before { content: fa-content($fa-var-globe-africa); } +.#{$fa-css-prefix}-globe-americas:before { content: fa-content($fa-var-globe-americas); } +.#{$fa-css-prefix}-globe-asia:before { content: fa-content($fa-var-globe-asia); } +.#{$fa-css-prefix}-gofore:before { content: fa-content($fa-var-gofore); } +.#{$fa-css-prefix}-golf-ball:before { content: fa-content($fa-var-golf-ball); } +.#{$fa-css-prefix}-goodreads:before { content: fa-content($fa-var-goodreads); } +.#{$fa-css-prefix}-goodreads-g:before { content: fa-content($fa-var-goodreads-g); } +.#{$fa-css-prefix}-google:before { content: fa-content($fa-var-google); } +.#{$fa-css-prefix}-google-drive:before { content: fa-content($fa-var-google-drive); } +.#{$fa-css-prefix}-google-play:before { content: fa-content($fa-var-google-play); } +.#{$fa-css-prefix}-google-plus:before { content: fa-content($fa-var-google-plus); } +.#{$fa-css-prefix}-google-plus-g:before { content: fa-content($fa-var-google-plus-g); } +.#{$fa-css-prefix}-google-plus-square:before { content: fa-content($fa-var-google-plus-square); } +.#{$fa-css-prefix}-google-wallet:before { content: fa-content($fa-var-google-wallet); } +.#{$fa-css-prefix}-graduation-cap:before { content: fa-content($fa-var-graduation-cap); } +.#{$fa-css-prefix}-gratipay:before { content: fa-content($fa-var-gratipay); } +.#{$fa-css-prefix}-grav:before { content: fa-content($fa-var-grav); } +.#{$fa-css-prefix}-greater-than:before { content: fa-content($fa-var-greater-than); } +.#{$fa-css-prefix}-greater-than-equal:before { content: fa-content($fa-var-greater-than-equal); } +.#{$fa-css-prefix}-grimace:before { content: fa-content($fa-var-grimace); } +.#{$fa-css-prefix}-grin:before { content: fa-content($fa-var-grin); } +.#{$fa-css-prefix}-grin-alt:before { content: fa-content($fa-var-grin-alt); } +.#{$fa-css-prefix}-grin-beam:before { content: fa-content($fa-var-grin-beam); } +.#{$fa-css-prefix}-grin-beam-sweat:before { content: fa-content($fa-var-grin-beam-sweat); } +.#{$fa-css-prefix}-grin-hearts:before { content: fa-content($fa-var-grin-hearts); } +.#{$fa-css-prefix}-grin-squint:before { content: fa-content($fa-var-grin-squint); } +.#{$fa-css-prefix}-grin-squint-tears:before { content: fa-content($fa-var-grin-squint-tears); } +.#{$fa-css-prefix}-grin-stars:before { content: fa-content($fa-var-grin-stars); } +.#{$fa-css-prefix}-grin-tears:before { content: fa-content($fa-var-grin-tears); } +.#{$fa-css-prefix}-grin-tongue:before { content: fa-content($fa-var-grin-tongue); } +.#{$fa-css-prefix}-grin-tongue-squint:before { content: fa-content($fa-var-grin-tongue-squint); } +.#{$fa-css-prefix}-grin-tongue-wink:before { content: fa-content($fa-var-grin-tongue-wink); } +.#{$fa-css-prefix}-grin-wink:before { content: fa-content($fa-var-grin-wink); } +.#{$fa-css-prefix}-grip-horizontal:before { content: fa-content($fa-var-grip-horizontal); } +.#{$fa-css-prefix}-grip-vertical:before { content: fa-content($fa-var-grip-vertical); } +.#{$fa-css-prefix}-gripfire:before { content: fa-content($fa-var-gripfire); } +.#{$fa-css-prefix}-grunt:before { content: fa-content($fa-var-grunt); } +.#{$fa-css-prefix}-gulp:before { content: fa-content($fa-var-gulp); } +.#{$fa-css-prefix}-h-square:before { content: fa-content($fa-var-h-square); } +.#{$fa-css-prefix}-hacker-news:before { content: fa-content($fa-var-hacker-news); } +.#{$fa-css-prefix}-hacker-news-square:before { content: fa-content($fa-var-hacker-news-square); } +.#{$fa-css-prefix}-hackerrank:before { content: fa-content($fa-var-hackerrank); } +.#{$fa-css-prefix}-hand-holding:before { content: fa-content($fa-var-hand-holding); } +.#{$fa-css-prefix}-hand-holding-heart:before { content: fa-content($fa-var-hand-holding-heart); } +.#{$fa-css-prefix}-hand-holding-usd:before { content: fa-content($fa-var-hand-holding-usd); } +.#{$fa-css-prefix}-hand-lizard:before { content: fa-content($fa-var-hand-lizard); } +.#{$fa-css-prefix}-hand-paper:before { content: fa-content($fa-var-hand-paper); } +.#{$fa-css-prefix}-hand-peace:before { content: fa-content($fa-var-hand-peace); } +.#{$fa-css-prefix}-hand-point-down:before { content: fa-content($fa-var-hand-point-down); } +.#{$fa-css-prefix}-hand-point-left:before { content: fa-content($fa-var-hand-point-left); } +.#{$fa-css-prefix}-hand-point-right:before { content: fa-content($fa-var-hand-point-right); } +.#{$fa-css-prefix}-hand-point-up:before { content: fa-content($fa-var-hand-point-up); } +.#{$fa-css-prefix}-hand-pointer:before { content: fa-content($fa-var-hand-pointer); } +.#{$fa-css-prefix}-hand-rock:before { content: fa-content($fa-var-hand-rock); } +.#{$fa-css-prefix}-hand-scissors:before { content: fa-content($fa-var-hand-scissors); } +.#{$fa-css-prefix}-hand-spock:before { content: fa-content($fa-var-hand-spock); } +.#{$fa-css-prefix}-hands:before { content: fa-content($fa-var-hands); } +.#{$fa-css-prefix}-hands-helping:before { content: fa-content($fa-var-hands-helping); } +.#{$fa-css-prefix}-handshake:before { content: fa-content($fa-var-handshake); } +.#{$fa-css-prefix}-hashtag:before { content: fa-content($fa-var-hashtag); } +.#{$fa-css-prefix}-hdd:before { content: fa-content($fa-var-hdd); } +.#{$fa-css-prefix}-heading:before { content: fa-content($fa-var-heading); } +.#{$fa-css-prefix}-headphones:before { content: fa-content($fa-var-headphones); } +.#{$fa-css-prefix}-headphones-alt:before { content: fa-content($fa-var-headphones-alt); } +.#{$fa-css-prefix}-headset:before { content: fa-content($fa-var-headset); } +.#{$fa-css-prefix}-heart:before { content: fa-content($fa-var-heart); } +.#{$fa-css-prefix}-heartbeat:before { content: fa-content($fa-var-heartbeat); } +.#{$fa-css-prefix}-helicopter:before { content: fa-content($fa-var-helicopter); } +.#{$fa-css-prefix}-highlighter:before { content: fa-content($fa-var-highlighter); } +.#{$fa-css-prefix}-hips:before { content: fa-content($fa-var-hips); } +.#{$fa-css-prefix}-hire-a-helper:before { content: fa-content($fa-var-hire-a-helper); } +.#{$fa-css-prefix}-history:before { content: fa-content($fa-var-history); } +.#{$fa-css-prefix}-hockey-puck:before { content: fa-content($fa-var-hockey-puck); } +.#{$fa-css-prefix}-home:before { content: fa-content($fa-var-home); } +.#{$fa-css-prefix}-hooli:before { content: fa-content($fa-var-hooli); } +.#{$fa-css-prefix}-hornbill:before { content: fa-content($fa-var-hornbill); } +.#{$fa-css-prefix}-hospital:before { content: fa-content($fa-var-hospital); } +.#{$fa-css-prefix}-hospital-alt:before { content: fa-content($fa-var-hospital-alt); } +.#{$fa-css-prefix}-hospital-symbol:before { content: fa-content($fa-var-hospital-symbol); } +.#{$fa-css-prefix}-hot-tub:before { content: fa-content($fa-var-hot-tub); } +.#{$fa-css-prefix}-hotel:before { content: fa-content($fa-var-hotel); } +.#{$fa-css-prefix}-hotjar:before { content: fa-content($fa-var-hotjar); } +.#{$fa-css-prefix}-hourglass:before { content: fa-content($fa-var-hourglass); } +.#{$fa-css-prefix}-hourglass-end:before { content: fa-content($fa-var-hourglass-end); } +.#{$fa-css-prefix}-hourglass-half:before { content: fa-content($fa-var-hourglass-half); } +.#{$fa-css-prefix}-hourglass-start:before { content: fa-content($fa-var-hourglass-start); } +.#{$fa-css-prefix}-houzz:before { content: fa-content($fa-var-houzz); } +.#{$fa-css-prefix}-html5:before { content: fa-content($fa-var-html5); } +.#{$fa-css-prefix}-hubspot:before { content: fa-content($fa-var-hubspot); } +.#{$fa-css-prefix}-i-cursor:before { content: fa-content($fa-var-i-cursor); } +.#{$fa-css-prefix}-id-badge:before { content: fa-content($fa-var-id-badge); } +.#{$fa-css-prefix}-id-card:before { content: fa-content($fa-var-id-card); } +.#{$fa-css-prefix}-id-card-alt:before { content: fa-content($fa-var-id-card-alt); } +.#{$fa-css-prefix}-image:before { content: fa-content($fa-var-image); } +.#{$fa-css-prefix}-images:before { content: fa-content($fa-var-images); } +.#{$fa-css-prefix}-imdb:before { content: fa-content($fa-var-imdb); } +.#{$fa-css-prefix}-inbox:before { content: fa-content($fa-var-inbox); } +.#{$fa-css-prefix}-indent:before { content: fa-content($fa-var-indent); } +.#{$fa-css-prefix}-industry:before { content: fa-content($fa-var-industry); } +.#{$fa-css-prefix}-infinity:before { content: fa-content($fa-var-infinity); } +.#{$fa-css-prefix}-info:before { content: fa-content($fa-var-info); } +.#{$fa-css-prefix}-info-circle:before { content: fa-content($fa-var-info-circle); } +.#{$fa-css-prefix}-instagram:before { content: fa-content($fa-var-instagram); } +.#{$fa-css-prefix}-internet-explorer:before { content: fa-content($fa-var-internet-explorer); } +.#{$fa-css-prefix}-ioxhost:before { content: fa-content($fa-var-ioxhost); } +.#{$fa-css-prefix}-italic:before { content: fa-content($fa-var-italic); } +.#{$fa-css-prefix}-itunes:before { content: fa-content($fa-var-itunes); } +.#{$fa-css-prefix}-itunes-note:before { content: fa-content($fa-var-itunes-note); } +.#{$fa-css-prefix}-java:before { content: fa-content($fa-var-java); } +.#{$fa-css-prefix}-jedi-order:before { content: fa-content($fa-var-jedi-order); } +.#{$fa-css-prefix}-jenkins:before { content: fa-content($fa-var-jenkins); } +.#{$fa-css-prefix}-joget:before { content: fa-content($fa-var-joget); } +.#{$fa-css-prefix}-joint:before { content: fa-content($fa-var-joint); } +.#{$fa-css-prefix}-joomla:before { content: fa-content($fa-var-joomla); } +.#{$fa-css-prefix}-js:before { content: fa-content($fa-var-js); } +.#{$fa-css-prefix}-js-square:before { content: fa-content($fa-var-js-square); } +.#{$fa-css-prefix}-jsfiddle:before { content: fa-content($fa-var-jsfiddle); } +.#{$fa-css-prefix}-kaggle:before { content: fa-content($fa-var-kaggle); } +.#{$fa-css-prefix}-key:before { content: fa-content($fa-var-key); } +.#{$fa-css-prefix}-keybase:before { content: fa-content($fa-var-keybase); } +.#{$fa-css-prefix}-keyboard:before { content: fa-content($fa-var-keyboard); } +.#{$fa-css-prefix}-keycdn:before { content: fa-content($fa-var-keycdn); } +.#{$fa-css-prefix}-kickstarter:before { content: fa-content($fa-var-kickstarter); } +.#{$fa-css-prefix}-kickstarter-k:before { content: fa-content($fa-var-kickstarter-k); } +.#{$fa-css-prefix}-kiss:before { content: fa-content($fa-var-kiss); } +.#{$fa-css-prefix}-kiss-beam:before { content: fa-content($fa-var-kiss-beam); } +.#{$fa-css-prefix}-kiss-wink-heart:before { content: fa-content($fa-var-kiss-wink-heart); } +.#{$fa-css-prefix}-kiwi-bird:before { content: fa-content($fa-var-kiwi-bird); } +.#{$fa-css-prefix}-korvue:before { content: fa-content($fa-var-korvue); } +.#{$fa-css-prefix}-language:before { content: fa-content($fa-var-language); } +.#{$fa-css-prefix}-laptop:before { content: fa-content($fa-var-laptop); } +.#{$fa-css-prefix}-laptop-code:before { content: fa-content($fa-var-laptop-code); } +.#{$fa-css-prefix}-laravel:before { content: fa-content($fa-var-laravel); } +.#{$fa-css-prefix}-lastfm:before { content: fa-content($fa-var-lastfm); } +.#{$fa-css-prefix}-lastfm-square:before { content: fa-content($fa-var-lastfm-square); } +.#{$fa-css-prefix}-laugh:before { content: fa-content($fa-var-laugh); } +.#{$fa-css-prefix}-laugh-beam:before { content: fa-content($fa-var-laugh-beam); } +.#{$fa-css-prefix}-laugh-squint:before { content: fa-content($fa-var-laugh-squint); } +.#{$fa-css-prefix}-laugh-wink:before { content: fa-content($fa-var-laugh-wink); } +.#{$fa-css-prefix}-layer-group:before { content: fa-content($fa-var-layer-group); } +.#{$fa-css-prefix}-leaf:before { content: fa-content($fa-var-leaf); } +.#{$fa-css-prefix}-leanpub:before { content: fa-content($fa-var-leanpub); } +.#{$fa-css-prefix}-lemon:before { content: fa-content($fa-var-lemon); } +.#{$fa-css-prefix}-less:before { content: fa-content($fa-var-less); } +.#{$fa-css-prefix}-less-than:before { content: fa-content($fa-var-less-than); } +.#{$fa-css-prefix}-less-than-equal:before { content: fa-content($fa-var-less-than-equal); } +.#{$fa-css-prefix}-level-down-alt:before { content: fa-content($fa-var-level-down-alt); } +.#{$fa-css-prefix}-level-up-alt:before { content: fa-content($fa-var-level-up-alt); } +.#{$fa-css-prefix}-life-ring:before { content: fa-content($fa-var-life-ring); } +.#{$fa-css-prefix}-lightbulb:before { content: fa-content($fa-var-lightbulb); } +.#{$fa-css-prefix}-line:before { content: fa-content($fa-var-line); } +.#{$fa-css-prefix}-link:before { content: fa-content($fa-var-link); } +.#{$fa-css-prefix}-linkedin:before { content: fa-content($fa-var-linkedin); } +.#{$fa-css-prefix}-linkedin-in:before { content: fa-content($fa-var-linkedin-in); } +.#{$fa-css-prefix}-linode:before { content: fa-content($fa-var-linode); } +.#{$fa-css-prefix}-linux:before { content: fa-content($fa-var-linux); } +.#{$fa-css-prefix}-lira-sign:before { content: fa-content($fa-var-lira-sign); } +.#{$fa-css-prefix}-list:before { content: fa-content($fa-var-list); } +.#{$fa-css-prefix}-list-alt:before { content: fa-content($fa-var-list-alt); } +.#{$fa-css-prefix}-list-ol:before { content: fa-content($fa-var-list-ol); } +.#{$fa-css-prefix}-list-ul:before { content: fa-content($fa-var-list-ul); } +.#{$fa-css-prefix}-location-arrow:before { content: fa-content($fa-var-location-arrow); } +.#{$fa-css-prefix}-lock:before { content: fa-content($fa-var-lock); } +.#{$fa-css-prefix}-lock-open:before { content: fa-content($fa-var-lock-open); } +.#{$fa-css-prefix}-long-arrow-alt-down:before { content: fa-content($fa-var-long-arrow-alt-down); } +.#{$fa-css-prefix}-long-arrow-alt-left:before { content: fa-content($fa-var-long-arrow-alt-left); } +.#{$fa-css-prefix}-long-arrow-alt-right:before { content: fa-content($fa-var-long-arrow-alt-right); } +.#{$fa-css-prefix}-long-arrow-alt-up:before { content: fa-content($fa-var-long-arrow-alt-up); } +.#{$fa-css-prefix}-low-vision:before { content: fa-content($fa-var-low-vision); } +.#{$fa-css-prefix}-luggage-cart:before { content: fa-content($fa-var-luggage-cart); } +.#{$fa-css-prefix}-lyft:before { content: fa-content($fa-var-lyft); } +.#{$fa-css-prefix}-magento:before { content: fa-content($fa-var-magento); } +.#{$fa-css-prefix}-magic:before { content: fa-content($fa-var-magic); } +.#{$fa-css-prefix}-magnet:before { content: fa-content($fa-var-magnet); } +.#{$fa-css-prefix}-mailchimp:before { content: fa-content($fa-var-mailchimp); } +.#{$fa-css-prefix}-male:before { content: fa-content($fa-var-male); } +.#{$fa-css-prefix}-mandalorian:before { content: fa-content($fa-var-mandalorian); } +.#{$fa-css-prefix}-map:before { content: fa-content($fa-var-map); } +.#{$fa-css-prefix}-map-marked:before { content: fa-content($fa-var-map-marked); } +.#{$fa-css-prefix}-map-marked-alt:before { content: fa-content($fa-var-map-marked-alt); } +.#{$fa-css-prefix}-map-marker:before { content: fa-content($fa-var-map-marker); } +.#{$fa-css-prefix}-map-marker-alt:before { content: fa-content($fa-var-map-marker-alt); } +.#{$fa-css-prefix}-map-pin:before { content: fa-content($fa-var-map-pin); } +.#{$fa-css-prefix}-map-signs:before { content: fa-content($fa-var-map-signs); } +.#{$fa-css-prefix}-markdown:before { content: fa-content($fa-var-markdown); } +.#{$fa-css-prefix}-marker:before { content: fa-content($fa-var-marker); } +.#{$fa-css-prefix}-mars:before { content: fa-content($fa-var-mars); } +.#{$fa-css-prefix}-mars-double:before { content: fa-content($fa-var-mars-double); } +.#{$fa-css-prefix}-mars-stroke:before { content: fa-content($fa-var-mars-stroke); } +.#{$fa-css-prefix}-mars-stroke-h:before { content: fa-content($fa-var-mars-stroke-h); } +.#{$fa-css-prefix}-mars-stroke-v:before { content: fa-content($fa-var-mars-stroke-v); } +.#{$fa-css-prefix}-mastodon:before { content: fa-content($fa-var-mastodon); } +.#{$fa-css-prefix}-maxcdn:before { content: fa-content($fa-var-maxcdn); } +.#{$fa-css-prefix}-medal:before { content: fa-content($fa-var-medal); } +.#{$fa-css-prefix}-medapps:before { content: fa-content($fa-var-medapps); } +.#{$fa-css-prefix}-medium:before { content: fa-content($fa-var-medium); } +.#{$fa-css-prefix}-medium-m:before { content: fa-content($fa-var-medium-m); } +.#{$fa-css-prefix}-medkit:before { content: fa-content($fa-var-medkit); } +.#{$fa-css-prefix}-medrt:before { content: fa-content($fa-var-medrt); } +.#{$fa-css-prefix}-meetup:before { content: fa-content($fa-var-meetup); } +.#{$fa-css-prefix}-megaport:before { content: fa-content($fa-var-megaport); } +.#{$fa-css-prefix}-meh:before { content: fa-content($fa-var-meh); } +.#{$fa-css-prefix}-meh-blank:before { content: fa-content($fa-var-meh-blank); } +.#{$fa-css-prefix}-meh-rolling-eyes:before { content: fa-content($fa-var-meh-rolling-eyes); } +.#{$fa-css-prefix}-memory:before { content: fa-content($fa-var-memory); } +.#{$fa-css-prefix}-mercury:before { content: fa-content($fa-var-mercury); } +.#{$fa-css-prefix}-microchip:before { content: fa-content($fa-var-microchip); } +.#{$fa-css-prefix}-microphone:before { content: fa-content($fa-var-microphone); } +.#{$fa-css-prefix}-microphone-alt:before { content: fa-content($fa-var-microphone-alt); } +.#{$fa-css-prefix}-microphone-alt-slash:before { content: fa-content($fa-var-microphone-alt-slash); } +.#{$fa-css-prefix}-microphone-slash:before { content: fa-content($fa-var-microphone-slash); } +.#{$fa-css-prefix}-microscope:before { content: fa-content($fa-var-microscope); } +.#{$fa-css-prefix}-microsoft:before { content: fa-content($fa-var-microsoft); } +.#{$fa-css-prefix}-minus:before { content: fa-content($fa-var-minus); } +.#{$fa-css-prefix}-minus-circle:before { content: fa-content($fa-var-minus-circle); } +.#{$fa-css-prefix}-minus-square:before { content: fa-content($fa-var-minus-square); } +.#{$fa-css-prefix}-mix:before { content: fa-content($fa-var-mix); } +.#{$fa-css-prefix}-mixcloud:before { content: fa-content($fa-var-mixcloud); } +.#{$fa-css-prefix}-mizuni:before { content: fa-content($fa-var-mizuni); } +.#{$fa-css-prefix}-mobile:before { content: fa-content($fa-var-mobile); } +.#{$fa-css-prefix}-mobile-alt:before { content: fa-content($fa-var-mobile-alt); } +.#{$fa-css-prefix}-modx:before { content: fa-content($fa-var-modx); } +.#{$fa-css-prefix}-monero:before { content: fa-content($fa-var-monero); } +.#{$fa-css-prefix}-money-bill:before { content: fa-content($fa-var-money-bill); } +.#{$fa-css-prefix}-money-bill-alt:before { content: fa-content($fa-var-money-bill-alt); } +.#{$fa-css-prefix}-money-bill-wave:before { content: fa-content($fa-var-money-bill-wave); } +.#{$fa-css-prefix}-money-bill-wave-alt:before { content: fa-content($fa-var-money-bill-wave-alt); } +.#{$fa-css-prefix}-money-check:before { content: fa-content($fa-var-money-check); } +.#{$fa-css-prefix}-money-check-alt:before { content: fa-content($fa-var-money-check-alt); } +.#{$fa-css-prefix}-monument:before { content: fa-content($fa-var-monument); } +.#{$fa-css-prefix}-moon:before { content: fa-content($fa-var-moon); } +.#{$fa-css-prefix}-mortar-pestle:before { content: fa-content($fa-var-mortar-pestle); } +.#{$fa-css-prefix}-motorcycle:before { content: fa-content($fa-var-motorcycle); } +.#{$fa-css-prefix}-mouse-pointer:before { content: fa-content($fa-var-mouse-pointer); } +.#{$fa-css-prefix}-music:before { content: fa-content($fa-var-music); } +.#{$fa-css-prefix}-napster:before { content: fa-content($fa-var-napster); } +.#{$fa-css-prefix}-neos:before { content: fa-content($fa-var-neos); } +.#{$fa-css-prefix}-neuter:before { content: fa-content($fa-var-neuter); } +.#{$fa-css-prefix}-newspaper:before { content: fa-content($fa-var-newspaper); } +.#{$fa-css-prefix}-nimblr:before { content: fa-content($fa-var-nimblr); } +.#{$fa-css-prefix}-nintendo-switch:before { content: fa-content($fa-var-nintendo-switch); } +.#{$fa-css-prefix}-node:before { content: fa-content($fa-var-node); } +.#{$fa-css-prefix}-node-js:before { content: fa-content($fa-var-node-js); } +.#{$fa-css-prefix}-not-equal:before { content: fa-content($fa-var-not-equal); } +.#{$fa-css-prefix}-notes-medical:before { content: fa-content($fa-var-notes-medical); } +.#{$fa-css-prefix}-npm:before { content: fa-content($fa-var-npm); } +.#{$fa-css-prefix}-ns8:before { content: fa-content($fa-var-ns8); } +.#{$fa-css-prefix}-nutritionix:before { content: fa-content($fa-var-nutritionix); } +.#{$fa-css-prefix}-object-group:before { content: fa-content($fa-var-object-group); } +.#{$fa-css-prefix}-object-ungroup:before { content: fa-content($fa-var-object-ungroup); } +.#{$fa-css-prefix}-odnoklassniki:before { content: fa-content($fa-var-odnoklassniki); } +.#{$fa-css-prefix}-odnoklassniki-square:before { content: fa-content($fa-var-odnoklassniki-square); } +.#{$fa-css-prefix}-oil-can:before { content: fa-content($fa-var-oil-can); } +.#{$fa-css-prefix}-old-republic:before { content: fa-content($fa-var-old-republic); } +.#{$fa-css-prefix}-opencart:before { content: fa-content($fa-var-opencart); } +.#{$fa-css-prefix}-openid:before { content: fa-content($fa-var-openid); } +.#{$fa-css-prefix}-opera:before { content: fa-content($fa-var-opera); } +.#{$fa-css-prefix}-optin-monster:before { content: fa-content($fa-var-optin-monster); } +.#{$fa-css-prefix}-osi:before { content: fa-content($fa-var-osi); } +.#{$fa-css-prefix}-outdent:before { content: fa-content($fa-var-outdent); } +.#{$fa-css-prefix}-page4:before { content: fa-content($fa-var-page4); } +.#{$fa-css-prefix}-pagelines:before { content: fa-content($fa-var-pagelines); } +.#{$fa-css-prefix}-paint-brush:before { content: fa-content($fa-var-paint-brush); } +.#{$fa-css-prefix}-paint-roller:before { content: fa-content($fa-var-paint-roller); } +.#{$fa-css-prefix}-palette:before { content: fa-content($fa-var-palette); } +.#{$fa-css-prefix}-palfed:before { content: fa-content($fa-var-palfed); } +.#{$fa-css-prefix}-pallet:before { content: fa-content($fa-var-pallet); } +.#{$fa-css-prefix}-paper-plane:before { content: fa-content($fa-var-paper-plane); } +.#{$fa-css-prefix}-paperclip:before { content: fa-content($fa-var-paperclip); } +.#{$fa-css-prefix}-parachute-box:before { content: fa-content($fa-var-parachute-box); } +.#{$fa-css-prefix}-paragraph:before { content: fa-content($fa-var-paragraph); } +.#{$fa-css-prefix}-parking:before { content: fa-content($fa-var-parking); } +.#{$fa-css-prefix}-passport:before { content: fa-content($fa-var-passport); } +.#{$fa-css-prefix}-paste:before { content: fa-content($fa-var-paste); } +.#{$fa-css-prefix}-patreon:before { content: fa-content($fa-var-patreon); } +.#{$fa-css-prefix}-pause:before { content: fa-content($fa-var-pause); } +.#{$fa-css-prefix}-pause-circle:before { content: fa-content($fa-var-pause-circle); } +.#{$fa-css-prefix}-paw:before { content: fa-content($fa-var-paw); } +.#{$fa-css-prefix}-paypal:before { content: fa-content($fa-var-paypal); } +.#{$fa-css-prefix}-pen:before { content: fa-content($fa-var-pen); } +.#{$fa-css-prefix}-pen-alt:before { content: fa-content($fa-var-pen-alt); } +.#{$fa-css-prefix}-pen-fancy:before { content: fa-content($fa-var-pen-fancy); } +.#{$fa-css-prefix}-pen-nib:before { content: fa-content($fa-var-pen-nib); } +.#{$fa-css-prefix}-pen-square:before { content: fa-content($fa-var-pen-square); } +.#{$fa-css-prefix}-pencil-alt:before { content: fa-content($fa-var-pencil-alt); } +.#{$fa-css-prefix}-pencil-ruler:before { content: fa-content($fa-var-pencil-ruler); } +.#{$fa-css-prefix}-people-carry:before { content: fa-content($fa-var-people-carry); } +.#{$fa-css-prefix}-percent:before { content: fa-content($fa-var-percent); } +.#{$fa-css-prefix}-percentage:before { content: fa-content($fa-var-percentage); } +.#{$fa-css-prefix}-periscope:before { content: fa-content($fa-var-periscope); } +.#{$fa-css-prefix}-phabricator:before { content: fa-content($fa-var-phabricator); } +.#{$fa-css-prefix}-phoenix-framework:before { content: fa-content($fa-var-phoenix-framework); } +.#{$fa-css-prefix}-phoenix-squadron:before { content: fa-content($fa-var-phoenix-squadron); } +.#{$fa-css-prefix}-phone:before { content: fa-content($fa-var-phone); } +.#{$fa-css-prefix}-phone-slash:before { content: fa-content($fa-var-phone-slash); } +.#{$fa-css-prefix}-phone-square:before { content: fa-content($fa-var-phone-square); } +.#{$fa-css-prefix}-phone-volume:before { content: fa-content($fa-var-phone-volume); } +.#{$fa-css-prefix}-php:before { content: fa-content($fa-var-php); } +.#{$fa-css-prefix}-pied-piper:before { content: fa-content($fa-var-pied-piper); } +.#{$fa-css-prefix}-pied-piper-alt:before { content: fa-content($fa-var-pied-piper-alt); } +.#{$fa-css-prefix}-pied-piper-hat:before { content: fa-content($fa-var-pied-piper-hat); } +.#{$fa-css-prefix}-pied-piper-pp:before { content: fa-content($fa-var-pied-piper-pp); } +.#{$fa-css-prefix}-piggy-bank:before { content: fa-content($fa-var-piggy-bank); } +.#{$fa-css-prefix}-pills:before { content: fa-content($fa-var-pills); } +.#{$fa-css-prefix}-pinterest:before { content: fa-content($fa-var-pinterest); } +.#{$fa-css-prefix}-pinterest-p:before { content: fa-content($fa-var-pinterest-p); } +.#{$fa-css-prefix}-pinterest-square:before { content: fa-content($fa-var-pinterest-square); } +.#{$fa-css-prefix}-plane:before { content: fa-content($fa-var-plane); } +.#{$fa-css-prefix}-plane-arrival:before { content: fa-content($fa-var-plane-arrival); } +.#{$fa-css-prefix}-plane-departure:before { content: fa-content($fa-var-plane-departure); } +.#{$fa-css-prefix}-play:before { content: fa-content($fa-var-play); } +.#{$fa-css-prefix}-play-circle:before { content: fa-content($fa-var-play-circle); } +.#{$fa-css-prefix}-playstation:before { content: fa-content($fa-var-playstation); } +.#{$fa-css-prefix}-plug:before { content: fa-content($fa-var-plug); } +.#{$fa-css-prefix}-plus:before { content: fa-content($fa-var-plus); } +.#{$fa-css-prefix}-plus-circle:before { content: fa-content($fa-var-plus-circle); } +.#{$fa-css-prefix}-plus-square:before { content: fa-content($fa-var-plus-square); } +.#{$fa-css-prefix}-podcast:before { content: fa-content($fa-var-podcast); } +.#{$fa-css-prefix}-poo:before { content: fa-content($fa-var-poo); } +.#{$fa-css-prefix}-poop:before { content: fa-content($fa-var-poop); } +.#{$fa-css-prefix}-portrait:before { content: fa-content($fa-var-portrait); } +.#{$fa-css-prefix}-pound-sign:before { content: fa-content($fa-var-pound-sign); } +.#{$fa-css-prefix}-power-off:before { content: fa-content($fa-var-power-off); } +.#{$fa-css-prefix}-prescription:before { content: fa-content($fa-var-prescription); } +.#{$fa-css-prefix}-prescription-bottle:before { content: fa-content($fa-var-prescription-bottle); } +.#{$fa-css-prefix}-prescription-bottle-alt:before { content: fa-content($fa-var-prescription-bottle-alt); } +.#{$fa-css-prefix}-print:before { content: fa-content($fa-var-print); } +.#{$fa-css-prefix}-procedures:before { content: fa-content($fa-var-procedures); } +.#{$fa-css-prefix}-product-hunt:before { content: fa-content($fa-var-product-hunt); } +.#{$fa-css-prefix}-project-diagram:before { content: fa-content($fa-var-project-diagram); } +.#{$fa-css-prefix}-pushed:before { content: fa-content($fa-var-pushed); } +.#{$fa-css-prefix}-puzzle-piece:before { content: fa-content($fa-var-puzzle-piece); } +.#{$fa-css-prefix}-python:before { content: fa-content($fa-var-python); } +.#{$fa-css-prefix}-qq:before { content: fa-content($fa-var-qq); } +.#{$fa-css-prefix}-qrcode:before { content: fa-content($fa-var-qrcode); } +.#{$fa-css-prefix}-question:before { content: fa-content($fa-var-question); } +.#{$fa-css-prefix}-question-circle:before { content: fa-content($fa-var-question-circle); } +.#{$fa-css-prefix}-quidditch:before { content: fa-content($fa-var-quidditch); } +.#{$fa-css-prefix}-quinscape:before { content: fa-content($fa-var-quinscape); } +.#{$fa-css-prefix}-quora:before { content: fa-content($fa-var-quora); } +.#{$fa-css-prefix}-quote-left:before { content: fa-content($fa-var-quote-left); } +.#{$fa-css-prefix}-quote-right:before { content: fa-content($fa-var-quote-right); } +.#{$fa-css-prefix}-r-project:before { content: fa-content($fa-var-r-project); } +.#{$fa-css-prefix}-random:before { content: fa-content($fa-var-random); } +.#{$fa-css-prefix}-ravelry:before { content: fa-content($fa-var-ravelry); } +.#{$fa-css-prefix}-react:before { content: fa-content($fa-var-react); } +.#{$fa-css-prefix}-readme:before { content: fa-content($fa-var-readme); } +.#{$fa-css-prefix}-rebel:before { content: fa-content($fa-var-rebel); } +.#{$fa-css-prefix}-receipt:before { content: fa-content($fa-var-receipt); } +.#{$fa-css-prefix}-recycle:before { content: fa-content($fa-var-recycle); } +.#{$fa-css-prefix}-red-river:before { content: fa-content($fa-var-red-river); } +.#{$fa-css-prefix}-reddit:before { content: fa-content($fa-var-reddit); } +.#{$fa-css-prefix}-reddit-alien:before { content: fa-content($fa-var-reddit-alien); } +.#{$fa-css-prefix}-reddit-square:before { content: fa-content($fa-var-reddit-square); } +.#{$fa-css-prefix}-redo:before { content: fa-content($fa-var-redo); } +.#{$fa-css-prefix}-redo-alt:before { content: fa-content($fa-var-redo-alt); } +.#{$fa-css-prefix}-registered:before { content: fa-content($fa-var-registered); } +.#{$fa-css-prefix}-rendact:before { content: fa-content($fa-var-rendact); } +.#{$fa-css-prefix}-renren:before { content: fa-content($fa-var-renren); } +.#{$fa-css-prefix}-reply:before { content: fa-content($fa-var-reply); } +.#{$fa-css-prefix}-reply-all:before { content: fa-content($fa-var-reply-all); } +.#{$fa-css-prefix}-replyd:before { content: fa-content($fa-var-replyd); } +.#{$fa-css-prefix}-researchgate:before { content: fa-content($fa-var-researchgate); } +.#{$fa-css-prefix}-resolving:before { content: fa-content($fa-var-resolving); } +.#{$fa-css-prefix}-retweet:before { content: fa-content($fa-var-retweet); } +.#{$fa-css-prefix}-rev:before { content: fa-content($fa-var-rev); } +.#{$fa-css-prefix}-ribbon:before { content: fa-content($fa-var-ribbon); } +.#{$fa-css-prefix}-road:before { content: fa-content($fa-var-road); } +.#{$fa-css-prefix}-robot:before { content: fa-content($fa-var-robot); } +.#{$fa-css-prefix}-rocket:before { content: fa-content($fa-var-rocket); } +.#{$fa-css-prefix}-rocketchat:before { content: fa-content($fa-var-rocketchat); } +.#{$fa-css-prefix}-rockrms:before { content: fa-content($fa-var-rockrms); } +.#{$fa-css-prefix}-route:before { content: fa-content($fa-var-route); } +.#{$fa-css-prefix}-rss:before { content: fa-content($fa-var-rss); } +.#{$fa-css-prefix}-rss-square:before { content: fa-content($fa-var-rss-square); } +.#{$fa-css-prefix}-ruble-sign:before { content: fa-content($fa-var-ruble-sign); } +.#{$fa-css-prefix}-ruler:before { content: fa-content($fa-var-ruler); } +.#{$fa-css-prefix}-ruler-combined:before { content: fa-content($fa-var-ruler-combined); } +.#{$fa-css-prefix}-ruler-horizontal:before { content: fa-content($fa-var-ruler-horizontal); } +.#{$fa-css-prefix}-ruler-vertical:before { content: fa-content($fa-var-ruler-vertical); } +.#{$fa-css-prefix}-rupee-sign:before { content: fa-content($fa-var-rupee-sign); } +.#{$fa-css-prefix}-sad-cry:before { content: fa-content($fa-var-sad-cry); } +.#{$fa-css-prefix}-sad-tear:before { content: fa-content($fa-var-sad-tear); } +.#{$fa-css-prefix}-safari:before { content: fa-content($fa-var-safari); } +.#{$fa-css-prefix}-sass:before { content: fa-content($fa-var-sass); } +.#{$fa-css-prefix}-save:before { content: fa-content($fa-var-save); } +.#{$fa-css-prefix}-schlix:before { content: fa-content($fa-var-schlix); } +.#{$fa-css-prefix}-school:before { content: fa-content($fa-var-school); } +.#{$fa-css-prefix}-screwdriver:before { content: fa-content($fa-var-screwdriver); } +.#{$fa-css-prefix}-scribd:before { content: fa-content($fa-var-scribd); } +.#{$fa-css-prefix}-search:before { content: fa-content($fa-var-search); } +.#{$fa-css-prefix}-search-minus:before { content: fa-content($fa-var-search-minus); } +.#{$fa-css-prefix}-search-plus:before { content: fa-content($fa-var-search-plus); } +.#{$fa-css-prefix}-searchengin:before { content: fa-content($fa-var-searchengin); } +.#{$fa-css-prefix}-seedling:before { content: fa-content($fa-var-seedling); } +.#{$fa-css-prefix}-sellcast:before { content: fa-content($fa-var-sellcast); } +.#{$fa-css-prefix}-sellsy:before { content: fa-content($fa-var-sellsy); } +.#{$fa-css-prefix}-server:before { content: fa-content($fa-var-server); } +.#{$fa-css-prefix}-servicestack:before { content: fa-content($fa-var-servicestack); } +.#{$fa-css-prefix}-shapes:before { content: fa-content($fa-var-shapes); } +.#{$fa-css-prefix}-share:before { content: fa-content($fa-var-share); } +.#{$fa-css-prefix}-share-alt:before { content: fa-content($fa-var-share-alt); } +.#{$fa-css-prefix}-share-alt-square:before { content: fa-content($fa-var-share-alt-square); } +.#{$fa-css-prefix}-share-square:before { content: fa-content($fa-var-share-square); } +.#{$fa-css-prefix}-shekel-sign:before { content: fa-content($fa-var-shekel-sign); } +.#{$fa-css-prefix}-shield-alt:before { content: fa-content($fa-var-shield-alt); } +.#{$fa-css-prefix}-ship:before { content: fa-content($fa-var-ship); } +.#{$fa-css-prefix}-shipping-fast:before { content: fa-content($fa-var-shipping-fast); } +.#{$fa-css-prefix}-shirtsinbulk:before { content: fa-content($fa-var-shirtsinbulk); } +.#{$fa-css-prefix}-shoe-prints:before { content: fa-content($fa-var-shoe-prints); } +.#{$fa-css-prefix}-shopping-bag:before { content: fa-content($fa-var-shopping-bag); } +.#{$fa-css-prefix}-shopping-basket:before { content: fa-content($fa-var-shopping-basket); } +.#{$fa-css-prefix}-shopping-cart:before { content: fa-content($fa-var-shopping-cart); } +.#{$fa-css-prefix}-shopware:before { content: fa-content($fa-var-shopware); } +.#{$fa-css-prefix}-shower:before { content: fa-content($fa-var-shower); } +.#{$fa-css-prefix}-shuttle-van:before { content: fa-content($fa-var-shuttle-van); } +.#{$fa-css-prefix}-sign:before { content: fa-content($fa-var-sign); } +.#{$fa-css-prefix}-sign-in-alt:before { content: fa-content($fa-var-sign-in-alt); } +.#{$fa-css-prefix}-sign-language:before { content: fa-content($fa-var-sign-language); } +.#{$fa-css-prefix}-sign-out-alt:before { content: fa-content($fa-var-sign-out-alt); } +.#{$fa-css-prefix}-signal:before { content: fa-content($fa-var-signal); } +.#{$fa-css-prefix}-signature:before { content: fa-content($fa-var-signature); } +.#{$fa-css-prefix}-simplybuilt:before { content: fa-content($fa-var-simplybuilt); } +.#{$fa-css-prefix}-sistrix:before { content: fa-content($fa-var-sistrix); } +.#{$fa-css-prefix}-sitemap:before { content: fa-content($fa-var-sitemap); } +.#{$fa-css-prefix}-sith:before { content: fa-content($fa-var-sith); } +.#{$fa-css-prefix}-skull:before { content: fa-content($fa-var-skull); } +.#{$fa-css-prefix}-skyatlas:before { content: fa-content($fa-var-skyatlas); } +.#{$fa-css-prefix}-skype:before { content: fa-content($fa-var-skype); } +.#{$fa-css-prefix}-slack:before { content: fa-content($fa-var-slack); } +.#{$fa-css-prefix}-slack-hash:before { content: fa-content($fa-var-slack-hash); } +.#{$fa-css-prefix}-sliders-h:before { content: fa-content($fa-var-sliders-h); } +.#{$fa-css-prefix}-slideshare:before { content: fa-content($fa-var-slideshare); } +.#{$fa-css-prefix}-smile:before { content: fa-content($fa-var-smile); } +.#{$fa-css-prefix}-smile-beam:before { content: fa-content($fa-var-smile-beam); } +.#{$fa-css-prefix}-smile-wink:before { content: fa-content($fa-var-smile-wink); } +.#{$fa-css-prefix}-smoking:before { content: fa-content($fa-var-smoking); } +.#{$fa-css-prefix}-smoking-ban:before { content: fa-content($fa-var-smoking-ban); } +.#{$fa-css-prefix}-snapchat:before { content: fa-content($fa-var-snapchat); } +.#{$fa-css-prefix}-snapchat-ghost:before { content: fa-content($fa-var-snapchat-ghost); } +.#{$fa-css-prefix}-snapchat-square:before { content: fa-content($fa-var-snapchat-square); } +.#{$fa-css-prefix}-snowflake:before { content: fa-content($fa-var-snowflake); } +.#{$fa-css-prefix}-solar-panel:before { content: fa-content($fa-var-solar-panel); } +.#{$fa-css-prefix}-sort:before { content: fa-content($fa-var-sort); } +.#{$fa-css-prefix}-sort-alpha-down:before { content: fa-content($fa-var-sort-alpha-down); } +.#{$fa-css-prefix}-sort-alpha-up:before { content: fa-content($fa-var-sort-alpha-up); } +.#{$fa-css-prefix}-sort-amount-down:before { content: fa-content($fa-var-sort-amount-down); } +.#{$fa-css-prefix}-sort-amount-up:before { content: fa-content($fa-var-sort-amount-up); } +.#{$fa-css-prefix}-sort-down:before { content: fa-content($fa-var-sort-down); } +.#{$fa-css-prefix}-sort-numeric-down:before { content: fa-content($fa-var-sort-numeric-down); } +.#{$fa-css-prefix}-sort-numeric-up:before { content: fa-content($fa-var-sort-numeric-up); } +.#{$fa-css-prefix}-sort-up:before { content: fa-content($fa-var-sort-up); } +.#{$fa-css-prefix}-soundcloud:before { content: fa-content($fa-var-soundcloud); } +.#{$fa-css-prefix}-spa:before { content: fa-content($fa-var-spa); } +.#{$fa-css-prefix}-space-shuttle:before { content: fa-content($fa-var-space-shuttle); } +.#{$fa-css-prefix}-speakap:before { content: fa-content($fa-var-speakap); } +.#{$fa-css-prefix}-spinner:before { content: fa-content($fa-var-spinner); } +.#{$fa-css-prefix}-splotch:before { content: fa-content($fa-var-splotch); } +.#{$fa-css-prefix}-spotify:before { content: fa-content($fa-var-spotify); } +.#{$fa-css-prefix}-spray-can:before { content: fa-content($fa-var-spray-can); } +.#{$fa-css-prefix}-square:before { content: fa-content($fa-var-square); } +.#{$fa-css-prefix}-square-full:before { content: fa-content($fa-var-square-full); } +.#{$fa-css-prefix}-squarespace:before { content: fa-content($fa-var-squarespace); } +.#{$fa-css-prefix}-stack-exchange:before { content: fa-content($fa-var-stack-exchange); } +.#{$fa-css-prefix}-stack-overflow:before { content: fa-content($fa-var-stack-overflow); } +.#{$fa-css-prefix}-stamp:before { content: fa-content($fa-var-stamp); } +.#{$fa-css-prefix}-star:before { content: fa-content($fa-var-star); } +.#{$fa-css-prefix}-star-half:before { content: fa-content($fa-var-star-half); } +.#{$fa-css-prefix}-star-half-alt:before { content: fa-content($fa-var-star-half-alt); } +.#{$fa-css-prefix}-star-of-life:before { content: fa-content($fa-var-star-of-life); } +.#{$fa-css-prefix}-staylinked:before { content: fa-content($fa-var-staylinked); } +.#{$fa-css-prefix}-steam:before { content: fa-content($fa-var-steam); } +.#{$fa-css-prefix}-steam-square:before { content: fa-content($fa-var-steam-square); } +.#{$fa-css-prefix}-steam-symbol:before { content: fa-content($fa-var-steam-symbol); } +.#{$fa-css-prefix}-step-backward:before { content: fa-content($fa-var-step-backward); } +.#{$fa-css-prefix}-step-forward:before { content: fa-content($fa-var-step-forward); } +.#{$fa-css-prefix}-stethoscope:before { content: fa-content($fa-var-stethoscope); } +.#{$fa-css-prefix}-sticker-mule:before { content: fa-content($fa-var-sticker-mule); } +.#{$fa-css-prefix}-sticky-note:before { content: fa-content($fa-var-sticky-note); } +.#{$fa-css-prefix}-stop:before { content: fa-content($fa-var-stop); } +.#{$fa-css-prefix}-stop-circle:before { content: fa-content($fa-var-stop-circle); } +.#{$fa-css-prefix}-stopwatch:before { content: fa-content($fa-var-stopwatch); } +.#{$fa-css-prefix}-store:before { content: fa-content($fa-var-store); } +.#{$fa-css-prefix}-store-alt:before { content: fa-content($fa-var-store-alt); } +.#{$fa-css-prefix}-strava:before { content: fa-content($fa-var-strava); } +.#{$fa-css-prefix}-stream:before { content: fa-content($fa-var-stream); } +.#{$fa-css-prefix}-street-view:before { content: fa-content($fa-var-street-view); } +.#{$fa-css-prefix}-strikethrough:before { content: fa-content($fa-var-strikethrough); } +.#{$fa-css-prefix}-stripe:before { content: fa-content($fa-var-stripe); } +.#{$fa-css-prefix}-stripe-s:before { content: fa-content($fa-var-stripe-s); } +.#{$fa-css-prefix}-stroopwafel:before { content: fa-content($fa-var-stroopwafel); } +.#{$fa-css-prefix}-studiovinari:before { content: fa-content($fa-var-studiovinari); } +.#{$fa-css-prefix}-stumbleupon:before { content: fa-content($fa-var-stumbleupon); } +.#{$fa-css-prefix}-stumbleupon-circle:before { content: fa-content($fa-var-stumbleupon-circle); } +.#{$fa-css-prefix}-subscript:before { content: fa-content($fa-var-subscript); } +.#{$fa-css-prefix}-subway:before { content: fa-content($fa-var-subway); } +.#{$fa-css-prefix}-suitcase:before { content: fa-content($fa-var-suitcase); } +.#{$fa-css-prefix}-suitcase-rolling:before { content: fa-content($fa-var-suitcase-rolling); } +.#{$fa-css-prefix}-sun:before { content: fa-content($fa-var-sun); } +.#{$fa-css-prefix}-superpowers:before { content: fa-content($fa-var-superpowers); } +.#{$fa-css-prefix}-superscript:before { content: fa-content($fa-var-superscript); } +.#{$fa-css-prefix}-supple:before { content: fa-content($fa-var-supple); } +.#{$fa-css-prefix}-surprise:before { content: fa-content($fa-var-surprise); } +.#{$fa-css-prefix}-swatchbook:before { content: fa-content($fa-var-swatchbook); } +.#{$fa-css-prefix}-swimmer:before { content: fa-content($fa-var-swimmer); } +.#{$fa-css-prefix}-swimming-pool:before { content: fa-content($fa-var-swimming-pool); } +.#{$fa-css-prefix}-sync:before { content: fa-content($fa-var-sync); } +.#{$fa-css-prefix}-sync-alt:before { content: fa-content($fa-var-sync-alt); } +.#{$fa-css-prefix}-syringe:before { content: fa-content($fa-var-syringe); } +.#{$fa-css-prefix}-table:before { content: fa-content($fa-var-table); } +.#{$fa-css-prefix}-table-tennis:before { content: fa-content($fa-var-table-tennis); } +.#{$fa-css-prefix}-tablet:before { content: fa-content($fa-var-tablet); } +.#{$fa-css-prefix}-tablet-alt:before { content: fa-content($fa-var-tablet-alt); } +.#{$fa-css-prefix}-tablets:before { content: fa-content($fa-var-tablets); } +.#{$fa-css-prefix}-tachometer-alt:before { content: fa-content($fa-var-tachometer-alt); } +.#{$fa-css-prefix}-tag:before { content: fa-content($fa-var-tag); } +.#{$fa-css-prefix}-tags:before { content: fa-content($fa-var-tags); } +.#{$fa-css-prefix}-tape:before { content: fa-content($fa-var-tape); } +.#{$fa-css-prefix}-tasks:before { content: fa-content($fa-var-tasks); } +.#{$fa-css-prefix}-taxi:before { content: fa-content($fa-var-taxi); } +.#{$fa-css-prefix}-teamspeak:before { content: fa-content($fa-var-teamspeak); } +.#{$fa-css-prefix}-teeth:before { content: fa-content($fa-var-teeth); } +.#{$fa-css-prefix}-teeth-open:before { content: fa-content($fa-var-teeth-open); } +.#{$fa-css-prefix}-telegram:before { content: fa-content($fa-var-telegram); } +.#{$fa-css-prefix}-telegram-plane:before { content: fa-content($fa-var-telegram-plane); } +.#{$fa-css-prefix}-tencent-weibo:before { content: fa-content($fa-var-tencent-weibo); } +.#{$fa-css-prefix}-terminal:before { content: fa-content($fa-var-terminal); } +.#{$fa-css-prefix}-text-height:before { content: fa-content($fa-var-text-height); } +.#{$fa-css-prefix}-text-width:before { content: fa-content($fa-var-text-width); } +.#{$fa-css-prefix}-th:before { content: fa-content($fa-var-th); } +.#{$fa-css-prefix}-th-large:before { content: fa-content($fa-var-th-large); } +.#{$fa-css-prefix}-th-list:before { content: fa-content($fa-var-th-list); } +.#{$fa-css-prefix}-theater-masks:before { content: fa-content($fa-var-theater-masks); } +.#{$fa-css-prefix}-themeco:before { content: fa-content($fa-var-themeco); } +.#{$fa-css-prefix}-themeisle:before { content: fa-content($fa-var-themeisle); } +.#{$fa-css-prefix}-thermometer:before { content: fa-content($fa-var-thermometer); } +.#{$fa-css-prefix}-thermometer-empty:before { content: fa-content($fa-var-thermometer-empty); } +.#{$fa-css-prefix}-thermometer-full:before { content: fa-content($fa-var-thermometer-full); } +.#{$fa-css-prefix}-thermometer-half:before { content: fa-content($fa-var-thermometer-half); } +.#{$fa-css-prefix}-thermometer-quarter:before { content: fa-content($fa-var-thermometer-quarter); } +.#{$fa-css-prefix}-thermometer-three-quarters:before { content: fa-content($fa-var-thermometer-three-quarters); } +.#{$fa-css-prefix}-thumbs-down:before { content: fa-content($fa-var-thumbs-down); } +.#{$fa-css-prefix}-thumbs-up:before { content: fa-content($fa-var-thumbs-up); } +.#{$fa-css-prefix}-thumbtack:before { content: fa-content($fa-var-thumbtack); } +.#{$fa-css-prefix}-ticket-alt:before { content: fa-content($fa-var-ticket-alt); } +.#{$fa-css-prefix}-times:before { content: fa-content($fa-var-times); } +.#{$fa-css-prefix}-times-circle:before { content: fa-content($fa-var-times-circle); } +.#{$fa-css-prefix}-tint:before { content: fa-content($fa-var-tint); } +.#{$fa-css-prefix}-tint-slash:before { content: fa-content($fa-var-tint-slash); } +.#{$fa-css-prefix}-tired:before { content: fa-content($fa-var-tired); } +.#{$fa-css-prefix}-toggle-off:before { content: fa-content($fa-var-toggle-off); } +.#{$fa-css-prefix}-toggle-on:before { content: fa-content($fa-var-toggle-on); } +.#{$fa-css-prefix}-toolbox:before { content: fa-content($fa-var-toolbox); } +.#{$fa-css-prefix}-tooth:before { content: fa-content($fa-var-tooth); } +.#{$fa-css-prefix}-trade-federation:before { content: fa-content($fa-var-trade-federation); } +.#{$fa-css-prefix}-trademark:before { content: fa-content($fa-var-trademark); } +.#{$fa-css-prefix}-traffic-light:before { content: fa-content($fa-var-traffic-light); } +.#{$fa-css-prefix}-train:before { content: fa-content($fa-var-train); } +.#{$fa-css-prefix}-transgender:before { content: fa-content($fa-var-transgender); } +.#{$fa-css-prefix}-transgender-alt:before { content: fa-content($fa-var-transgender-alt); } +.#{$fa-css-prefix}-trash:before { content: fa-content($fa-var-trash); } +.#{$fa-css-prefix}-trash-alt:before { content: fa-content($fa-var-trash-alt); } +.#{$fa-css-prefix}-tree:before { content: fa-content($fa-var-tree); } +.#{$fa-css-prefix}-trello:before { content: fa-content($fa-var-trello); } +.#{$fa-css-prefix}-tripadvisor:before { content: fa-content($fa-var-tripadvisor); } +.#{$fa-css-prefix}-trophy:before { content: fa-content($fa-var-trophy); } +.#{$fa-css-prefix}-truck:before { content: fa-content($fa-var-truck); } +.#{$fa-css-prefix}-truck-loading:before { content: fa-content($fa-var-truck-loading); } +.#{$fa-css-prefix}-truck-monster:before { content: fa-content($fa-var-truck-monster); } +.#{$fa-css-prefix}-truck-moving:before { content: fa-content($fa-var-truck-moving); } +.#{$fa-css-prefix}-truck-pickup:before { content: fa-content($fa-var-truck-pickup); } +.#{$fa-css-prefix}-tshirt:before { content: fa-content($fa-var-tshirt); } +.#{$fa-css-prefix}-tty:before { content: fa-content($fa-var-tty); } +.#{$fa-css-prefix}-tumblr:before { content: fa-content($fa-var-tumblr); } +.#{$fa-css-prefix}-tumblr-square:before { content: fa-content($fa-var-tumblr-square); } +.#{$fa-css-prefix}-tv:before { content: fa-content($fa-var-tv); } +.#{$fa-css-prefix}-twitch:before { content: fa-content($fa-var-twitch); } +.#{$fa-css-prefix}-twitter:before { content: fa-content($fa-var-twitter); } +.#{$fa-css-prefix}-twitter-square:before { content: fa-content($fa-var-twitter-square); } +.#{$fa-css-prefix}-typo3:before { content: fa-content($fa-var-typo3); } +.#{$fa-css-prefix}-uber:before { content: fa-content($fa-var-uber); } +.#{$fa-css-prefix}-uikit:before { content: fa-content($fa-var-uikit); } +.#{$fa-css-prefix}-umbrella:before { content: fa-content($fa-var-umbrella); } +.#{$fa-css-prefix}-umbrella-beach:before { content: fa-content($fa-var-umbrella-beach); } +.#{$fa-css-prefix}-underline:before { content: fa-content($fa-var-underline); } +.#{$fa-css-prefix}-undo:before { content: fa-content($fa-var-undo); } +.#{$fa-css-prefix}-undo-alt:before { content: fa-content($fa-var-undo-alt); } +.#{$fa-css-prefix}-uniregistry:before { content: fa-content($fa-var-uniregistry); } +.#{$fa-css-prefix}-universal-access:before { content: fa-content($fa-var-universal-access); } +.#{$fa-css-prefix}-university:before { content: fa-content($fa-var-university); } +.#{$fa-css-prefix}-unlink:before { content: fa-content($fa-var-unlink); } +.#{$fa-css-prefix}-unlock:before { content: fa-content($fa-var-unlock); } +.#{$fa-css-prefix}-unlock-alt:before { content: fa-content($fa-var-unlock-alt); } +.#{$fa-css-prefix}-untappd:before { content: fa-content($fa-var-untappd); } +.#{$fa-css-prefix}-upload:before { content: fa-content($fa-var-upload); } +.#{$fa-css-prefix}-usb:before { content: fa-content($fa-var-usb); } +.#{$fa-css-prefix}-user:before { content: fa-content($fa-var-user); } +.#{$fa-css-prefix}-user-alt:before { content: fa-content($fa-var-user-alt); } +.#{$fa-css-prefix}-user-alt-slash:before { content: fa-content($fa-var-user-alt-slash); } +.#{$fa-css-prefix}-user-astronaut:before { content: fa-content($fa-var-user-astronaut); } +.#{$fa-css-prefix}-user-check:before { content: fa-content($fa-var-user-check); } +.#{$fa-css-prefix}-user-circle:before { content: fa-content($fa-var-user-circle); } +.#{$fa-css-prefix}-user-clock:before { content: fa-content($fa-var-user-clock); } +.#{$fa-css-prefix}-user-cog:before { content: fa-content($fa-var-user-cog); } +.#{$fa-css-prefix}-user-edit:before { content: fa-content($fa-var-user-edit); } +.#{$fa-css-prefix}-user-friends:before { content: fa-content($fa-var-user-friends); } +.#{$fa-css-prefix}-user-graduate:before { content: fa-content($fa-var-user-graduate); } +.#{$fa-css-prefix}-user-lock:before { content: fa-content($fa-var-user-lock); } +.#{$fa-css-prefix}-user-md:before { content: fa-content($fa-var-user-md); } +.#{$fa-css-prefix}-user-minus:before { content: fa-content($fa-var-user-minus); } +.#{$fa-css-prefix}-user-ninja:before { content: fa-content($fa-var-user-ninja); } +.#{$fa-css-prefix}-user-plus:before { content: fa-content($fa-var-user-plus); } +.#{$fa-css-prefix}-user-secret:before { content: fa-content($fa-var-user-secret); } +.#{$fa-css-prefix}-user-shield:before { content: fa-content($fa-var-user-shield); } +.#{$fa-css-prefix}-user-slash:before { content: fa-content($fa-var-user-slash); } +.#{$fa-css-prefix}-user-tag:before { content: fa-content($fa-var-user-tag); } +.#{$fa-css-prefix}-user-tie:before { content: fa-content($fa-var-user-tie); } +.#{$fa-css-prefix}-user-times:before { content: fa-content($fa-var-user-times); } +.#{$fa-css-prefix}-users:before { content: fa-content($fa-var-users); } +.#{$fa-css-prefix}-users-cog:before { content: fa-content($fa-var-users-cog); } +.#{$fa-css-prefix}-ussunnah:before { content: fa-content($fa-var-ussunnah); } +.#{$fa-css-prefix}-utensil-spoon:before { content: fa-content($fa-var-utensil-spoon); } +.#{$fa-css-prefix}-utensils:before { content: fa-content($fa-var-utensils); } +.#{$fa-css-prefix}-vaadin:before { content: fa-content($fa-var-vaadin); } +.#{$fa-css-prefix}-vector-square:before { content: fa-content($fa-var-vector-square); } +.#{$fa-css-prefix}-venus:before { content: fa-content($fa-var-venus); } +.#{$fa-css-prefix}-venus-double:before { content: fa-content($fa-var-venus-double); } +.#{$fa-css-prefix}-venus-mars:before { content: fa-content($fa-var-venus-mars); } +.#{$fa-css-prefix}-viacoin:before { content: fa-content($fa-var-viacoin); } +.#{$fa-css-prefix}-viadeo:before { content: fa-content($fa-var-viadeo); } +.#{$fa-css-prefix}-viadeo-square:before { content: fa-content($fa-var-viadeo-square); } +.#{$fa-css-prefix}-vial:before { content: fa-content($fa-var-vial); } +.#{$fa-css-prefix}-vials:before { content: fa-content($fa-var-vials); } +.#{$fa-css-prefix}-viber:before { content: fa-content($fa-var-viber); } +.#{$fa-css-prefix}-video:before { content: fa-content($fa-var-video); } +.#{$fa-css-prefix}-video-slash:before { content: fa-content($fa-var-video-slash); } +.#{$fa-css-prefix}-vimeo:before { content: fa-content($fa-var-vimeo); } +.#{$fa-css-prefix}-vimeo-square:before { content: fa-content($fa-var-vimeo-square); } +.#{$fa-css-prefix}-vimeo-v:before { content: fa-content($fa-var-vimeo-v); } +.#{$fa-css-prefix}-vine:before { content: fa-content($fa-var-vine); } +.#{$fa-css-prefix}-vk:before { content: fa-content($fa-var-vk); } +.#{$fa-css-prefix}-vnv:before { content: fa-content($fa-var-vnv); } +.#{$fa-css-prefix}-volleyball-ball:before { content: fa-content($fa-var-volleyball-ball); } +.#{$fa-css-prefix}-volume-down:before { content: fa-content($fa-var-volume-down); } +.#{$fa-css-prefix}-volume-off:before { content: fa-content($fa-var-volume-off); } +.#{$fa-css-prefix}-volume-up:before { content: fa-content($fa-var-volume-up); } +.#{$fa-css-prefix}-vuejs:before { content: fa-content($fa-var-vuejs); } +.#{$fa-css-prefix}-walking:before { content: fa-content($fa-var-walking); } +.#{$fa-css-prefix}-wallet:before { content: fa-content($fa-var-wallet); } +.#{$fa-css-prefix}-warehouse:before { content: fa-content($fa-var-warehouse); } +.#{$fa-css-prefix}-weebly:before { content: fa-content($fa-var-weebly); } +.#{$fa-css-prefix}-weibo:before { content: fa-content($fa-var-weibo); } +.#{$fa-css-prefix}-weight:before { content: fa-content($fa-var-weight); } +.#{$fa-css-prefix}-weight-hanging:before { content: fa-content($fa-var-weight-hanging); } +.#{$fa-css-prefix}-weixin:before { content: fa-content($fa-var-weixin); } +.#{$fa-css-prefix}-whatsapp:before { content: fa-content($fa-var-whatsapp); } +.#{$fa-css-prefix}-whatsapp-square:before { content: fa-content($fa-var-whatsapp-square); } +.#{$fa-css-prefix}-wheelchair:before { content: fa-content($fa-var-wheelchair); } +.#{$fa-css-prefix}-whmcs:before { content: fa-content($fa-var-whmcs); } +.#{$fa-css-prefix}-wifi:before { content: fa-content($fa-var-wifi); } +.#{$fa-css-prefix}-wikipedia-w:before { content: fa-content($fa-var-wikipedia-w); } +.#{$fa-css-prefix}-window-close:before { content: fa-content($fa-var-window-close); } +.#{$fa-css-prefix}-window-maximize:before { content: fa-content($fa-var-window-maximize); } +.#{$fa-css-prefix}-window-minimize:before { content: fa-content($fa-var-window-minimize); } +.#{$fa-css-prefix}-window-restore:before { content: fa-content($fa-var-window-restore); } +.#{$fa-css-prefix}-windows:before { content: fa-content($fa-var-windows); } +.#{$fa-css-prefix}-wine-glass:before { content: fa-content($fa-var-wine-glass); } +.#{$fa-css-prefix}-wine-glass-alt:before { content: fa-content($fa-var-wine-glass-alt); } +.#{$fa-css-prefix}-wix:before { content: fa-content($fa-var-wix); } +.#{$fa-css-prefix}-wolf-pack-battalion:before { content: fa-content($fa-var-wolf-pack-battalion); } +.#{$fa-css-prefix}-won-sign:before { content: fa-content($fa-var-won-sign); } +.#{$fa-css-prefix}-wordpress:before { content: fa-content($fa-var-wordpress); } +.#{$fa-css-prefix}-wordpress-simple:before { content: fa-content($fa-var-wordpress-simple); } +.#{$fa-css-prefix}-wpbeginner:before { content: fa-content($fa-var-wpbeginner); } +.#{$fa-css-prefix}-wpexplorer:before { content: fa-content($fa-var-wpexplorer); } +.#{$fa-css-prefix}-wpforms:before { content: fa-content($fa-var-wpforms); } +.#{$fa-css-prefix}-wrench:before { content: fa-content($fa-var-wrench); } +.#{$fa-css-prefix}-x-ray:before { content: fa-content($fa-var-x-ray); } +.#{$fa-css-prefix}-xbox:before { content: fa-content($fa-var-xbox); } +.#{$fa-css-prefix}-xing:before { content: fa-content($fa-var-xing); } +.#{$fa-css-prefix}-xing-square:before { content: fa-content($fa-var-xing-square); } +.#{$fa-css-prefix}-y-combinator:before { content: fa-content($fa-var-y-combinator); } +.#{$fa-css-prefix}-yahoo:before { content: fa-content($fa-var-yahoo); } +.#{$fa-css-prefix}-yandex:before { content: fa-content($fa-var-yandex); } +.#{$fa-css-prefix}-yandex-international:before { content: fa-content($fa-var-yandex-international); } +.#{$fa-css-prefix}-yelp:before { content: fa-content($fa-var-yelp); } +.#{$fa-css-prefix}-yen-sign:before { content: fa-content($fa-var-yen-sign); } +.#{$fa-css-prefix}-yoast:before { content: fa-content($fa-var-yoast); } +.#{$fa-css-prefix}-youtube:before { content: fa-content($fa-var-youtube); } +.#{$fa-css-prefix}-youtube-square:before { content: fa-content($fa-var-youtube-square); } +.#{$fa-css-prefix}-zhihu:before { content: fa-content($fa-var-zhihu); } diff --git a/sass/fontawesome/_larger.scss b/sass/fontawesome/_larger.scss new file mode 100644 index 0000000..27c2ad5 --- /dev/null +++ b/sass/fontawesome/_larger.scss @@ -0,0 +1,23 @@ +// Icon Sizes +// ------------------------- + +// makes the font 33% larger relative to the icon container +.#{$fa-css-prefix}-lg { + font-size: (4em / 3); + line-height: (3em / 4); + vertical-align: -.0667em; +} + +.#{$fa-css-prefix}-xs { + font-size: .75em; +} + +.#{$fa-css-prefix}-sm { + font-size: .875em; +} + +@for $i from 1 through 10 { + .#{$fa-css-prefix}-#{$i}x { + font-size: $i * 1em; + } +} diff --git a/sass/fontawesome/_list.scss b/sass/fontawesome/_list.scss new file mode 100644 index 0000000..8ebf333 --- /dev/null +++ b/sass/fontawesome/_list.scss @@ -0,0 +1,18 @@ +// List Icons +// ------------------------- + +.#{$fa-css-prefix}-ul { + list-style-type: none; + margin-left: $fa-li-width * 5/4; + padding-left: 0; + + > li { position: relative; } +} + +.#{$fa-css-prefix}-li { + left: -$fa-li-width; + position: absolute; + text-align: center; + width: $fa-li-width; + line-height: inherit; +} diff --git a/sass/fontawesome/_mixins.scss b/sass/fontawesome/_mixins.scss new file mode 100644 index 0000000..50a2e9f --- /dev/null +++ b/sass/fontawesome/_mixins.scss @@ -0,0 +1,57 @@ +// Mixins +// -------------------------- + +@mixin fa-icon { + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + display: inline-block; + font-style: normal; + font-variant: normal; + font-weight: normal; + line-height: 1; + vertical-align: -.125em; +} + +@mixin fa-icon-rotate($degrees, $rotation) { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation})"; + transform: rotate($degrees); +} + +@mixin fa-icon-flip($horiz, $vert, $rotation) { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation}, mirror=1)"; + transform: scale($horiz, $vert); +} + + +// Only display content to screen readers. A la Bootstrap 4. +// +// See: http://a11yproject.com/posts/how-to-hide-content/ + +@mixin sr-only { + border: 0; + clip: rect(0, 0, 0, 0); + height: 1px; + margin: -1px; + overflow: hidden; + padding: 0; + position: absolute; + width: 1px; +} + +// Use in conjunction with .sr-only to only display content when it's focused. +// +// Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1 +// +// Credit: HTML5 Boilerplate + +@mixin sr-only-focusable { + &:active, + &:focus { + clip: auto; + height: auto; + margin: 0; + overflow: visible; + position: static; + width: auto; + } +} diff --git a/sass/fontawesome/_rotated-flipped.scss b/sass/fontawesome/_rotated-flipped.scss new file mode 100644 index 0000000..995bc4c --- /dev/null +++ b/sass/fontawesome/_rotated-flipped.scss @@ -0,0 +1,23 @@ +// Rotated & Flipped Icons +// ------------------------- + +.#{$fa-css-prefix}-rotate-90 { @include fa-icon-rotate(90deg, 1); } +.#{$fa-css-prefix}-rotate-180 { @include fa-icon-rotate(180deg, 2); } +.#{$fa-css-prefix}-rotate-270 { @include fa-icon-rotate(270deg, 3); } + +.#{$fa-css-prefix}-flip-horizontal { @include fa-icon-flip(-1, 1, 0); } +.#{$fa-css-prefix}-flip-vertical { @include fa-icon-flip(1, -1, 2); } +.#{$fa-css-prefix}-flip-horizontal.#{$fa-css-prefix}-flip-vertical { @include fa-icon-flip(-1, -1, 2); } + +// Hook for IE8-9 +// ------------------------- + +:root { + .#{$fa-css-prefix}-rotate-90, + .#{$fa-css-prefix}-rotate-180, + .#{$fa-css-prefix}-rotate-270, + .#{$fa-css-prefix}-flip-horizontal, + .#{$fa-css-prefix}-flip-vertical { + filter: none; + } +} diff --git a/sass/fontawesome/_screen-reader.scss b/sass/fontawesome/_screen-reader.scss new file mode 100644 index 0000000..5d0ab26 --- /dev/null +++ b/sass/fontawesome/_screen-reader.scss @@ -0,0 +1,5 @@ +// Screen Readers +// ------------------------- + +.sr-only { @include sr-only; } +.sr-only-focusable { @include sr-only-focusable; } diff --git a/sass/fontawesome/_shims.scss b/sass/fontawesome/_shims.scss new file mode 100644 index 0000000..08261c9 --- /dev/null +++ b/sass/fontawesome/_shims.scss @@ -0,0 +1,2066 @@ +.#{$fa-css-prefix}.#{$fa-css-prefix}-glass:before { content: fa-content($fa-var-glass-martini); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-meetup { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-star-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-star-o:before { content: fa-content($fa-var-star); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-remove:before { content: fa-content($fa-var-times); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-close:before { content: fa-content($fa-var-times); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-gear:before { content: fa-content($fa-var-cog); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-trash-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-trash-o:before { content: fa-content($fa-var-trash-alt); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-o:before { content: fa-content($fa-var-file); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-clock-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-clock-o:before { content: fa-content($fa-var-clock); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-arrow-circle-o-down { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-arrow-circle-o-down:before { content: fa-content($fa-var-arrow-alt-circle-down); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-arrow-circle-o-up { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-arrow-circle-o-up:before { content: fa-content($fa-var-arrow-alt-circle-up); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-play-circle-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-play-circle-o:before { content: fa-content($fa-var-play-circle); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-repeat:before { content: fa-content($fa-var-redo); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-rotate-right:before { content: fa-content($fa-var-redo); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-refresh:before { content: fa-content($fa-var-sync); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-list-alt { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-dedent:before { content: fa-content($fa-var-outdent); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-video-camera:before { content: fa-content($fa-var-video); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-picture-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-picture-o:before { content: fa-content($fa-var-image); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-photo { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-photo:before { content: fa-content($fa-var-image); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-image { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-image:before { content: fa-content($fa-var-image); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-pencil:before { content: fa-content($fa-var-pencil-alt); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-map-marker:before { content: fa-content($fa-var-map-marker-alt); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-pencil-square-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-pencil-square-o:before { content: fa-content($fa-var-edit); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-share-square-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-share-square-o:before { content: fa-content($fa-var-share-square); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-check-square-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-check-square-o:before { content: fa-content($fa-var-check-square); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-arrows:before { content: fa-content($fa-var-arrows-alt); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-times-circle-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-times-circle-o:before { content: fa-content($fa-var-times-circle); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-check-circle-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-check-circle-o:before { content: fa-content($fa-var-check-circle); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-mail-forward:before { content: fa-content($fa-var-share); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-eye { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-eye-slash { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-warning:before { content: fa-content($fa-var-exclamation-triangle); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-calendar:before { content: fa-content($fa-var-calendar-alt); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-arrows-v:before { content: fa-content($fa-var-arrows-alt-v); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-arrows-h:before { content: fa-content($fa-var-arrows-alt-h); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-bar-chart { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-bar-chart:before { content: fa-content($fa-var-chart-bar); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-bar-chart-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-bar-chart-o:before { content: fa-content($fa-var-chart-bar); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-twitter-square { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-facebook-square { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-gears:before { content: fa-content($fa-var-cogs); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-thumbs-o-up { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-thumbs-o-up:before { content: fa-content($fa-var-thumbs-up); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-thumbs-o-down { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-thumbs-o-down:before { content: fa-content($fa-var-thumbs-down); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-heart-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-heart-o:before { content: fa-content($fa-var-heart); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-sign-out:before { content: fa-content($fa-var-sign-out-alt); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-linkedin-square { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-linkedin-square:before { content: fa-content($fa-var-linkedin); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-thumb-tack:before { content: fa-content($fa-var-thumbtack); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-external-link:before { content: fa-content($fa-var-external-link-alt); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-sign-in:before { content: fa-content($fa-var-sign-in-alt); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-github-square { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-lemon-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-lemon-o:before { content: fa-content($fa-var-lemon); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-square-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-square-o:before { content: fa-content($fa-var-square); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-bookmark-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-bookmark-o:before { content: fa-content($fa-var-bookmark); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-twitter { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-facebook { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-facebook:before { content: fa-content($fa-var-facebook-f); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-facebook-f { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-facebook-f:before { content: fa-content($fa-var-facebook-f); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-github { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-credit-card { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-feed:before { content: fa-content($fa-var-rss); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-hdd-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-hdd-o:before { content: fa-content($fa-var-hdd); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-o-right { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-o-right:before { content: fa-content($fa-var-hand-point-right); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-o-left { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-o-left:before { content: fa-content($fa-var-hand-point-left); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-o-up { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-o-up:before { content: fa-content($fa-var-hand-point-up); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-o-down { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-o-down:before { content: fa-content($fa-var-hand-point-down); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-arrows-alt:before { content: fa-content($fa-var-expand-arrows-alt); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-group:before { content: fa-content($fa-var-users); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-chain:before { content: fa-content($fa-var-link); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-scissors:before { content: fa-content($fa-var-cut); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-files-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-files-o:before { content: fa-content($fa-var-copy); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-floppy-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-floppy-o:before { content: fa-content($fa-var-save); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-navicon:before { content: fa-content($fa-var-bars); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-reorder:before { content: fa-content($fa-var-bars); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-pinterest { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-pinterest-square { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-google-plus-square { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-google-plus { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-google-plus:before { content: fa-content($fa-var-google-plus-g); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-money { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-money:before { content: fa-content($fa-var-money-bill-alt); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-unsorted:before { content: fa-content($fa-var-sort); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-sort-desc:before { content: fa-content($fa-var-sort-down); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-sort-asc:before { content: fa-content($fa-var-sort-up); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-linkedin { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-linkedin:before { content: fa-content($fa-var-linkedin-in); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-rotate-left:before { content: fa-content($fa-var-undo); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-legal:before { content: fa-content($fa-var-gavel); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-tachometer:before { content: fa-content($fa-var-tachometer-alt); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-dashboard:before { content: fa-content($fa-var-tachometer-alt); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-comment-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-comment-o:before { content: fa-content($fa-var-comment); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-comments-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-comments-o:before { content: fa-content($fa-var-comments); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-flash:before { content: fa-content($fa-var-bolt); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-clipboard { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-paste { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-paste:before { content: fa-content($fa-var-clipboard); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-lightbulb-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-lightbulb-o:before { content: fa-content($fa-var-lightbulb); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-exchange:before { content: fa-content($fa-var-exchange-alt); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-cloud-download:before { content: fa-content($fa-var-cloud-download-alt); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-cloud-upload:before { content: fa-content($fa-var-cloud-upload-alt); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-bell-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-bell-o:before { content: fa-content($fa-var-bell); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-cutlery:before { content: fa-content($fa-var-utensils); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-text-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-text-o:before { content: fa-content($fa-var-file-alt); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-building-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-building-o:before { content: fa-content($fa-var-building); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-hospital-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-hospital-o:before { content: fa-content($fa-var-hospital); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-tablet:before { content: fa-content($fa-var-tablet-alt); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-mobile:before { content: fa-content($fa-var-mobile-alt); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-mobile-phone:before { content: fa-content($fa-var-mobile-alt); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-circle-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-circle-o:before { content: fa-content($fa-var-circle); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-mail-reply:before { content: fa-content($fa-var-reply); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-github-alt { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-folder-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-folder-o:before { content: fa-content($fa-var-folder); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-folder-open-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-folder-open-o:before { content: fa-content($fa-var-folder-open); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-smile-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-smile-o:before { content: fa-content($fa-var-smile); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-frown-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-frown-o:before { content: fa-content($fa-var-frown); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-meh-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-meh-o:before { content: fa-content($fa-var-meh); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-keyboard-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-keyboard-o:before { content: fa-content($fa-var-keyboard); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-flag-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-flag-o:before { content: fa-content($fa-var-flag); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-mail-reply-all:before { content: fa-content($fa-var-reply-all); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-star-half-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-star-half-o:before { content: fa-content($fa-var-star-half); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-star-half-empty { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-star-half-empty:before { content: fa-content($fa-var-star-half); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-star-half-full { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-star-half-full:before { content: fa-content($fa-var-star-half); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-code-fork:before { content: fa-content($fa-var-code-branch); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-chain-broken:before { content: fa-content($fa-var-unlink); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-shield:before { content: fa-content($fa-var-shield-alt); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-calendar-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-calendar-o:before { content: fa-content($fa-var-calendar); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-maxcdn { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-html5 { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-css3 { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-ticket:before { content: fa-content($fa-var-ticket-alt); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-minus-square-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-minus-square-o:before { content: fa-content($fa-var-minus-square); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-level-up:before { content: fa-content($fa-var-level-up-alt); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-level-down:before { content: fa-content($fa-var-level-down-alt); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-pencil-square:before { content: fa-content($fa-var-pen-square); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-external-link-square:before { content: fa-content($fa-var-external-link-square-alt); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-compass { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-caret-square-o-down { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-caret-square-o-down:before { content: fa-content($fa-var-caret-square-down); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-toggle-down { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-toggle-down:before { content: fa-content($fa-var-caret-square-down); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-caret-square-o-up { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-caret-square-o-up:before { content: fa-content($fa-var-caret-square-up); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-toggle-up { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-toggle-up:before { content: fa-content($fa-var-caret-square-up); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-caret-square-o-right { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-caret-square-o-right:before { content: fa-content($fa-var-caret-square-right); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-toggle-right { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-toggle-right:before { content: fa-content($fa-var-caret-square-right); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-eur:before { content: fa-content($fa-var-euro-sign); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-euro:before { content: fa-content($fa-var-euro-sign); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-gbp:before { content: fa-content($fa-var-pound-sign); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-usd:before { content: fa-content($fa-var-dollar-sign); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-dollar:before { content: fa-content($fa-var-dollar-sign); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-inr:before { content: fa-content($fa-var-rupee-sign); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-rupee:before { content: fa-content($fa-var-rupee-sign); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-jpy:before { content: fa-content($fa-var-yen-sign); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-cny:before { content: fa-content($fa-var-yen-sign); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-rmb:before { content: fa-content($fa-var-yen-sign); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-yen:before { content: fa-content($fa-var-yen-sign); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-rub:before { content: fa-content($fa-var-ruble-sign); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-ruble:before { content: fa-content($fa-var-ruble-sign); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-rouble:before { content: fa-content($fa-var-ruble-sign); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-krw:before { content: fa-content($fa-var-won-sign); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-won:before { content: fa-content($fa-var-won-sign); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-btc { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-bitcoin { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-bitcoin:before { content: fa-content($fa-var-btc); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-text:before { content: fa-content($fa-var-file-alt); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-sort-alpha-asc:before { content: fa-content($fa-var-sort-alpha-down); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-sort-alpha-desc:before { content: fa-content($fa-var-sort-alpha-up); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-sort-amount-asc:before { content: fa-content($fa-var-sort-amount-down); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-sort-amount-desc:before { content: fa-content($fa-var-sort-amount-up); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-sort-numeric-asc:before { content: fa-content($fa-var-sort-numeric-down); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-sort-numeric-desc:before { content: fa-content($fa-var-sort-numeric-up); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-youtube-square { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-youtube { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-xing { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-xing-square { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-youtube-play { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-youtube-play:before { content: fa-content($fa-var-youtube); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-dropbox { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-stack-overflow { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-instagram { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-flickr { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-adn { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-bitbucket { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-bitbucket-square { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-bitbucket-square:before { content: fa-content($fa-var-bitbucket); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-tumblr { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-tumblr-square { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-long-arrow-down:before { content: fa-content($fa-var-long-arrow-alt-down); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-long-arrow-up:before { content: fa-content($fa-var-long-arrow-alt-up); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-long-arrow-left:before { content: fa-content($fa-var-long-arrow-alt-left); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-long-arrow-right:before { content: fa-content($fa-var-long-arrow-alt-right); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-apple { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-windows { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-android { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-linux { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-dribbble { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-skype { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-foursquare { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-trello { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-gratipay { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-gittip { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-gittip:before { content: fa-content($fa-var-gratipay); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-sun-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-sun-o:before { content: fa-content($fa-var-sun); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-moon-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-moon-o:before { content: fa-content($fa-var-moon); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-vk { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-weibo { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-renren { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-pagelines { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-stack-exchange { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-arrow-circle-o-right { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-arrow-circle-o-right:before { content: fa-content($fa-var-arrow-alt-circle-right); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-arrow-circle-o-left { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-arrow-circle-o-left:before { content: fa-content($fa-var-arrow-alt-circle-left); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-caret-square-o-left { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-caret-square-o-left:before { content: fa-content($fa-var-caret-square-left); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-toggle-left { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-toggle-left:before { content: fa-content($fa-var-caret-square-left); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-dot-circle-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-dot-circle-o:before { content: fa-content($fa-var-dot-circle); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-vimeo-square { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-try:before { content: fa-content($fa-var-lira-sign); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-turkish-lira:before { content: fa-content($fa-var-lira-sign); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-plus-square-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-plus-square-o:before { content: fa-content($fa-var-plus-square); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-slack { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-wordpress { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-openid { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-institution:before { content: fa-content($fa-var-university); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-bank:before { content: fa-content($fa-var-university); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-mortar-board:before { content: fa-content($fa-var-graduation-cap); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-yahoo { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-google { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-reddit { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-reddit-square { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-stumbleupon-circle { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-stumbleupon { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-delicious { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-digg { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-pied-piper-pp { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-pied-piper-alt { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-drupal { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-joomla { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-spoon:before { content: fa-content($fa-var-utensil-spoon); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-behance { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-behance-square { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-steam { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-steam-square { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-automobile:before { content: fa-content($fa-var-car); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-cab:before { content: fa-content($fa-var-taxi); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-envelope-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-envelope-o:before { content: fa-content($fa-var-envelope); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-deviantart { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-soundcloud { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-pdf-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-pdf-o:before { content: fa-content($fa-var-file-pdf); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-word-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-word-o:before { content: fa-content($fa-var-file-word); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-excel-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-excel-o:before { content: fa-content($fa-var-file-excel); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-powerpoint-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-powerpoint-o:before { content: fa-content($fa-var-file-powerpoint); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-image-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-image-o:before { content: fa-content($fa-var-file-image); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-photo-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-photo-o:before { content: fa-content($fa-var-file-image); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-picture-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-picture-o:before { content: fa-content($fa-var-file-image); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-archive-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-archive-o:before { content: fa-content($fa-var-file-archive); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-zip-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-zip-o:before { content: fa-content($fa-var-file-archive); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-audio-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-audio-o:before { content: fa-content($fa-var-file-audio); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-sound-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-sound-o:before { content: fa-content($fa-var-file-audio); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-video-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-video-o:before { content: fa-content($fa-var-file-video); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-movie-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-movie-o:before { content: fa-content($fa-var-file-video); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-code-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-file-code-o:before { content: fa-content($fa-var-file-code); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-vine { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-codepen { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-jsfiddle { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-life-ring { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-life-bouy { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-life-bouy:before { content: fa-content($fa-var-life-ring); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-life-buoy { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-life-buoy:before { content: fa-content($fa-var-life-ring); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-life-saver { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-life-saver:before { content: fa-content($fa-var-life-ring); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-support { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-support:before { content: fa-content($fa-var-life-ring); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-circle-o-notch:before { content: fa-content($fa-var-circle-notch); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-rebel { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-ra { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-ra:before { content: fa-content($fa-var-rebel); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-resistance { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-resistance:before { content: fa-content($fa-var-rebel); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-empire { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-ge { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-ge:before { content: fa-content($fa-var-empire); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-git-square { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-git { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-hacker-news { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-y-combinator-square { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-y-combinator-square:before { content: fa-content($fa-var-hacker-news); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-yc-square { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-yc-square:before { content: fa-content($fa-var-hacker-news); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-tencent-weibo { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-qq { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-weixin { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-wechat { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-wechat:before { content: fa-content($fa-var-weixin); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-send:before { content: fa-content($fa-var-paper-plane); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-paper-plane-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-paper-plane-o:before { content: fa-content($fa-var-paper-plane); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-send-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-send-o:before { content: fa-content($fa-var-paper-plane); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-circle-thin { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-circle-thin:before { content: fa-content($fa-var-circle); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-header:before { content: fa-content($fa-var-heading); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-sliders:before { content: fa-content($fa-var-sliders-h); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-futbol-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-futbol-o:before { content: fa-content($fa-var-futbol); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-soccer-ball-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-soccer-ball-o:before { content: fa-content($fa-var-futbol); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-slideshare { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-twitch { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-yelp { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-newspaper-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-newspaper-o:before { content: fa-content($fa-var-newspaper); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-paypal { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-google-wallet { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-cc-visa { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-cc-mastercard { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-cc-discover { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-cc-amex { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-cc-paypal { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-cc-stripe { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-bell-slash-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-bell-slash-o:before { content: fa-content($fa-var-bell-slash); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-trash:before { content: fa-content($fa-var-trash-alt); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-copyright { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-eyedropper:before { content: fa-content($fa-var-eye-dropper); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-area-chart:before { content: fa-content($fa-var-chart-area); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-pie-chart:before { content: fa-content($fa-var-chart-pie); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-line-chart:before { content: fa-content($fa-var-chart-line); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-lastfm { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-lastfm-square { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-ioxhost { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-angellist { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-cc { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-cc:before { content: fa-content($fa-var-closed-captioning); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-ils:before { content: fa-content($fa-var-shekel-sign); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-shekel:before { content: fa-content($fa-var-shekel-sign); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-sheqel:before { content: fa-content($fa-var-shekel-sign); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-meanpath { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-meanpath:before { content: fa-content($fa-var-font-awesome); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-buysellads { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-connectdevelop { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-dashcube { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-forumbee { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-leanpub { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-sellsy { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-shirtsinbulk { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-simplybuilt { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-skyatlas { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-diamond { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-diamond:before { content: fa-content($fa-var-gem); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-intersex:before { content: fa-content($fa-var-transgender); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-facebook-official { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-facebook-official:before { content: fa-content($fa-var-facebook); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-pinterest-p { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-whatsapp { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-hotel:before { content: fa-content($fa-var-bed); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-viacoin { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-medium { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-y-combinator { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-yc { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-yc:before { content: fa-content($fa-var-y-combinator); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-optin-monster { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-opencart { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-expeditedssl { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-battery-4:before { content: fa-content($fa-var-battery-full); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-battery:before { content: fa-content($fa-var-battery-full); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-battery-3:before { content: fa-content($fa-var-battery-three-quarters); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-battery-2:before { content: fa-content($fa-var-battery-half); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-battery-1:before { content: fa-content($fa-var-battery-quarter); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-battery-0:before { content: fa-content($fa-var-battery-empty); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-object-group { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-object-ungroup { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-sticky-note-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-sticky-note-o:before { content: fa-content($fa-var-sticky-note); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-cc-jcb { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-cc-diners-club { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-clone { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-hourglass-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-hourglass-o:before { content: fa-content($fa-var-hourglass); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-hourglass-1:before { content: fa-content($fa-var-hourglass-start); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-hourglass-2:before { content: fa-content($fa-var-hourglass-half); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-hourglass-3:before { content: fa-content($fa-var-hourglass-end); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-rock-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-rock-o:before { content: fa-content($fa-var-hand-rock); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-grab-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-grab-o:before { content: fa-content($fa-var-hand-rock); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-paper-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-paper-o:before { content: fa-content($fa-var-hand-paper); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-stop-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-stop-o:before { content: fa-content($fa-var-hand-paper); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-scissors-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-scissors-o:before { content: fa-content($fa-var-hand-scissors); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-lizard-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-lizard-o:before { content: fa-content($fa-var-hand-lizard); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-spock-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-spock-o:before { content: fa-content($fa-var-hand-spock); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-pointer-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-pointer-o:before { content: fa-content($fa-var-hand-pointer); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-peace-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-peace-o:before { content: fa-content($fa-var-hand-peace); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-registered { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-creative-commons { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-gg { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-gg-circle { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-tripadvisor { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-odnoklassniki { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-odnoklassniki-square { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-get-pocket { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-wikipedia-w { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-safari { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-chrome { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-firefox { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-opera { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-internet-explorer { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-television:before { content: fa-content($fa-var-tv); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-contao { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-500px { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-amazon { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-calendar-plus-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-calendar-plus-o:before { content: fa-content($fa-var-calendar-plus); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-calendar-minus-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-calendar-minus-o:before { content: fa-content($fa-var-calendar-minus); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-calendar-times-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-calendar-times-o:before { content: fa-content($fa-var-calendar-times); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-calendar-check-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-calendar-check-o:before { content: fa-content($fa-var-calendar-check); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-map-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-map-o:before { content: fa-content($fa-var-map); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-commenting { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-commenting:before { content: fa-content($fa-var-comment-dots); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-commenting-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-commenting-o:before { content: fa-content($fa-var-comment-dots); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-houzz { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-vimeo { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-vimeo:before { content: fa-content($fa-var-vimeo-v); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-black-tie { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-fonticons { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-reddit-alien { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-edge { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-credit-card-alt:before { content: fa-content($fa-var-credit-card); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-codiepie { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-modx { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-fort-awesome { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-usb { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-product-hunt { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-mixcloud { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-scribd { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-pause-circle-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-pause-circle-o:before { content: fa-content($fa-var-pause-circle); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-stop-circle-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-stop-circle-o:before { content: fa-content($fa-var-stop-circle); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-bluetooth { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-bluetooth-b { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-gitlab { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-wpbeginner { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-wpforms { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-envira { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-wheelchair-alt { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-wheelchair-alt:before { content: fa-content($fa-var-accessible-icon); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-question-circle-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-question-circle-o:before { content: fa-content($fa-var-question-circle); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-volume-control-phone:before { content: fa-content($fa-var-phone-volume); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-asl-interpreting:before { content: fa-content($fa-var-american-sign-language-interpreting); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-deafness:before { content: fa-content($fa-var-deaf); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-hard-of-hearing:before { content: fa-content($fa-var-deaf); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-glide { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-glide-g { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-signing:before { content: fa-content($fa-var-sign-language); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-viadeo { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-viadeo-square { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-snapchat { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-snapchat-ghost { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-snapchat-square { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-pied-piper { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-first-order { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-yoast { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-themeisle { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-google-plus-official { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-google-plus-official:before { content: fa-content($fa-var-google-plus); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-google-plus-circle { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-google-plus-circle:before { content: fa-content($fa-var-google-plus); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-font-awesome { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-fa { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-fa:before { content: fa-content($fa-var-font-awesome); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-handshake-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-handshake-o:before { content: fa-content($fa-var-handshake); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-envelope-open-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-envelope-open-o:before { content: fa-content($fa-var-envelope-open); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-linode { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-address-book-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-address-book-o:before { content: fa-content($fa-var-address-book); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-vcard:before { content: fa-content($fa-var-address-card); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-address-card-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-address-card-o:before { content: fa-content($fa-var-address-card); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-vcard-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-vcard-o:before { content: fa-content($fa-var-address-card); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-user-circle-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-user-circle-o:before { content: fa-content($fa-var-user-circle); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-user-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-user-o:before { content: fa-content($fa-var-user); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-id-badge { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-drivers-license:before { content: fa-content($fa-var-id-card); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-id-card-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-id-card-o:before { content: fa-content($fa-var-id-card); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-drivers-license-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-drivers-license-o:before { content: fa-content($fa-var-id-card); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-quora { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-free-code-camp { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-telegram { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-thermometer-4:before { content: fa-content($fa-var-thermometer-full); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-thermometer:before { content: fa-content($fa-var-thermometer-full); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-thermometer-3:before { content: fa-content($fa-var-thermometer-three-quarters); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-thermometer-2:before { content: fa-content($fa-var-thermometer-half); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-thermometer-1:before { content: fa-content($fa-var-thermometer-quarter); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-thermometer-0:before { content: fa-content($fa-var-thermometer-empty); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-bathtub:before { content: fa-content($fa-var-bath); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-s15:before { content: fa-content($fa-var-bath); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-window-maximize { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-window-restore { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-times-rectangle:before { content: fa-content($fa-var-window-close); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-window-close-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-window-close-o:before { content: fa-content($fa-var-window-close); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-times-rectangle-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-times-rectangle-o:before { content: fa-content($fa-var-window-close); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-bandcamp { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-grav { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-etsy { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-imdb { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-ravelry { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-eercast { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-eercast:before { content: fa-content($fa-var-sellcast); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-snowflake-o { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} +.#{$fa-css-prefix}.#{$fa-css-prefix}-snowflake-o:before { content: fa-content($fa-var-snowflake); } + +.#{$fa-css-prefix}.#{$fa-css-prefix}-superpowers { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-wpexplorer { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + +.#{$fa-css-prefix}.#{$fa-css-prefix}-spotify { + font-family: 'Font Awesome 5 Brands'; + font-weight: 400; +} + diff --git a/sass/fontawesome/_stacked.scss b/sass/fontawesome/_stacked.scss new file mode 100644 index 0000000..6c09d84 --- /dev/null +++ b/sass/fontawesome/_stacked.scss @@ -0,0 +1,31 @@ +// Stacked Icons +// ------------------------- + +.#{$fa-css-prefix}-stack { + display: inline-block; + height: 2em; + line-height: 2em; + position: relative; + vertical-align: middle; + width: 2em; +} + +.#{$fa-css-prefix}-stack-1x, +.#{$fa-css-prefix}-stack-2x { + left: 0; + position: absolute; + text-align: center; + width: 100%; +} + +.#{$fa-css-prefix}-stack-1x { + line-height: inherit; +} + +.#{$fa-css-prefix}-stack-2x { + font-size: 2em; +} + +.#{$fa-css-prefix}-inverse { + color: $fa-inverse; +} diff --git a/sass/fontawesome/_variables.scss b/sass/fontawesome/_variables.scss new file mode 100644 index 0000000..cf5c417 --- /dev/null +++ b/sass/fontawesome/_variables.scss @@ -0,0 +1,1161 @@ +// Variables +// -------------------------- + +$fa-font-path: "../webfonts" !default; +$fa-font-size-base: 16px !default; +$fa-css-prefix: fa !default; +$fa-version: "5.2.0" !default; +$fa-border-color: #eee !default; +$fa-inverse: #fff !default; +$fa-li-width: 2em !default; + +// Convenience function used to set content property +@function fa-content($fa-var) { + @return unquote("\"#{ $fa-var }\""); +} + +$fa-var-500px: \f26e; +$fa-var-accessible-icon: \f368; +$fa-var-accusoft: \f369; +$fa-var-address-book: \f2b9; +$fa-var-address-card: \f2bb; +$fa-var-adjust: \f042; +$fa-var-adn: \f170; +$fa-var-adversal: \f36a; +$fa-var-affiliatetheme: \f36b; +$fa-var-air-freshener: \f5d0; +$fa-var-algolia: \f36c; +$fa-var-align-center: \f037; +$fa-var-align-justify: \f039; +$fa-var-align-left: \f036; +$fa-var-align-right: \f038; +$fa-var-allergies: \f461; +$fa-var-amazon: \f270; +$fa-var-amazon-pay: \f42c; +$fa-var-ambulance: \f0f9; +$fa-var-american-sign-language-interpreting: \f2a3; +$fa-var-amilia: \f36d; +$fa-var-anchor: \f13d; +$fa-var-android: \f17b; +$fa-var-angellist: \f209; +$fa-var-angle-double-down: \f103; +$fa-var-angle-double-left: \f100; +$fa-var-angle-double-right: \f101; +$fa-var-angle-double-up: \f102; +$fa-var-angle-down: \f107; +$fa-var-angle-left: \f104; +$fa-var-angle-right: \f105; +$fa-var-angle-up: \f106; +$fa-var-angry: \f556; +$fa-var-angrycreative: \f36e; +$fa-var-angular: \f420; +$fa-var-app-store: \f36f; +$fa-var-app-store-ios: \f370; +$fa-var-apper: \f371; +$fa-var-apple: \f179; +$fa-var-apple-alt: \f5d1; +$fa-var-apple-pay: \f415; +$fa-var-archive: \f187; +$fa-var-archway: \f557; +$fa-var-arrow-alt-circle-down: \f358; +$fa-var-arrow-alt-circle-left: \f359; +$fa-var-arrow-alt-circle-right: \f35a; +$fa-var-arrow-alt-circle-up: \f35b; +$fa-var-arrow-circle-down: \f0ab; +$fa-var-arrow-circle-left: \f0a8; +$fa-var-arrow-circle-right: \f0a9; +$fa-var-arrow-circle-up: \f0aa; +$fa-var-arrow-down: \f063; +$fa-var-arrow-left: \f060; +$fa-var-arrow-right: \f061; +$fa-var-arrow-up: \f062; +$fa-var-arrows-alt: \f0b2; +$fa-var-arrows-alt-h: \f337; +$fa-var-arrows-alt-v: \f338; +$fa-var-assistive-listening-systems: \f2a2; +$fa-var-asterisk: \f069; +$fa-var-asymmetrik: \f372; +$fa-var-at: \f1fa; +$fa-var-atlas: \f558; +$fa-var-atom: \f5d2; +$fa-var-audible: \f373; +$fa-var-audio-description: \f29e; +$fa-var-autoprefixer: \f41c; +$fa-var-avianex: \f374; +$fa-var-aviato: \f421; +$fa-var-award: \f559; +$fa-var-aws: \f375; +$fa-var-backspace: \f55a; +$fa-var-backward: \f04a; +$fa-var-balance-scale: \f24e; +$fa-var-ban: \f05e; +$fa-var-band-aid: \f462; +$fa-var-bandcamp: \f2d5; +$fa-var-barcode: \f02a; +$fa-var-bars: \f0c9; +$fa-var-baseball-ball: \f433; +$fa-var-basketball-ball: \f434; +$fa-var-bath: \f2cd; +$fa-var-battery-empty: \f244; +$fa-var-battery-full: \f240; +$fa-var-battery-half: \f242; +$fa-var-battery-quarter: \f243; +$fa-var-battery-three-quarters: \f241; +$fa-var-bed: \f236; +$fa-var-beer: \f0fc; +$fa-var-behance: \f1b4; +$fa-var-behance-square: \f1b5; +$fa-var-bell: \f0f3; +$fa-var-bell-slash: \f1f6; +$fa-var-bezier-curve: \f55b; +$fa-var-bicycle: \f206; +$fa-var-bimobject: \f378; +$fa-var-binoculars: \f1e5; +$fa-var-birthday-cake: \f1fd; +$fa-var-bitbucket: \f171; +$fa-var-bitcoin: \f379; +$fa-var-bity: \f37a; +$fa-var-black-tie: \f27e; +$fa-var-blackberry: \f37b; +$fa-var-blender: \f517; +$fa-var-blind: \f29d; +$fa-var-blogger: \f37c; +$fa-var-blogger-b: \f37d; +$fa-var-bluetooth: \f293; +$fa-var-bluetooth-b: \f294; +$fa-var-bold: \f032; +$fa-var-bolt: \f0e7; +$fa-var-bomb: \f1e2; +$fa-var-bone: \f5d7; +$fa-var-bong: \f55c; +$fa-var-book: \f02d; +$fa-var-book-open: \f518; +$fa-var-book-reader: \f5da; +$fa-var-bookmark: \f02e; +$fa-var-bowling-ball: \f436; +$fa-var-box: \f466; +$fa-var-box-open: \f49e; +$fa-var-boxes: \f468; +$fa-var-braille: \f2a1; +$fa-var-brain: \f5dc; +$fa-var-briefcase: \f0b1; +$fa-var-briefcase-medical: \f469; +$fa-var-broadcast-tower: \f519; +$fa-var-broom: \f51a; +$fa-var-brush: \f55d; +$fa-var-btc: \f15a; +$fa-var-bug: \f188; +$fa-var-building: \f1ad; +$fa-var-bullhorn: \f0a1; +$fa-var-bullseye: \f140; +$fa-var-burn: \f46a; +$fa-var-buromobelexperte: \f37f; +$fa-var-bus: \f207; +$fa-var-bus-alt: \f55e; +$fa-var-buysellads: \f20d; +$fa-var-calculator: \f1ec; +$fa-var-calendar: \f133; +$fa-var-calendar-alt: \f073; +$fa-var-calendar-check: \f274; +$fa-var-calendar-minus: \f272; +$fa-var-calendar-plus: \f271; +$fa-var-calendar-times: \f273; +$fa-var-camera: \f030; +$fa-var-camera-retro: \f083; +$fa-var-cannabis: \f55f; +$fa-var-capsules: \f46b; +$fa-var-car: \f1b9; +$fa-var-car-alt: \f5de; +$fa-var-car-battery: \f5df; +$fa-var-car-crash: \f5e1; +$fa-var-car-side: \f5e4; +$fa-var-caret-down: \f0d7; +$fa-var-caret-left: \f0d9; +$fa-var-caret-right: \f0da; +$fa-var-caret-square-down: \f150; +$fa-var-caret-square-left: \f191; +$fa-var-caret-square-right: \f152; +$fa-var-caret-square-up: \f151; +$fa-var-caret-up: \f0d8; +$fa-var-cart-arrow-down: \f218; +$fa-var-cart-plus: \f217; +$fa-var-cc-amazon-pay: \f42d; +$fa-var-cc-amex: \f1f3; +$fa-var-cc-apple-pay: \f416; +$fa-var-cc-diners-club: \f24c; +$fa-var-cc-discover: \f1f2; +$fa-var-cc-jcb: \f24b; +$fa-var-cc-mastercard: \f1f1; +$fa-var-cc-paypal: \f1f4; +$fa-var-cc-stripe: \f1f5; +$fa-var-cc-visa: \f1f0; +$fa-var-centercode: \f380; +$fa-var-certificate: \f0a3; +$fa-var-chalkboard: \f51b; +$fa-var-chalkboard-teacher: \f51c; +$fa-var-charging-station: \f5e7; +$fa-var-chart-area: \f1fe; +$fa-var-chart-bar: \f080; +$fa-var-chart-line: \f201; +$fa-var-chart-pie: \f200; +$fa-var-check: \f00c; +$fa-var-check-circle: \f058; +$fa-var-check-double: \f560; +$fa-var-check-square: \f14a; +$fa-var-chess: \f439; +$fa-var-chess-bishop: \f43a; +$fa-var-chess-board: \f43c; +$fa-var-chess-king: \f43f; +$fa-var-chess-knight: \f441; +$fa-var-chess-pawn: \f443; +$fa-var-chess-queen: \f445; +$fa-var-chess-rook: \f447; +$fa-var-chevron-circle-down: \f13a; +$fa-var-chevron-circle-left: \f137; +$fa-var-chevron-circle-right: \f138; +$fa-var-chevron-circle-up: \f139; +$fa-var-chevron-down: \f078; +$fa-var-chevron-left: \f053; +$fa-var-chevron-right: \f054; +$fa-var-chevron-up: \f077; +$fa-var-child: \f1ae; +$fa-var-chrome: \f268; +$fa-var-church: \f51d; +$fa-var-circle: \f111; +$fa-var-circle-notch: \f1ce; +$fa-var-clipboard: \f328; +$fa-var-clipboard-check: \f46c; +$fa-var-clipboard-list: \f46d; +$fa-var-clock: \f017; +$fa-var-clone: \f24d; +$fa-var-closed-captioning: \f20a; +$fa-var-cloud: \f0c2; +$fa-var-cloud-download-alt: \f381; +$fa-var-cloud-upload-alt: \f382; +$fa-var-cloudscale: \f383; +$fa-var-cloudsmith: \f384; +$fa-var-cloudversify: \f385; +$fa-var-cocktail: \f561; +$fa-var-code: \f121; +$fa-var-code-branch: \f126; +$fa-var-codepen: \f1cb; +$fa-var-codiepie: \f284; +$fa-var-coffee: \f0f4; +$fa-var-cog: \f013; +$fa-var-cogs: \f085; +$fa-var-coins: \f51e; +$fa-var-columns: \f0db; +$fa-var-comment: \f075; +$fa-var-comment-alt: \f27a; +$fa-var-comment-dots: \f4ad; +$fa-var-comment-slash: \f4b3; +$fa-var-comments: \f086; +$fa-var-compact-disc: \f51f; +$fa-var-compass: \f14e; +$fa-var-compress: \f066; +$fa-var-concierge-bell: \f562; +$fa-var-connectdevelop: \f20e; +$fa-var-contao: \f26d; +$fa-var-cookie: \f563; +$fa-var-cookie-bite: \f564; +$fa-var-copy: \f0c5; +$fa-var-copyright: \f1f9; +$fa-var-couch: \f4b8; +$fa-var-cpanel: \f388; +$fa-var-creative-commons: \f25e; +$fa-var-creative-commons-by: \f4e7; +$fa-var-creative-commons-nc: \f4e8; +$fa-var-creative-commons-nc-eu: \f4e9; +$fa-var-creative-commons-nc-jp: \f4ea; +$fa-var-creative-commons-nd: \f4eb; +$fa-var-creative-commons-pd: \f4ec; +$fa-var-creative-commons-pd-alt: \f4ed; +$fa-var-creative-commons-remix: \f4ee; +$fa-var-creative-commons-sa: \f4ef; +$fa-var-creative-commons-sampling: \f4f0; +$fa-var-creative-commons-sampling-plus: \f4f1; +$fa-var-creative-commons-share: \f4f2; +$fa-var-credit-card: \f09d; +$fa-var-crop: \f125; +$fa-var-crop-alt: \f565; +$fa-var-crosshairs: \f05b; +$fa-var-crow: \f520; +$fa-var-crown: \f521; +$fa-var-css3: \f13c; +$fa-var-css3-alt: \f38b; +$fa-var-cube: \f1b2; +$fa-var-cubes: \f1b3; +$fa-var-cut: \f0c4; +$fa-var-cuttlefish: \f38c; +$fa-var-d-and-d: \f38d; +$fa-var-dashcube: \f210; +$fa-var-database: \f1c0; +$fa-var-deaf: \f2a4; +$fa-var-delicious: \f1a5; +$fa-var-deploydog: \f38e; +$fa-var-deskpro: \f38f; +$fa-var-desktop: \f108; +$fa-var-deviantart: \f1bd; +$fa-var-diagnoses: \f470; +$fa-var-dice: \f522; +$fa-var-dice-five: \f523; +$fa-var-dice-four: \f524; +$fa-var-dice-one: \f525; +$fa-var-dice-six: \f526; +$fa-var-dice-three: \f527; +$fa-var-dice-two: \f528; +$fa-var-digg: \f1a6; +$fa-var-digital-ocean: \f391; +$fa-var-digital-tachograph: \f566; +$fa-var-directions: \f5eb; +$fa-var-discord: \f392; +$fa-var-discourse: \f393; +$fa-var-divide: \f529; +$fa-var-dizzy: \f567; +$fa-var-dna: \f471; +$fa-var-dochub: \f394; +$fa-var-docker: \f395; +$fa-var-dollar-sign: \f155; +$fa-var-dolly: \f472; +$fa-var-dolly-flatbed: \f474; +$fa-var-donate: \f4b9; +$fa-var-door-closed: \f52a; +$fa-var-door-open: \f52b; +$fa-var-dot-circle: \f192; +$fa-var-dove: \f4ba; +$fa-var-download: \f019; +$fa-var-draft2digital: \f396; +$fa-var-drafting-compass: \f568; +$fa-var-draw-polygon: \f5ee; +$fa-var-dribbble: \f17d; +$fa-var-dribbble-square: \f397; +$fa-var-dropbox: \f16b; +$fa-var-drum: \f569; +$fa-var-drum-steelpan: \f56a; +$fa-var-drupal: \f1a9; +$fa-var-dumbbell: \f44b; +$fa-var-dyalog: \f399; +$fa-var-earlybirds: \f39a; +$fa-var-ebay: \f4f4; +$fa-var-edge: \f282; +$fa-var-edit: \f044; +$fa-var-eject: \f052; +$fa-var-elementor: \f430; +$fa-var-ellipsis-h: \f141; +$fa-var-ellipsis-v: \f142; +$fa-var-ello: \f5f1; +$fa-var-ember: \f423; +$fa-var-empire: \f1d1; +$fa-var-envelope: \f0e0; +$fa-var-envelope-open: \f2b6; +$fa-var-envelope-square: \f199; +$fa-var-envira: \f299; +$fa-var-equals: \f52c; +$fa-var-eraser: \f12d; +$fa-var-erlang: \f39d; +$fa-var-ethereum: \f42e; +$fa-var-etsy: \f2d7; +$fa-var-euro-sign: \f153; +$fa-var-exchange-alt: \f362; +$fa-var-exclamation: \f12a; +$fa-var-exclamation-circle: \f06a; +$fa-var-exclamation-triangle: \f071; +$fa-var-expand: \f065; +$fa-var-expand-arrows-alt: \f31e; +$fa-var-expeditedssl: \f23e; +$fa-var-external-link-alt: \f35d; +$fa-var-external-link-square-alt: \f360; +$fa-var-eye: \f06e; +$fa-var-eye-dropper: \f1fb; +$fa-var-eye-slash: \f070; +$fa-var-facebook: \f09a; +$fa-var-facebook-f: \f39e; +$fa-var-facebook-messenger: \f39f; +$fa-var-facebook-square: \f082; +$fa-var-fast-backward: \f049; +$fa-var-fast-forward: \f050; +$fa-var-fax: \f1ac; +$fa-var-feather: \f52d; +$fa-var-feather-alt: \f56b; +$fa-var-female: \f182; +$fa-var-fighter-jet: \f0fb; +$fa-var-file: \f15b; +$fa-var-file-alt: \f15c; +$fa-var-file-archive: \f1c6; +$fa-var-file-audio: \f1c7; +$fa-var-file-code: \f1c9; +$fa-var-file-contract: \f56c; +$fa-var-file-download: \f56d; +$fa-var-file-excel: \f1c3; +$fa-var-file-export: \f56e; +$fa-var-file-image: \f1c5; +$fa-var-file-import: \f56f; +$fa-var-file-invoice: \f570; +$fa-var-file-invoice-dollar: \f571; +$fa-var-file-medical: \f477; +$fa-var-file-medical-alt: \f478; +$fa-var-file-pdf: \f1c1; +$fa-var-file-powerpoint: \f1c4; +$fa-var-file-prescription: \f572; +$fa-var-file-signature: \f573; +$fa-var-file-upload: \f574; +$fa-var-file-video: \f1c8; +$fa-var-file-word: \f1c2; +$fa-var-fill: \f575; +$fa-var-fill-drip: \f576; +$fa-var-film: \f008; +$fa-var-filter: \f0b0; +$fa-var-fingerprint: \f577; +$fa-var-fire: \f06d; +$fa-var-fire-extinguisher: \f134; +$fa-var-firefox: \f269; +$fa-var-first-aid: \f479; +$fa-var-first-order: \f2b0; +$fa-var-first-order-alt: \f50a; +$fa-var-firstdraft: \f3a1; +$fa-var-fish: \f578; +$fa-var-flag: \f024; +$fa-var-flag-checkered: \f11e; +$fa-var-flask: \f0c3; +$fa-var-flickr: \f16e; +$fa-var-flipboard: \f44d; +$fa-var-flushed: \f579; +$fa-var-fly: \f417; +$fa-var-folder: \f07b; +$fa-var-folder-open: \f07c; +$fa-var-font: \f031; +$fa-var-font-awesome: \f2b4; +$fa-var-font-awesome-alt: \f35c; +$fa-var-font-awesome-flag: \f425; +$fa-var-font-awesome-logo-full: \f4e6; +$fa-var-fonticons: \f280; +$fa-var-fonticons-fi: \f3a2; +$fa-var-football-ball: \f44e; +$fa-var-fort-awesome: \f286; +$fa-var-fort-awesome-alt: \f3a3; +$fa-var-forumbee: \f211; +$fa-var-forward: \f04e; +$fa-var-foursquare: \f180; +$fa-var-free-code-camp: \f2c5; +$fa-var-freebsd: \f3a4; +$fa-var-frog: \f52e; +$fa-var-frown: \f119; +$fa-var-frown-open: \f57a; +$fa-var-fulcrum: \f50b; +$fa-var-futbol: \f1e3; +$fa-var-galactic-republic: \f50c; +$fa-var-galactic-senate: \f50d; +$fa-var-gamepad: \f11b; +$fa-var-gas-pump: \f52f; +$fa-var-gavel: \f0e3; +$fa-var-gem: \f3a5; +$fa-var-genderless: \f22d; +$fa-var-get-pocket: \f265; +$fa-var-gg: \f260; +$fa-var-gg-circle: \f261; +$fa-var-gift: \f06b; +$fa-var-git: \f1d3; +$fa-var-git-square: \f1d2; +$fa-var-github: \f09b; +$fa-var-github-alt: \f113; +$fa-var-github-square: \f092; +$fa-var-gitkraken: \f3a6; +$fa-var-gitlab: \f296; +$fa-var-gitter: \f426; +$fa-var-glass-martini: \f000; +$fa-var-glass-martini-alt: \f57b; +$fa-var-glasses: \f530; +$fa-var-glide: \f2a5; +$fa-var-glide-g: \f2a6; +$fa-var-globe: \f0ac; +$fa-var-globe-africa: \f57c; +$fa-var-globe-americas: \f57d; +$fa-var-globe-asia: \f57e; +$fa-var-gofore: \f3a7; +$fa-var-golf-ball: \f450; +$fa-var-goodreads: \f3a8; +$fa-var-goodreads-g: \f3a9; +$fa-var-google: \f1a0; +$fa-var-google-drive: \f3aa; +$fa-var-google-play: \f3ab; +$fa-var-google-plus: \f2b3; +$fa-var-google-plus-g: \f0d5; +$fa-var-google-plus-square: \f0d4; +$fa-var-google-wallet: \f1ee; +$fa-var-graduation-cap: \f19d; +$fa-var-gratipay: \f184; +$fa-var-grav: \f2d6; +$fa-var-greater-than: \f531; +$fa-var-greater-than-equal: \f532; +$fa-var-grimace: \f57f; +$fa-var-grin: \f580; +$fa-var-grin-alt: \f581; +$fa-var-grin-beam: \f582; +$fa-var-grin-beam-sweat: \f583; +$fa-var-grin-hearts: \f584; +$fa-var-grin-squint: \f585; +$fa-var-grin-squint-tears: \f586; +$fa-var-grin-stars: \f587; +$fa-var-grin-tears: \f588; +$fa-var-grin-tongue: \f589; +$fa-var-grin-tongue-squint: \f58a; +$fa-var-grin-tongue-wink: \f58b; +$fa-var-grin-wink: \f58c; +$fa-var-grip-horizontal: \f58d; +$fa-var-grip-vertical: \f58e; +$fa-var-gripfire: \f3ac; +$fa-var-grunt: \f3ad; +$fa-var-gulp: \f3ae; +$fa-var-h-square: \f0fd; +$fa-var-hacker-news: \f1d4; +$fa-var-hacker-news-square: \f3af; +$fa-var-hackerrank: \f5f7; +$fa-var-hand-holding: \f4bd; +$fa-var-hand-holding-heart: \f4be; +$fa-var-hand-holding-usd: \f4c0; +$fa-var-hand-lizard: \f258; +$fa-var-hand-paper: \f256; +$fa-var-hand-peace: \f25b; +$fa-var-hand-point-down: \f0a7; +$fa-var-hand-point-left: \f0a5; +$fa-var-hand-point-right: \f0a4; +$fa-var-hand-point-up: \f0a6; +$fa-var-hand-pointer: \f25a; +$fa-var-hand-rock: \f255; +$fa-var-hand-scissors: \f257; +$fa-var-hand-spock: \f259; +$fa-var-hands: \f4c2; +$fa-var-hands-helping: \f4c4; +$fa-var-handshake: \f2b5; +$fa-var-hashtag: \f292; +$fa-var-hdd: \f0a0; +$fa-var-heading: \f1dc; +$fa-var-headphones: \f025; +$fa-var-headphones-alt: \f58f; +$fa-var-headset: \f590; +$fa-var-heart: \f004; +$fa-var-heartbeat: \f21e; +$fa-var-helicopter: \f533; +$fa-var-highlighter: \f591; +$fa-var-hips: \f452; +$fa-var-hire-a-helper: \f3b0; +$fa-var-history: \f1da; +$fa-var-hockey-puck: \f453; +$fa-var-home: \f015; +$fa-var-hooli: \f427; +$fa-var-hornbill: \f592; +$fa-var-hospital: \f0f8; +$fa-var-hospital-alt: \f47d; +$fa-var-hospital-symbol: \f47e; +$fa-var-hot-tub: \f593; +$fa-var-hotel: \f594; +$fa-var-hotjar: \f3b1; +$fa-var-hourglass: \f254; +$fa-var-hourglass-end: \f253; +$fa-var-hourglass-half: \f252; +$fa-var-hourglass-start: \f251; +$fa-var-houzz: \f27c; +$fa-var-html5: \f13b; +$fa-var-hubspot: \f3b2; +$fa-var-i-cursor: \f246; +$fa-var-id-badge: \f2c1; +$fa-var-id-card: \f2c2; +$fa-var-id-card-alt: \f47f; +$fa-var-image: \f03e; +$fa-var-images: \f302; +$fa-var-imdb: \f2d8; +$fa-var-inbox: \f01c; +$fa-var-indent: \f03c; +$fa-var-industry: \f275; +$fa-var-infinity: \f534; +$fa-var-info: \f129; +$fa-var-info-circle: \f05a; +$fa-var-instagram: \f16d; +$fa-var-internet-explorer: \f26b; +$fa-var-ioxhost: \f208; +$fa-var-italic: \f033; +$fa-var-itunes: \f3b4; +$fa-var-itunes-note: \f3b5; +$fa-var-java: \f4e4; +$fa-var-jedi-order: \f50e; +$fa-var-jenkins: \f3b6; +$fa-var-joget: \f3b7; +$fa-var-joint: \f595; +$fa-var-joomla: \f1aa; +$fa-var-js: \f3b8; +$fa-var-js-square: \f3b9; +$fa-var-jsfiddle: \f1cc; +$fa-var-kaggle: \f5fa; +$fa-var-key: \f084; +$fa-var-keybase: \f4f5; +$fa-var-keyboard: \f11c; +$fa-var-keycdn: \f3ba; +$fa-var-kickstarter: \f3bb; +$fa-var-kickstarter-k: \f3bc; +$fa-var-kiss: \f596; +$fa-var-kiss-beam: \f597; +$fa-var-kiss-wink-heart: \f598; +$fa-var-kiwi-bird: \f535; +$fa-var-korvue: \f42f; +$fa-var-language: \f1ab; +$fa-var-laptop: \f109; +$fa-var-laptop-code: \f5fc; +$fa-var-laravel: \f3bd; +$fa-var-lastfm: \f202; +$fa-var-lastfm-square: \f203; +$fa-var-laugh: \f599; +$fa-var-laugh-beam: \f59a; +$fa-var-laugh-squint: \f59b; +$fa-var-laugh-wink: \f59c; +$fa-var-layer-group: \f5fd; +$fa-var-leaf: \f06c; +$fa-var-leanpub: \f212; +$fa-var-lemon: \f094; +$fa-var-less: \f41d; +$fa-var-less-than: \f536; +$fa-var-less-than-equal: \f537; +$fa-var-level-down-alt: \f3be; +$fa-var-level-up-alt: \f3bf; +$fa-var-life-ring: \f1cd; +$fa-var-lightbulb: \f0eb; +$fa-var-line: \f3c0; +$fa-var-link: \f0c1; +$fa-var-linkedin: \f08c; +$fa-var-linkedin-in: \f0e1; +$fa-var-linode: \f2b8; +$fa-var-linux: \f17c; +$fa-var-lira-sign: \f195; +$fa-var-list: \f03a; +$fa-var-list-alt: \f022; +$fa-var-list-ol: \f0cb; +$fa-var-list-ul: \f0ca; +$fa-var-location-arrow: \f124; +$fa-var-lock: \f023; +$fa-var-lock-open: \f3c1; +$fa-var-long-arrow-alt-down: \f309; +$fa-var-long-arrow-alt-left: \f30a; +$fa-var-long-arrow-alt-right: \f30b; +$fa-var-long-arrow-alt-up: \f30c; +$fa-var-low-vision: \f2a8; +$fa-var-luggage-cart: \f59d; +$fa-var-lyft: \f3c3; +$fa-var-magento: \f3c4; +$fa-var-magic: \f0d0; +$fa-var-magnet: \f076; +$fa-var-mailchimp: \f59e; +$fa-var-male: \f183; +$fa-var-mandalorian: \f50f; +$fa-var-map: \f279; +$fa-var-map-marked: \f59f; +$fa-var-map-marked-alt: \f5a0; +$fa-var-map-marker: \f041; +$fa-var-map-marker-alt: \f3c5; +$fa-var-map-pin: \f276; +$fa-var-map-signs: \f277; +$fa-var-markdown: \f60f; +$fa-var-marker: \f5a1; +$fa-var-mars: \f222; +$fa-var-mars-double: \f227; +$fa-var-mars-stroke: \f229; +$fa-var-mars-stroke-h: \f22b; +$fa-var-mars-stroke-v: \f22a; +$fa-var-mastodon: \f4f6; +$fa-var-maxcdn: \f136; +$fa-var-medal: \f5a2; +$fa-var-medapps: \f3c6; +$fa-var-medium: \f23a; +$fa-var-medium-m: \f3c7; +$fa-var-medkit: \f0fa; +$fa-var-medrt: \f3c8; +$fa-var-meetup: \f2e0; +$fa-var-megaport: \f5a3; +$fa-var-meh: \f11a; +$fa-var-meh-blank: \f5a4; +$fa-var-meh-rolling-eyes: \f5a5; +$fa-var-memory: \f538; +$fa-var-mercury: \f223; +$fa-var-microchip: \f2db; +$fa-var-microphone: \f130; +$fa-var-microphone-alt: \f3c9; +$fa-var-microphone-alt-slash: \f539; +$fa-var-microphone-slash: \f131; +$fa-var-microscope: \f610; +$fa-var-microsoft: \f3ca; +$fa-var-minus: \f068; +$fa-var-minus-circle: \f056; +$fa-var-minus-square: \f146; +$fa-var-mix: \f3cb; +$fa-var-mixcloud: \f289; +$fa-var-mizuni: \f3cc; +$fa-var-mobile: \f10b; +$fa-var-mobile-alt: \f3cd; +$fa-var-modx: \f285; +$fa-var-monero: \f3d0; +$fa-var-money-bill: \f0d6; +$fa-var-money-bill-alt: \f3d1; +$fa-var-money-bill-wave: \f53a; +$fa-var-money-bill-wave-alt: \f53b; +$fa-var-money-check: \f53c; +$fa-var-money-check-alt: \f53d; +$fa-var-monument: \f5a6; +$fa-var-moon: \f186; +$fa-var-mortar-pestle: \f5a7; +$fa-var-motorcycle: \f21c; +$fa-var-mouse-pointer: \f245; +$fa-var-music: \f001; +$fa-var-napster: \f3d2; +$fa-var-neos: \f612; +$fa-var-neuter: \f22c; +$fa-var-newspaper: \f1ea; +$fa-var-nimblr: \f5a8; +$fa-var-nintendo-switch: \f418; +$fa-var-node: \f419; +$fa-var-node-js: \f3d3; +$fa-var-not-equal: \f53e; +$fa-var-notes-medical: \f481; +$fa-var-npm: \f3d4; +$fa-var-ns8: \f3d5; +$fa-var-nutritionix: \f3d6; +$fa-var-object-group: \f247; +$fa-var-object-ungroup: \f248; +$fa-var-odnoklassniki: \f263; +$fa-var-odnoklassniki-square: \f264; +$fa-var-oil-can: \f613; +$fa-var-old-republic: \f510; +$fa-var-opencart: \f23d; +$fa-var-openid: \f19b; +$fa-var-opera: \f26a; +$fa-var-optin-monster: \f23c; +$fa-var-osi: \f41a; +$fa-var-outdent: \f03b; +$fa-var-page4: \f3d7; +$fa-var-pagelines: \f18c; +$fa-var-paint-brush: \f1fc; +$fa-var-paint-roller: \f5aa; +$fa-var-palette: \f53f; +$fa-var-palfed: \f3d8; +$fa-var-pallet: \f482; +$fa-var-paper-plane: \f1d8; +$fa-var-paperclip: \f0c6; +$fa-var-parachute-box: \f4cd; +$fa-var-paragraph: \f1dd; +$fa-var-parking: \f540; +$fa-var-passport: \f5ab; +$fa-var-paste: \f0ea; +$fa-var-patreon: \f3d9; +$fa-var-pause: \f04c; +$fa-var-pause-circle: \f28b; +$fa-var-paw: \f1b0; +$fa-var-paypal: \f1ed; +$fa-var-pen: \f304; +$fa-var-pen-alt: \f305; +$fa-var-pen-fancy: \f5ac; +$fa-var-pen-nib: \f5ad; +$fa-var-pen-square: \f14b; +$fa-var-pencil-alt: \f303; +$fa-var-pencil-ruler: \f5ae; +$fa-var-people-carry: \f4ce; +$fa-var-percent: \f295; +$fa-var-percentage: \f541; +$fa-var-periscope: \f3da; +$fa-var-phabricator: \f3db; +$fa-var-phoenix-framework: \f3dc; +$fa-var-phoenix-squadron: \f511; +$fa-var-phone: \f095; +$fa-var-phone-slash: \f3dd; +$fa-var-phone-square: \f098; +$fa-var-phone-volume: \f2a0; +$fa-var-php: \f457; +$fa-var-pied-piper: \f2ae; +$fa-var-pied-piper-alt: \f1a8; +$fa-var-pied-piper-hat: \f4e5; +$fa-var-pied-piper-pp: \f1a7; +$fa-var-piggy-bank: \f4d3; +$fa-var-pills: \f484; +$fa-var-pinterest: \f0d2; +$fa-var-pinterest-p: \f231; +$fa-var-pinterest-square: \f0d3; +$fa-var-plane: \f072; +$fa-var-plane-arrival: \f5af; +$fa-var-plane-departure: \f5b0; +$fa-var-play: \f04b; +$fa-var-play-circle: \f144; +$fa-var-playstation: \f3df; +$fa-var-plug: \f1e6; +$fa-var-plus: \f067; +$fa-var-plus-circle: \f055; +$fa-var-plus-square: \f0fe; +$fa-var-podcast: \f2ce; +$fa-var-poo: \f2fe; +$fa-var-poop: \f619; +$fa-var-portrait: \f3e0; +$fa-var-pound-sign: \f154; +$fa-var-power-off: \f011; +$fa-var-prescription: \f5b1; +$fa-var-prescription-bottle: \f485; +$fa-var-prescription-bottle-alt: \f486; +$fa-var-print: \f02f; +$fa-var-procedures: \f487; +$fa-var-product-hunt: \f288; +$fa-var-project-diagram: \f542; +$fa-var-pushed: \f3e1; +$fa-var-puzzle-piece: \f12e; +$fa-var-python: \f3e2; +$fa-var-qq: \f1d6; +$fa-var-qrcode: \f029; +$fa-var-question: \f128; +$fa-var-question-circle: \f059; +$fa-var-quidditch: \f458; +$fa-var-quinscape: \f459; +$fa-var-quora: \f2c4; +$fa-var-quote-left: \f10d; +$fa-var-quote-right: \f10e; +$fa-var-r-project: \f4f7; +$fa-var-random: \f074; +$fa-var-ravelry: \f2d9; +$fa-var-react: \f41b; +$fa-var-readme: \f4d5; +$fa-var-rebel: \f1d0; +$fa-var-receipt: \f543; +$fa-var-recycle: \f1b8; +$fa-var-red-river: \f3e3; +$fa-var-reddit: \f1a1; +$fa-var-reddit-alien: \f281; +$fa-var-reddit-square: \f1a2; +$fa-var-redo: \f01e; +$fa-var-redo-alt: \f2f9; +$fa-var-registered: \f25d; +$fa-var-rendact: \f3e4; +$fa-var-renren: \f18b; +$fa-var-reply: \f3e5; +$fa-var-reply-all: \f122; +$fa-var-replyd: \f3e6; +$fa-var-researchgate: \f4f8; +$fa-var-resolving: \f3e7; +$fa-var-retweet: \f079; +$fa-var-rev: \f5b2; +$fa-var-ribbon: \f4d6; +$fa-var-road: \f018; +$fa-var-robot: \f544; +$fa-var-rocket: \f135; +$fa-var-rocketchat: \f3e8; +$fa-var-rockrms: \f3e9; +$fa-var-route: \f4d7; +$fa-var-rss: \f09e; +$fa-var-rss-square: \f143; +$fa-var-ruble-sign: \f158; +$fa-var-ruler: \f545; +$fa-var-ruler-combined: \f546; +$fa-var-ruler-horizontal: \f547; +$fa-var-ruler-vertical: \f548; +$fa-var-rupee-sign: \f156; +$fa-var-sad-cry: \f5b3; +$fa-var-sad-tear: \f5b4; +$fa-var-safari: \f267; +$fa-var-sass: \f41e; +$fa-var-save: \f0c7; +$fa-var-schlix: \f3ea; +$fa-var-school: \f549; +$fa-var-screwdriver: \f54a; +$fa-var-scribd: \f28a; +$fa-var-search: \f002; +$fa-var-search-minus: \f010; +$fa-var-search-plus: \f00e; +$fa-var-searchengin: \f3eb; +$fa-var-seedling: \f4d8; +$fa-var-sellcast: \f2da; +$fa-var-sellsy: \f213; +$fa-var-server: \f233; +$fa-var-servicestack: \f3ec; +$fa-var-shapes: \f61f; +$fa-var-share: \f064; +$fa-var-share-alt: \f1e0; +$fa-var-share-alt-square: \f1e1; +$fa-var-share-square: \f14d; +$fa-var-shekel-sign: \f20b; +$fa-var-shield-alt: \f3ed; +$fa-var-ship: \f21a; +$fa-var-shipping-fast: \f48b; +$fa-var-shirtsinbulk: \f214; +$fa-var-shoe-prints: \f54b; +$fa-var-shopping-bag: \f290; +$fa-var-shopping-basket: \f291; +$fa-var-shopping-cart: \f07a; +$fa-var-shopware: \f5b5; +$fa-var-shower: \f2cc; +$fa-var-shuttle-van: \f5b6; +$fa-var-sign: \f4d9; +$fa-var-sign-in-alt: \f2f6; +$fa-var-sign-language: \f2a7; +$fa-var-sign-out-alt: \f2f5; +$fa-var-signal: \f012; +$fa-var-signature: \f5b7; +$fa-var-simplybuilt: \f215; +$fa-var-sistrix: \f3ee; +$fa-var-sitemap: \f0e8; +$fa-var-sith: \f512; +$fa-var-skull: \f54c; +$fa-var-skyatlas: \f216; +$fa-var-skype: \f17e; +$fa-var-slack: \f198; +$fa-var-slack-hash: \f3ef; +$fa-var-sliders-h: \f1de; +$fa-var-slideshare: \f1e7; +$fa-var-smile: \f118; +$fa-var-smile-beam: \f5b8; +$fa-var-smile-wink: \f4da; +$fa-var-smoking: \f48d; +$fa-var-smoking-ban: \f54d; +$fa-var-snapchat: \f2ab; +$fa-var-snapchat-ghost: \f2ac; +$fa-var-snapchat-square: \f2ad; +$fa-var-snowflake: \f2dc; +$fa-var-solar-panel: \f5ba; +$fa-var-sort: \f0dc; +$fa-var-sort-alpha-down: \f15d; +$fa-var-sort-alpha-up: \f15e; +$fa-var-sort-amount-down: \f160; +$fa-var-sort-amount-up: \f161; +$fa-var-sort-down: \f0dd; +$fa-var-sort-numeric-down: \f162; +$fa-var-sort-numeric-up: \f163; +$fa-var-sort-up: \f0de; +$fa-var-soundcloud: \f1be; +$fa-var-spa: \f5bb; +$fa-var-space-shuttle: \f197; +$fa-var-speakap: \f3f3; +$fa-var-spinner: \f110; +$fa-var-splotch: \f5bc; +$fa-var-spotify: \f1bc; +$fa-var-spray-can: \f5bd; +$fa-var-square: \f0c8; +$fa-var-square-full: \f45c; +$fa-var-squarespace: \f5be; +$fa-var-stack-exchange: \f18d; +$fa-var-stack-overflow: \f16c; +$fa-var-stamp: \f5bf; +$fa-var-star: \f005; +$fa-var-star-half: \f089; +$fa-var-star-half-alt: \f5c0; +$fa-var-star-of-life: \f621; +$fa-var-staylinked: \f3f5; +$fa-var-steam: \f1b6; +$fa-var-steam-square: \f1b7; +$fa-var-steam-symbol: \f3f6; +$fa-var-step-backward: \f048; +$fa-var-step-forward: \f051; +$fa-var-stethoscope: \f0f1; +$fa-var-sticker-mule: \f3f7; +$fa-var-sticky-note: \f249; +$fa-var-stop: \f04d; +$fa-var-stop-circle: \f28d; +$fa-var-stopwatch: \f2f2; +$fa-var-store: \f54e; +$fa-var-store-alt: \f54f; +$fa-var-strava: \f428; +$fa-var-stream: \f550; +$fa-var-street-view: \f21d; +$fa-var-strikethrough: \f0cc; +$fa-var-stripe: \f429; +$fa-var-stripe-s: \f42a; +$fa-var-stroopwafel: \f551; +$fa-var-studiovinari: \f3f8; +$fa-var-stumbleupon: \f1a4; +$fa-var-stumbleupon-circle: \f1a3; +$fa-var-subscript: \f12c; +$fa-var-subway: \f239; +$fa-var-suitcase: \f0f2; +$fa-var-suitcase-rolling: \f5c1; +$fa-var-sun: \f185; +$fa-var-superpowers: \f2dd; +$fa-var-superscript: \f12b; +$fa-var-supple: \f3f9; +$fa-var-surprise: \f5c2; +$fa-var-swatchbook: \f5c3; +$fa-var-swimmer: \f5c4; +$fa-var-swimming-pool: \f5c5; +$fa-var-sync: \f021; +$fa-var-sync-alt: \f2f1; +$fa-var-syringe: \f48e; +$fa-var-table: \f0ce; +$fa-var-table-tennis: \f45d; +$fa-var-tablet: \f10a; +$fa-var-tablet-alt: \f3fa; +$fa-var-tablets: \f490; +$fa-var-tachometer-alt: \f3fd; +$fa-var-tag: \f02b; +$fa-var-tags: \f02c; +$fa-var-tape: \f4db; +$fa-var-tasks: \f0ae; +$fa-var-taxi: \f1ba; +$fa-var-teamspeak: \f4f9; +$fa-var-teeth: \f62e; +$fa-var-teeth-open: \f62f; +$fa-var-telegram: \f2c6; +$fa-var-telegram-plane: \f3fe; +$fa-var-tencent-weibo: \f1d5; +$fa-var-terminal: \f120; +$fa-var-text-height: \f034; +$fa-var-text-width: \f035; +$fa-var-th: \f00a; +$fa-var-th-large: \f009; +$fa-var-th-list: \f00b; +$fa-var-theater-masks: \f630; +$fa-var-themeco: \f5c6; +$fa-var-themeisle: \f2b2; +$fa-var-thermometer: \f491; +$fa-var-thermometer-empty: \f2cb; +$fa-var-thermometer-full: \f2c7; +$fa-var-thermometer-half: \f2c9; +$fa-var-thermometer-quarter: \f2ca; +$fa-var-thermometer-three-quarters: \f2c8; +$fa-var-thumbs-down: \f165; +$fa-var-thumbs-up: \f164; +$fa-var-thumbtack: \f08d; +$fa-var-ticket-alt: \f3ff; +$fa-var-times: \f00d; +$fa-var-times-circle: \f057; +$fa-var-tint: \f043; +$fa-var-tint-slash: \f5c7; +$fa-var-tired: \f5c8; +$fa-var-toggle-off: \f204; +$fa-var-toggle-on: \f205; +$fa-var-toolbox: \f552; +$fa-var-tooth: \f5c9; +$fa-var-trade-federation: \f513; +$fa-var-trademark: \f25c; +$fa-var-traffic-light: \f637; +$fa-var-train: \f238; +$fa-var-transgender: \f224; +$fa-var-transgender-alt: \f225; +$fa-var-trash: \f1f8; +$fa-var-trash-alt: \f2ed; +$fa-var-tree: \f1bb; +$fa-var-trello: \f181; +$fa-var-tripadvisor: \f262; +$fa-var-trophy: \f091; +$fa-var-truck: \f0d1; +$fa-var-truck-loading: \f4de; +$fa-var-truck-monster: \f63b; +$fa-var-truck-moving: \f4df; +$fa-var-truck-pickup: \f63c; +$fa-var-tshirt: \f553; +$fa-var-tty: \f1e4; +$fa-var-tumblr: \f173; +$fa-var-tumblr-square: \f174; +$fa-var-tv: \f26c; +$fa-var-twitch: \f1e8; +$fa-var-twitter: \f099; +$fa-var-twitter-square: \f081; +$fa-var-typo3: \f42b; +$fa-var-uber: \f402; +$fa-var-uikit: \f403; +$fa-var-umbrella: \f0e9; +$fa-var-umbrella-beach: \f5ca; +$fa-var-underline: \f0cd; +$fa-var-undo: \f0e2; +$fa-var-undo-alt: \f2ea; +$fa-var-uniregistry: \f404; +$fa-var-universal-access: \f29a; +$fa-var-university: \f19c; +$fa-var-unlink: \f127; +$fa-var-unlock: \f09c; +$fa-var-unlock-alt: \f13e; +$fa-var-untappd: \f405; +$fa-var-upload: \f093; +$fa-var-usb: \f287; +$fa-var-user: \f007; +$fa-var-user-alt: \f406; +$fa-var-user-alt-slash: \f4fa; +$fa-var-user-astronaut: \f4fb; +$fa-var-user-check: \f4fc; +$fa-var-user-circle: \f2bd; +$fa-var-user-clock: \f4fd; +$fa-var-user-cog: \f4fe; +$fa-var-user-edit: \f4ff; +$fa-var-user-friends: \f500; +$fa-var-user-graduate: \f501; +$fa-var-user-lock: \f502; +$fa-var-user-md: \f0f0; +$fa-var-user-minus: \f503; +$fa-var-user-ninja: \f504; +$fa-var-user-plus: \f234; +$fa-var-user-secret: \f21b; +$fa-var-user-shield: \f505; +$fa-var-user-slash: \f506; +$fa-var-user-tag: \f507; +$fa-var-user-tie: \f508; +$fa-var-user-times: \f235; +$fa-var-users: \f0c0; +$fa-var-users-cog: \f509; +$fa-var-ussunnah: \f407; +$fa-var-utensil-spoon: \f2e5; +$fa-var-utensils: \f2e7; +$fa-var-vaadin: \f408; +$fa-var-vector-square: \f5cb; +$fa-var-venus: \f221; +$fa-var-venus-double: \f226; +$fa-var-venus-mars: \f228; +$fa-var-viacoin: \f237; +$fa-var-viadeo: \f2a9; +$fa-var-viadeo-square: \f2aa; +$fa-var-vial: \f492; +$fa-var-vials: \f493; +$fa-var-viber: \f409; +$fa-var-video: \f03d; +$fa-var-video-slash: \f4e2; +$fa-var-vimeo: \f40a; +$fa-var-vimeo-square: \f194; +$fa-var-vimeo-v: \f27d; +$fa-var-vine: \f1ca; +$fa-var-vk: \f189; +$fa-var-vnv: \f40b; +$fa-var-volleyball-ball: \f45f; +$fa-var-volume-down: \f027; +$fa-var-volume-off: \f026; +$fa-var-volume-up: \f028; +$fa-var-vuejs: \f41f; +$fa-var-walking: \f554; +$fa-var-wallet: \f555; +$fa-var-warehouse: \f494; +$fa-var-weebly: \f5cc; +$fa-var-weibo: \f18a; +$fa-var-weight: \f496; +$fa-var-weight-hanging: \f5cd; +$fa-var-weixin: \f1d7; +$fa-var-whatsapp: \f232; +$fa-var-whatsapp-square: \f40c; +$fa-var-wheelchair: \f193; +$fa-var-whmcs: \f40d; +$fa-var-wifi: \f1eb; +$fa-var-wikipedia-w: \f266; +$fa-var-window-close: \f410; +$fa-var-window-maximize: \f2d0; +$fa-var-window-minimize: \f2d1; +$fa-var-window-restore: \f2d2; +$fa-var-windows: \f17a; +$fa-var-wine-glass: \f4e3; +$fa-var-wine-glass-alt: \f5ce; +$fa-var-wix: \f5cf; +$fa-var-wolf-pack-battalion: \f514; +$fa-var-won-sign: \f159; +$fa-var-wordpress: \f19a; +$fa-var-wordpress-simple: \f411; +$fa-var-wpbeginner: \f297; +$fa-var-wpexplorer: \f2de; +$fa-var-wpforms: \f298; +$fa-var-wrench: \f0ad; +$fa-var-x-ray: \f497; +$fa-var-xbox: \f412; +$fa-var-xing: \f168; +$fa-var-xing-square: \f169; +$fa-var-y-combinator: \f23b; +$fa-var-yahoo: \f19e; +$fa-var-yandex: \f413; +$fa-var-yandex-international: \f414; +$fa-var-yelp: \f1e9; +$fa-var-yen-sign: \f157; +$fa-var-yoast: \f2b1; +$fa-var-youtube: \f167; +$fa-var-youtube-square: \f431; +$fa-var-zhihu: \f63f; diff --git a/sass/fontawesome/brands.scss b/sass/fontawesome/brands.scss new file mode 100644 index 0000000..ac9f308 --- /dev/null +++ b/sass/fontawesome/brands.scss @@ -0,0 +1,21 @@ +/*! + * Font Awesome Free 5.2.0 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + */ +@import 'variables'; + +@font-face { + font-family: 'Font Awesome 5 Brands'; + font-style: normal; + font-weight: normal; + src: url('#{$fa-font-path}/fa-brands-400.eot'); + src: url('#{$fa-font-path}/fa-brands-400.eot?#iefix') format('embedded-opentype'), + url('#{$fa-font-path}/fa-brands-400.woff2') format('woff2'), + url('#{$fa-font-path}/fa-brands-400.woff') format('woff'), + url('#{$fa-font-path}/fa-brands-400.ttf') format('truetype'), + url('#{$fa-font-path}/fa-brands-400.svg#fontawesome') format('svg'); +} + +.fab { + font-family: 'Font Awesome 5 Brands'; +} diff --git a/sass/fontawesome/fontawesome.scss b/sass/fontawesome/fontawesome.scss new file mode 100644 index 0000000..726583f --- /dev/null +++ b/sass/fontawesome/fontawesome.scss @@ -0,0 +1,16 @@ +/*! + * Font Awesome Free 5.2.0 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + */ +@import 'variables'; +@import 'mixins'; +@import 'core'; +@import 'larger'; +@import 'fixed-width'; +@import 'list'; +@import 'bordered-pulled'; +@import 'animated'; +@import 'rotated-flipped'; +@import 'stacked'; +@import 'icons'; +@import 'screen-reader'; diff --git a/sass/fontawesome/regular.scss b/sass/fontawesome/regular.scss new file mode 100644 index 0000000..5f6efa6 --- /dev/null +++ b/sass/fontawesome/regular.scss @@ -0,0 +1,22 @@ +/*! + * Font Awesome Free 5.2.0 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + */ +@import 'variables'; + +@font-face { + font-family: 'Font Awesome 5 Free'; + font-style: normal; + font-weight: 400; + src: url('#{$fa-font-path}/fa-regular-400.eot'); + src: url('#{$fa-font-path}/fa-regular-400.eot?#iefix') format('embedded-opentype'), + url('#{$fa-font-path}/fa-regular-400.woff2') format('woff2'), + url('#{$fa-font-path}/fa-regular-400.woff') format('woff'), + url('#{$fa-font-path}/fa-regular-400.ttf') format('truetype'), + url('#{$fa-font-path}/fa-regular-400.svg#fontawesome') format('svg'); +} + +.far { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} diff --git a/sass/fontawesome/solid.scss b/sass/fontawesome/solid.scss new file mode 100644 index 0000000..9491149 --- /dev/null +++ b/sass/fontawesome/solid.scss @@ -0,0 +1,23 @@ +/*! + * Font Awesome Free 5.2.0 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + */ +@import 'variables'; + +@font-face { + font-family: 'Font Awesome 5 Free'; + font-style: normal; + font-weight: 900; + src: url('#{$fa-font-path}/fa-solid-900.eot'); + src: url('#{$fa-font-path}/fa-solid-900.eot?#iefix') format('embedded-opentype'), + url('#{$fa-font-path}/fa-solid-900.woff2') format('woff2'), + url('#{$fa-font-path}/fa-solid-900.woff') format('woff'), + url('#{$fa-font-path}/fa-solid-900.ttf') format('truetype'), + url('#{$fa-font-path}/fa-solid-900.svg#fontawesome') format('svg'); +} + +.fa, +.fas { + font-family: 'Font Awesome 5 Free'; + font-weight: 900; +} diff --git a/sass/fontawesome/v4-shims.scss b/sass/fontawesome/v4-shims.scss new file mode 100644 index 0000000..94b6978 --- /dev/null +++ b/sass/fontawesome/v4-shims.scss @@ -0,0 +1,6 @@ +/*! + * Font Awesome Free 5.2.0 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + */ +@import 'variables'; +@import 'shims'; diff --git a/sass/style.scss b/sass/style.scss index 603c692..fd46660 100644 --- a/sass/style.scss +++ b/sass/style.scss @@ -3,9 +3,12 @@ @import "modularscale"; @import "breakpoint"; +@import "fontawesome/fontawesome.scss"; +@import "fontawesome/solid.scss"; + // Import theme variables @import "theme/**/*.scss"; // Import sass partials @import "base/**/*.scss"; -@import "components/**/*.scss"; \ No newline at end of file +@import "components/**/*.scss"; diff --git a/webfonts/fa-brands-400.eot b/webfonts/fa-brands-400.eot new file mode 100644 index 0000000000000000000000000000000000000000..f7accfa17c885bd812794228e358cbaff704d4ec GIT binary patch literal 116516 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/webfonts/fa-brands-400.ttf b/webfonts/fa-brands-400.ttf new file mode 100644 index 0000000000000000000000000000000000000000..2ffa92d4fadb1ccccee6568190d19de33a649c87 GIT binary patch literal 116280 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 Wn%iBvd+$B;H`OQB8f!A||9=3|O&@Up literal 0 HcmV?d00001 diff --git a/webfonts/fa-brands-400.woff b/webfonts/fa-brands-400.woff new file mode 100644 index 0000000000000000000000000000000000000000..34110b2e4263ab7102bdc0d990a7589d84b496ff GIT binary patch literal 74928 zcmZ5lQ+OpzkiE%`F|loHV%xTDCllMYZQHhO+vZH{{dXU?zwcC6ovu?a)&0=jZt`Mc z01yBG076<1fc@Wjl;i*6|J?sS#FbTr{!4)RkLUgmDuhvFp7P2JzyISz{)>hGgPH)B zQme78p~HV%H~;_}4*+2KmNQ1KnA>=m0RZrr01)tR07&%XT%Iqeg{h$l00af|KON(L zU_*?n5VQD?{Ew6PFDCjAq+mS2Dhpd@_y0JX|7van0N~ftuRq*2_QwC^q5YQ!`ue}% zT+er~HFS3XfM5#zrz7|egrL!xbc&R2IvTibtB1btEH4*u&qY%2Ax@eLRc%Mk_tk5TuSyge{xegt$9H{0jLD*9pW&au zpT(ce-ip3aRTr}kvbtVtJ7}GJwRt#~p~nN3G}~Nl8@6s;I;YZa zFuj#^M>rqMKFoWQZjZd)1$Q@L??}GcdDmsH8@|2z$7ydX->^S1KlIK}UqkVXw9zoe zgTe<9jI2B;W}zVmHTQBFXsf|4hQhDZ-Z-tHIfiafhW4+_sS&D1J?<(tsM=#}4YoEI zQHOC0V?CNRHcD)~SqU=}=w?w(Xd9O{x~+Up8@bmnhgKutBQq~Iz<)#1Y8+&Jjz2J2 z4k5a_2y0tUF2EheS_hj6n6f`1bDg4g9okoH?Y6h-X)m1myXt>ed`N2VarY8wu8+MO zLxR2-`4{;w30|5$b^82ibWWl^*T`tD(IJ9A2ETL;UhgH+k#m2|g=`oiski^G{$<@U z7^8ELdat}bf@Y>;NS_+T+CKR1r+Kj2PB&V8=+`*-bEQ9;^X@b8gyMSJ=lb{GD}3J( z0*&>Fhblt{j60qO1W=nn4jgqzT+UApMkW0gs2bz|>UXd+a9rSZOuj!I)=}aql zYxLS5ZCh)p+B@5_o8NO+FFG4KZ#pMBg0+UVRCQ(@=p9iWEoUoKYs~87S9W?qPR4(n z+KegbKXGNhdr--aRCYj)6(?aC z?Rv%06EwvQBX36*ZdknBJW!j9J#9KST021LijueB_S`qg4xjo95ZfYKA1z~#l-~zr z$L_v@KP)86w}PH(c`Xn1sA0A3<9bIBc^mbgxiZEI`tVrr)*$Nsg~D%b^^P6ea$H6H z>DP6Q(+#J>3};n?7`pbxjV^P9)NB0XTApLwqY&&BZ#+gbgs&d!QwLL7gl(0NZgm8} z4esQ?72lV@jVYQ3lpVljM>ILmYZbEA_ODn3T{-Y>9zrw=du@kjEkN(gqx8&U1TkU` zF(D-}V#OUY@x)%ZL(Cm=P7mUChpRULqUtfH>QSc}KQk!IajA=n`o}3 zx+ZH|t=q@!>v3v|cC6Yq@LbED+I%Su#`?OBn;xoC#PO;dfj4F@f6pM2vl6ooH!CXnJAu?ue()V>At? z#{sDAxCD22f z!Trk$-hp@{Hrx~Rjj9I@te`#a4XjL;k3P+Z450KqNsf`%7AI@Q=>;etguS6P@H7KH5jD3`7 zcZMpAF8E|ot_^bNQ&+#L346Y?HB?v6Mk?!P5vAvBOEo<0nu5)N+cpPOATNRU-Tql5 zJe>QdFms6Q9)n9@b_w@70ot@2!7dT&7uC`ua;CcUJbwGT$T~xvLeW&KHE7avhrk0) z@HV-7t}BRx4e*zSd(@yUN}joWKBVHaCdv3)*#r&PRr!(h{2j9fZH=}FR)a6i>p!bE zgAYiz>Iah0ZPM|%+IsP;S6~;KUV>U)h`BWmit*2WApy~+1*p$rT>F$Xjf zmz2Gc_ralc)I3!ORj~55uh@eRIK2Y(i7llXx~p17VNI*(RbyJ>?uSF{$e#n78r85@ z8G}3kzgYjdes&}?u-DSTW`JKUBYQtP3OUqk>L4x1o>V&ZJ~zw*xHpC2qW>K&=8R_) zqfh@H^)%7FZg2$HH`@T^>eh(T4fQn5{Z8-%cyAZuQ2!p04D&s2a0f(h8evVH!XntI z7wlpaHtoLo1OgH{(Q84Vb6yzqdfBH#!=tx2)Z)7s%pxy7nT+Cn5%`5UKjCVqOLTF- zd>oqhESFq**FFInIpgcZAT7jC`@Y~R#qfIFSCWxsjWXE9_Y86=`|CzvnC4kzi)jvp zEALg5(I@R|+VCR2uV(t^{uwMY;U}ozrgUB8&QPa9I^uyoO7TmJL^}3C8npZKyXqh* z^iM9~&d182GqgUb#LJno;bHI|t%TPBv!Lf)UQ~+lmr!)if*)P#^9Q?;WuG_2bPW_< zFf@8W7ULALa~jJ@7&ocxS3wx#1@R-QnO?A7V(GU6<@5lQ8w?7Qki8+B*g1*J1e6=} z!*3yd!#`r@6w~uiUm=#*hW?D|BygzYHo<~})iDlrj4mW_=%@CCZ^`$fv%+;=w3@LDBloy43+Cn4{UIoJgjABDu+ zfrnsc9W&U4-Yn`Y8B`OvWeo$=BG)O@qE{Y`gmor`#Fe{Z{OaFC!k)S`@C%)uVk%B^XW*8&YdnM)5_K<~7X1d=PxqqP^uOb@v z#ey4M_cfGadRbJHWp5!_!!Ew8COp=4{skPU#JT4?^osLHa9oh!(;DE%goT&5;8IKQ z*VX!e@ZpoE`tBYWT`T^D0%h<^G$0spBh#7-f4>AHWJzu(KV={Z& zP>%NE#bFrx#Zvs&Dn7;d-WO7kxjy&CecRRl&Q2~nvh-b93*pWd8|d@cx>`Rk>Q+Qa zj{<3G?t>bLm)fUde-Bz4boN(;a8a^Nzh!?4QG%K zOE%&D-1Hfw`ZQD6k;OR;+R?Af8pNaTakZ$weCAif?x$u~BmWt>eh_;(CiMUfQu?BpKEZZdHXhIQ2))fLXLq$A!k`(G4K@J>S}mc`K6 zk|dVJ3lc?OLgO%mBFI6c{e$Ei2JYnU{p6Ti)`sO~p0Z$(r zJYgv_@3X$DKDW~n?g2eca(Ta2R#sH?U;Xrb^ka%87T?V0As6hW!b-GD)Ftjxi>tc= z4oT%gamq2o3t|>;4U!)l7aZnonI)|P324a9GVrSC@=Kz zZoaHp>1Wlq!qBT5Nrq(Z-q*P7WGB>1*gqe{J$t67{+Gk=-L72cZ z5)(y>C^^$!dzxMb=|r%-hdf~d@i~blCH+kbNxbvtTXG{tKynGm`I#%MFT3L8InSmD zPI;`=d>x~Nr9Bvl)R2bVOc8B~VmgAD)WR68P93q&WXw>r&}7O*b7t#VUG@dH%gpYW z&<%x*QT47Zq*tMqZKv9YKql5-lO_$0-^}a@sky#>25$pZ4n@jSh0VUzIy5ElPa=-H zzq3}kMvkdl3~x&)KP7!1oNYgVJ;E{0*q${zs>heb3=?NRU!QwN?D=jI1uP^rLtZWz z3hY2^oF^|Pg~%X_%^CkhC0~&8_)%yOt}T(GW|HwlP%65TpapXLLi?#Y?+h_Cgt}S? z@{i6UzG9@O+ZI+`^UcXj>F=aaljbQ^+Z!a+J>RlIi%WiFGv08MljRATlb7D9cqXOh zGtkCz!s8UFV9HS<_yg07!XN?vW2lilamLj>(_&>slkHAy$)mq-Fz@u9QiF*kBZ;V_ zH^1&tA725lRiPS_@0$D`b}vO1rguPlZ-ct^?eAH)RV@PRf(I}U$jMr22{5mX;9uNh`|g0EKl%q{);O;&24c+@J$f#6cCdEfK}# z$z37EQAHDo(?BzlXdbbN=P9&N#FAq--!O%EU?k*NByAe|VPPd&1`aw7iiQ)5SH7%_ zg`{8&s|${;U(iEL$(0@r`R~g@r_#1B>ODr#$98*Pxfk6~q|^%dY7K^lKQ?WVR+S%Y zD^NTs@9Tdr9jz2JOEn6<391;^8)0$4@piwRaJ1|UuIq&yTi2ZE5NH+zwa3QawuW5- zedn5-DbmZI8U}5K0_hx@h%vOY+3w#S&hkQFb_p|-(2i?kx`N<2TNNRnm2eucFN4-` zf6b<(dZk#|m#7P(IU5|VYSTAGQiSe!ts?Y1|FdsS+qP)`=`X}U_(gi9PS*5Q0({=y zpC?gI=WY(n6+0tE3V`9<65iPX8^tzp%S#e_1_d<|DjvcFRrEi$cL}4# zdGdcT7{>zthee7pjw$i(=L``f3}m6LA=3PniOtpXg%jf1<^OBoc`KBwER#@$0vKGk zQZB7Zd-ZEbqr~2#rd6xz;|;=60o*(F3hE|B@qDsxk6x$xRBMGr6_PT981*8!9Fti+ zso>Ykop#m7>OU*@y~c;Lf*^Zw^Ahy?amNeA3%tdo#XN~c2NjHD>@yP`VI3uhnpHC) zeh_W28n!e7OE-uX%5Gj~A-3&~01N|Q!J!Z$A06SdjicBysA#}xz*J>8Ge})Bzr`?X zX1Q_vT3+xcay@F=NKd%`?NNv=>I-L*5z#cqhXX$HAw0IyScAnmsMUZ|Vmrdk#&8kV zY})UtyUnd?23mCLHGHB>8LC{p3+JkkLQP8f67?H3KEO4ahrs1D;qM56f@Ez~1$l|4 zOK12IX==r0GsOHlA_a3k(~x;)mt)QXJS)_x0A|>uQ2z^#C+pM%LjL7+IZY#s1D-!M zjFjz!q$f%i$`}>osHB(`jdS-$%hZNs0cEv@)kr}V)QT=@jpg2mm{i5?&nqg9*7(Yp z+okLUsHzGx?1r%5>AJcl;lwsb3Vz3N&>f&-(aV8Gtkuda;Me3B*RiTYgmn0VFas*) z>4B)NkI2gc>GmECwM>v$!P`a1`FPQ@Mkaz@DTGQ1f&2o{;r1i`4Bg<}mNh~G^aD7Q zl1s0Weun_Xb9qH<933qr-4JPo6N(BUd=Sqgj!Vr)&G?C={II%sI}i`JA~Kar%BZAh z1YSn$AIkv+aa{7JG*70qaa`(vX|R7%U{tMtq^7A@QQRYiOS3<5!P3|T!hi_X@^=wK zH7;o`>MA*vomlFz?3FRXo<`?F)mma*8ZlY?v!8#APalQaRR2J$CM#O6y{D`xEH29I zY7(YcTmmAJrB%=WQvb5@S`?~AlO7%Zz2q|WZaEeuyXJx(Rc)s&M)iI;DVzT&VL*P$WR^-tgt?FVCl?QxW!cIKt46AoyX_-|Q9i;CKPub_xo zMr}sOxPp~m7t)B(M8cLTskL~j1ch)8Bmnw= zD=-a45LCpFM@#(cuRH?VO*MR`QuJeaT0aLjW3A<{NzWo1a|$FQ%2PMEPKuqtJBr-f zEW?s*I(4BXzuOK!TXo>Hf`%4VX!t??<~zpk> zK(3Rr;unC_kr*gIj))J0T?BCXut(bH0U3U9%mojHE5;3j*9_oI1{6;vSfxE78}i*J z`q+IX~DDint3&3q4D-*)um zMkZX%S^o}aTx!E&;ZS5u`b!D`nSxucjl|>9PbV{DzUkr{Ljpj-3Hk?~Vwg*U(aMacCS8HYY(1q~NVsj*z~ zkWms+G49eWt4kE^9)TD36xkD+v8pmO-d0{D7H&Z%hO}hkFHlp#tRWUH3^Kv-bC-{z z9~Uc;iwg3BmnJ909<=g;e*w(L;fF3d+mH4`^j@T$z+6WH0}~$YaD;pjbo)cs7V&RT zK@8Q|gfhL+W7r1QX$CAX5(6?kx5NfSN?7o(p|GN&9z2iOa`Gsx;isaEgn*)YYd}F_ zdK}HxaCFvhw$ROc&5oF@d)o=^Q=uY-Hf#j->d9v}&=O*6mpZWbA%se%=wFFTzY^T0 zP~1V?_VrU)nl*Zb=+CPri{JnLjt{^yDzi&ji@z9WTQHg|e5sn1A37P8DyU8CYOXx* z)W2?5(3~KIr>U5Wr*?F#T0W2;&OAjgwJBLI*#lEnc)3-kGiyrij=0R9FGrf1LtW;t z9PiZ`A)=>x;SVPm9IN%k^Tgz3S{P8J5Ghxr2Sb8*GCAZ*l_o0*^wCKb=Je$JZa`@l zqJ9+{8MuX56%-8}0eqChl4^n6clJ)LP2V0H%0K_Dy3b)4%<{TN{pW%(0lysIV0oC~ z;q8n*HzTu7bz9s{v^6dC?~xRhH!@v%0o?#ZH4Qd0LU4zq@3P=F_Uj)l7vw7vFwj|` z@@a_(Hjy@d%QCAaC{BOl%kyZ00!KVm>LnF};A>gdp1=9a&3rcB;Un+)S`hCd(C!#> zIRQpVe)H$66{c~aJ3kE0J!fb(`ig_F#YR}8N{68t#ecK|Ej_>yISjSO=R-%MBKRDA z-R_4V(i&xiiUZ*XA}r!-r=W1Xw$L*2igGdneypPbn;J|G?>Fj(295xgb1kx7wed%G zWjQ@frJ#l9DA4w_62=L4RKB;$hE>(~^PTW{g&Te@8LE3teZk3K3k}5dmmmy&2z%GM z(Q~((WOh#4w8)Y9JlS1Rs|{+P$dMjee^}ajn8YIL9Qkplti^a4>(VlWmynQ+JSQUJ zw~^ezlCZBA!vAoE(`Wvi|5vqy*?U_^Sr5u(~6tAKvf2UTsi$Z$DU<`lPDYT zOzUvj*znq#pw}XruZ^qL;E7EVC3H&DLQOa`kxg(ZCshyb`AoYw4q)3)N$1FbWU5nV zD?kConB8Ja`cAy@m&3$o^(;*=G7Q%%$X`ElGyh&d(qZ7&TAH3i4_&R3DzOTQ1fpGL z^Tv{5=`-Z z4lIN6VuHf4Lm(vJ1^m`Sv?5ZV9%Wcf`B+$DHd|}c`!_aw)sI~lUWQ+9f)aF+)dI}y z6K|98AxKAcL2%j$9-iCU%SAih23gshTLcV?Y$CK@cB=Pg3cu^;!kT7W$1@Ocve9-J zI`Ky##lXdIWW*Uw1w4c^WWkI`Y$?3E7t3G%Tv{5Wyc$em;cK9_T9Hi`4lk6KF3rPd z)G7hAv6&SEtA(E`tjr6!c3_S;Y<$M)6;vu-u*;)$hg>^Lq&lp)$`>PRrC~Pfcg0Yi zdTFyd$%|4eiC5ZK`XbT`6-=@mo3OQ2Limk3S_iB1q2}+Ty~x$br3@*$H`o%ji;S4& z;g-PG30#tf=lg&Cru|V+@LUT*=v8HPRzajCa=4)xd)2>mX0`*_v?!w}V!WGz>qG*` z<-L$WvR+W?PI_?(TbJu=I)WBii^;ZeIrD0}1m%}Zm|exTb0&PcH)&<}J^Y&#kD7@%%@LpCZ)jcY+HOuN z<~Qe-Vf~eR(KV}Y=eMP)Q^OjSa7(*dS|-Kp+82^MtFVHwdsQb3PsR0O6=2-H{l%Vt zz&@BulL8VjJGdoM%uJd^Xc+L`&K?PEOnfwUf!TJCA67*YIA_P-^To31X;R>Mw8O5p zvXQp?l<}vB<7~F8XJr>fdn{JR)dHGM_Gb5`$v!=DzAYEW=c%fwF1JSZ#dE3oNbU|g zQj(P_MQ?Gf#nXwP(pJuyelPk+XUzw1^O=;;M7NQQfF*Dm&-)9N4J`U67UnbPQj+ylZO8P8Wr*@Gi#>9p&IEYxapesbW4$ zlkswr790h4Ulron1jZj&U5@R#kMZ^VtX?H;64G30!MWE_``2J0>Z>B4%PN!|Y*V*b z)Ej51^$&JVR;AsKo{LpwB*aR^4Z_w-=V)q6@A+!Y`2ux^z9r(}d+~5P;)F~8)dFdE z5yTCQ0i5R|-v#VqnjoZuN<10W6@?{#fE&a{w&;x^j;~;YA>xAZ8R37=Wh+d4aRx{A zp*}ZlM@2%Io${0bu$Z1p1!Cc`g?P?a+_3 z+sUFGKHwjki*g&%fr9(CHa1`v74Y_Uv#{BF|H|zAif%Ee!S&ZzjV8=Sl4av%Vyz$( z?5iqo!~2m{PeBHLOK-^XxJC&95eA=-5zdz4C&6*g7j z3;X#;CDIT%6hn+4iYA%#vKQ(?{`AtxeFACZxKtq7ck9cXf=iaB-D<7Z}uR&n^=o68%ED;z8KuoUhT_2kz; z>4Q%O5F<=;Z|W6NjeAmikLmUUCLEScZ4r4ayU5@??5a5>DAQdSF%G0a1H==E5Akcz=h++mzcFR0*( z{_%6umuL)?n{W#dl;WvsrFR-iiiJi4r~@&flQ!`}tt?tWAB)~n2}q8HB15Cwy20_y zyKijkSNQCRP5AzTrGuA(nwl~qqz6b;|M5&=H7_WkoEJ4nF<>M@z09m6o{}Nz1m4K2 zfcLcHgjhJiOUcgUi)NgwqOkNDA^Qs}D=s9Mg71%Og!!U<0rxFYjyq9xA|p;*SN(2@ zE8%^=Huc5jb%V>d@;nF(vS3{yfD=k%YFJKcGNnX-FwcFWSLmXLSPaCOgE^y@C^@#iJVc3^}IF~rx`uLb0p^!rc^?){P6 zQoa?C{5EUQ#PWVj3!7$>v4Vc z3+7#2a0n~^YRF$Emwksl&}~kMyq7j&i|`dWwnB)*NOH7q@B~%?b{fBSoztq=#vFs! zE#Yzx2Hk#y5{Jo~xt^lGzu9CXtz{k?%al3Lo}C_h*2E=5C5PHYV}+iw*Z?hDHd5^M zQ8d(wG`D1K0qghFX*G4;)h&rL*7+~3wzGBGj3Os$PJ0Mh9UMRi5uJqjUNC1uH-ts15Gzr-j_tk zMZ6bRm>}i|r!Pbe2*w|K2L=>A1y7T|tXEmE(e0PZ(svm~_#N6!sJz@dEe$6Vau1>Q z*PZABA?8zNPxAt4vWy9=Gb#+ijf)*@kKxfeZQA_Gcb)W}H#R#i80pe06H*;h;cY%$ za4qiYJ4u$Mh4#Jg$r!t@kuLQ`j|Wk)o{jeSebIrIWNhO?lk;^cv`vQ$8J#c|E)9ra zAtOQcc}r^aNhbY4N=U4{83?|41!V->E=#Mc%Gv_Q+UFNHbGr^h$`o=?ICL1H=Ys7d zfxFoWVg{B$xUgVBCOTcF+t-Jm2=6zCc0Y%=u&_E>$QJh`a`U{HH&vUXBp;tZygjDt zz6}gK37@s*y(R{Z@i`8H?T%(pZb-O~xo2=lr8%+Em|7^h7lh>o(_(@^C% zk3>$E=XwMRZ#Rw%06w?_A2cUTs7lYH8tKPk#V`evR(@&Y7yBB^9XU-6Ygl9HH)Cvy zG7hxy%XdeV%GyY~VmmFXw3Ouxt)*j=S7PxXpNk~*nWFG9RHv)iSDG1+GQ%zlo3Euf z$(7A9`kyL|ZFjj~g(y{5{=+JYd{*USHc3YZrj(+M`7(Uh)~1Jag4n_4lPj5^v05hofmT+!Qzo&;M*XBjOgI zGN2|-DWDjtH3iFlcR4#c0U6u- ztnjv6@sH?}3w0)Y{d+AV<84blR1%YXXk}}+mnj-{W7Br6?*b()Er0ohfS=npt?8cr zVG(8?RAbNRGxR2WAgy&tLPk>rHw!e2o<4>y^>4A$<`Fq8A40`!C?Mqsx z^mBcw8msmw7tQ&5jf0tdlXS}b$8R%cN3IN+DzQF}K7~uantCp1(ED>k=VMACAY%A! zUgmGHs*mT}owDGN0~;m}EX?1d_>73VUhL~2X&EZRjqYjVzafkVTTDS)^>wYJsU#}E zD-gKs;Z4xG^B`@_^ADRaJ`;Zk&gLp#cGx`(n|wA9IK<9obA4Xgul{hV?725-U5CnX5v3Uqj-Mkzcb6f?%d+VWTr-gF>u*G})cMQa+#IBOj z1MZ<7Ak#HJ9E3zOM_8+hd<{I)M_BYC-0`>TJjf}|n#o=@m&SSXix8J)7=vg+__h5^ z@Z0#e!!+IKZ_3e>RwIrJUKN*IP@-l~=$FLKhQg1lO@=233JAukAl!-62EL;Z32VXk z{W!N*oW(@`oFRp949u)tdk zA5ng9_-MkJ=+oCcN{Oh6ePG+xFCG>v>Zj*}&5>xoY$KB9;l4qD;L%_Cn;{PU8u=;g zgvHGGW5M!>%*L1;XbUnG{(g%?kM&Ozt1l8!|LBiAxL_z~N{_Z;a@U<&GPe)B4OcPM zWK6JUWuONSn8xh3epo`mXd{#jW9^%&rXri7faE|73}0H31_gD>&#!~VQM5>*n?kyv zoDK~}DvWFcAx_bdazeQS05&}h59I_?4%oF=d{d3K)-AnB&_5IfrhrNRea0j)62LovAn*qshIdAxGkpC^Tk_B#sh zWde_p71ijda_{|Iiu^kn%>HBdW~3f0rn|`WO>aT3X#v&Pd%0_nJ-|;9FomFpPqKX- z`A5PRA=7;Ie^&RYLMUOQOe^P#l~pH!x7A#?D`UEDR7^_6wsvHwZwXcn*-n!z2Es~Y z{Iz#XpuUXtW#lnfH4#$*oRThT-qX!zEfb{X4RfI0hQDE{1nF0Jj!R9gunjFfArPXM zBEa2y7aTn9!^Y&yEI4mm>#SI$utR9HdMq{S$Cj_^jewkiT2v}hs&xwX3vBS2bZc_a z);tWR{mq?srQ~t!`C_P8U5#*+nKT^Wddqca)F&LYeXA@A7F9&np$oY^hAh?Fck;3_ zGPhLd7*CXoc?13U5(NN){^I*D<=(t{tqL%Q;5`0`jN2F7G5 zB+UYTNc-xmja=TSs1Hcs*ap8Q(+j%^8ibH~)Q72&g05=@P~E27VED(tZ!R|^T395KXU@4IbG|stHsq2v!2Ux=`Hc| z@$;~Atzc(v+s?~6CF-5O%z3^VEX)PBX@R{i!H`6dKnP&*!+H5{Q#&NK51H=n^Z&De zf4GB_V8eV!KDo6cggFnhk?^2+Oe7LOSd|idg$Yx_cL93hLzRXK0^Hm_4ev3D??J5p z2+59}l2NoCTgCj{uqZ8vLp-F_mlC+k2KJWE=2%pr_~P#AT_*20F_dp;U2{d8ssyD< zy42uauxad7R-*CH6rB?RAGV^LDAcOt#GpHvMq-cW46X8 z?pt*7DqOW<{41#;b^Gp3oUtC0W5a;$EYL;X(W6hUAw4h2Y2~&}Nt!!qzP@`OnQghz zQfpLm>A`B*CVHSx@=#|%OefGkRCs^WIiicGBMmMcg_n~|d6W_+iX*xZQCYR;!~^bq z9){9|opQ};r@~*`ppR`KmtMtcq{6jn-kQxTq>OmZRru~e{Uc=0ns7!*as6~5Z_}Lq zqH_#~b?GH1G8B%)kz5-4&nM8}&KgZx(lf$H)vlf=ns@2nye7fB|5$;2K^`#URFcVH zhsu)h2H5SD^vEdDnwR3M`QH4vwMZa6C*?=M8%AnUfSier948KZJe-~VlwLLZvRf?l zzV(|2XToRzk2mpYUDrQ@!7>oJAH0S0aCaUpqX}tZ2C>Nm4L0MEE}@ARBREgD{^!f} z4Guahe8~}u1t>u9lw6%DVi7j*cVCvbgzbl8l+CKT3J;@(0}BjqN_H){mm6`xZzZ=2 zy?iZ^zUtMW_1N{8rE(y`f>Rbt14O+z_1cI_bGl9nus~yqXif+9E$A!d44QwqLH`uI zSQDz*A35=H8N1!Ts^D|aDIOG@DF!cZT*|ajM3%UEVY}wpqD9fY?iO|S7e!W18f=sF zW++D#UDX!KA#XI4SC4{q{rW^FHxX^2RaNcDzpn5Uggoh}w7`5-ZV(W$245nBX?iY? zG)`|VY&Fr<$yO62NdILaW4Ad4+PK(Vfk{sG3gLQVyCXC{vtk6(|TfZrEG84D8+Z)Q2c;V~jFRtRn`Kfey-lo=~O zM2?A_o6;X&hSv;pn%R_rNhPep0L`JVY%xM5TGStMi53w#Ild7T5t8~6fEaKkGb$OM z=YfaGcFr1(07?+n1OvbnC8Fre+9~$jiLhGSNEFbz9*3{}uwLX@A7c-=^-Fqm>L==( zC3{OJ0Fa7DBY3rC+?~{RV<_=qj2nDAqE02eQXXLAmYY!_#2ttyYkT0rG$+|4$XnLjd@zgAb-!`wD>wdkS5?TL5wl+q&3 zDA}{2e?uawyr0d-fo30!7K(oJqV`N6EFz~AdF%pJAhzVjuR%e^vYXNpNv#@ z3~fcFmA{+3!z=rFpP=KpOpF!P}a6mu{39WPD-?jvIW4&ybb!Jp}#C4tI^QC z&l7upoDev4M;ixO_(nkAQwWe|Y$_IZT%JHElq&rfYJB0{_1X2j=w9I2^gpJmCu3K% zLZ6Xbl$?4zT?&;e*jp;G=^U;1m3pQHC>-^d1uv-2UpOqyqq1JXdt!elTr8M5=FotV zKLQ9%_y)3RknQwAg#+=%P>@gzq{P$P&gH`wog300y4JneZDxymuk8v*)7=X>G(S~f zY4L^}Y(qQ+Yof^Eb|Q4*N%Tr`drK7ECTcBR1io1!%)`G=rST;8eC~G2WDrwEvvxmr z^(KOTsUr!?s_EWGh^14bbkr1DUG%JKCz)Iiz5jk^f8@;Xf+5tY7y`n1ycSFgZjWTw z1zz-s01= zO0?8-{@6>dcuW9lyCu^^HhRV1^xF8?&e_L?F6~G$K3#-Ovq~z>=7l|fGQYD(bR*99 zv&2Cl5xF}ix>_~{@p4B)N{ntmkn>z1YNapS9))eWnR%(VW$I_~9y8!+1R`jCM8ME* zyIEMbo7(jqolab*w#-}%`F;J{7%?-C3pk5w^{6O8vesLBLn~44`zkn+x5d@+`wMc@ za=H9)C?~xb+)Qfg(0Au<#BvcC+E9yVX32JVnjAksTMZ`vN^xl@r+Gac4*^R zsMF}p@b_;@q-&5-Wn~4D&sVK(*R3boUiBPqW(KEopuK{+t!#B0e9dod>dunipQWYW9k#{g zcEG^ncgaXlltpc#+Z@4QX`7!_yPvP`PxgMw-GSG<@gk_f+DCEI;#P?hqnrW!y-3O~ z2Zs7M8OY;S@{>D+1|QSb?AcjAj09!g_|d32wGe%dN9;=#mKmCF=%YaF}bcfBS30K=rM4a+t?o#Z^(Lhir zK*(yZT~lhM+B6hV!)=n-1|Irks~(k$bjam^sb&QRExt-cMv(_(I zYVQY1MWc}L86O#{zdXY0-8pBcoO%sf85Q<)Sjr*sl$omZGgfkl6``a1Z%O?nG^|Mr zb_}gJBO0#L7A^Kw>-C9h=TxFY%jj1(p^DLi^(!@U8L1EG?%fu^6^b!mM>>;>$wmJC2A!TtM*wn5-4-<{yVH=3JvoHpnNc~5K zJ*Jtv^UihOvowUfTwb5`xkiS5J@4c31XIUg>^tR^7sUr3@|}&2tAX!RT{qk3GOnDL z0XsKFOr9hHy>XYXy#?h!Jr7h926Vgn0;tvrEJ+EV#q4bMD~Ckg%-H}yFF$TG^#Z%( z3Y(^@7IA6G3!yf4Gw*HV$>Hj}cVfav8O8dq)|X1_)iZ1J)pOYFCv$Xv4ZoAYA1N6V zH*(j$$6e1V?v9^IpQITrYsY%mkD<1@8W`;p1P1~ip-l!|2<&&R3)J}^JOlYXk{yN~ zB~Q9_8hHu(lwG2)=ttj+p~bNh{RBQDUhup4$mCR(IbZuT{n~QDICA37mf4%*zpZIc z4-AlY9=TEV;F2)){4=49_>7GGW)qAj+`_2|!6jHg)e&(>z8kkepXoAsUzf2xYp^*KN1d(YH1X^x!J z@tOOgA@B$>qE_#2vM1gqxY=}ZwlXq$Z+}6CDF122nHy};w!hp3Gq^bp8jchm*~+0( z^uqrdaEX*@(Key&4oxn@+^sx+B?pTRmYYhqIEMhI2SuTAK*|%r9{6WjjCDz%S1}oN z3bhAn@I{J$4jUP$v(j^F4!d$w&Xy0bEPz&v3f~X3|nBT@}o-E+x`*4_0II_uiHMqxo1z;hjQJz)xb@o z4iQwgy75TE)HKDO_ScboGfRIA^cjxj=!lkK%p9#+REFLU<@;OZ#q8!Y$lk7SZgjrf zU|1-|T{fifW47=w*TlYOzt7CgE9xp|Yipku)$yv@_NsrLZccMDzdOqQbg%1bg{>(v z_~iH?9M>(C)0UOy(KE=)T0oZ7LuO_V>X`~e)#}uAmRTHQ zP%qV_a;q9kod0!wnM^pTnQ7^{i1Grh`1jZ5WX6i)AoH@G3;0NHJCO<~i}( zrc5XAR)xz(7=PGKquG18NYMTwtb2Q`F;E>!>qM(+^L{9wCH>_nLok1ip039~i~vmf zQT)*GcH-DcIhuhGe9NQvb##Q;Xzw5i!oN{45Cjui)Eh3%Y-7Zy0o;Pw6q!qjG8@G-|Gpi!@b^E{ zz8|oCAo4`;c*F1AH=>?**3!Jf;QDXh+(HgF<~_ZhF#EU~2OgirWyUJf$3LZrY)--Y z{{uHb$iFynIp1D&8Q-pMi5p@~R%a7HJVa4ql(#|QU`0VMptr|=G}ch^j=&9N+nYqcPwf0AWuM zm6=3VSNnnNB1MHmL<#0e7TnaxcX_6c0){zX^kXn*%MO-BnhbOd!4$@T{*W;k5_-=r zZml2Rk{MBMwOBl>Vy$r#p8_~?nWm8IPlG{4ue(+!%1tW@(XK>_990-r!!rtBq-_69 z48tEgc19oP67Tf)E|6E3|7hHB(P_fHGs0t%<(Zd!_KCwS4orSv$IVeyrEenYh^mY{ zLDV-*frWU_llR>7LwewGmHr05b)=Htqzu8%gLi-}Gr9MDJGki|L~iszIw01=5E=Zf z+%28tftTa3%jaELy7W>iUO3r7TTo6o|S2w$ZI&ac>k$UwQ}>{dO$O?K{0Y{-Lb;i$2Zk1h0ms#-nNwVaLl-U7&e zB;U-O`*w;wxpdTMs|*5kwD z;{LCqCt)lq!bd#zXvTo)gyUt0pt>o#-WsheRw|1tBP-tBK0VAmFvHXB-SOKB^~&P% zVx^uOZ+B;eTAt~)kB{~3XYn-pk~A;fCA~-bEA%4tQlQ>$#vehGorNPr?p2y+yyqDK zNf^;2>ZUa5rbKug`66RHML1uU1*7{xRN0o1+lN%>82v=om+uUW)TbVr%6?>7+z zMVj#?4LjX*lytLkm}HuV=Kxe5W%(I#yQr}%RyK_J@_P*6Q#8t;4S4{j2=Rr6_qg4> z$wS}!nT-HY3FAm;@{~_=^9}&c$zA!ZoyU6f7Im-2Hj=fLg0MzSCyJJB=4fW*Vg+Lp zXuh1}~tpIE=W~n?>yr=V-Uf)#=tRc2oD|xhBz|DfAF=P8AbrVk~%vJ4x z>X^BpsgTU)hJ7v2T*@EnSK;j`MzR5YZ%ljcm_>?QNuKq z05OF+bwf)EL0L8(%hQuajk^Fm&5`xkp#(jGElowIYQCjT6%5Abk7b2eYqd_`Mh+&> zyNMek!!OAw28}aODTVD*mWy%6e;rbj6sWTbu-ez2u>`QStsO0jCuA=S>^c&1Y1q8 zmyi`Ab&1EKs=5iMebuD~)pW%+rZkKBnqOwfYBJWS5#liB;n3`OmEQ!2Lj1@zh-yH2 zN5`@k64=VP7-+ucsLIWT`O=;KvV_$@ba3^ z7ZpK7brVculK~|H&M*|M>;Qj5^E6W>GK) zHJ&Yw=H&&s+s@;@#wsPc%U=s^>4Qa@F9ZAZt@Qun^66ie-1z4#H9xzUx0e{rSK;FNsQE+vt|g zOQI&&3O~~M?ekwm-$K77BJTI|jHa<};9iD)n1`N=IjAI9CoF>sS3N4>efR1zyy3;74ZO=p|J@282hi zwyc7#yVqRSNZzo;3KLshM9q?8$hgrj#9>0v$28{DpZ&$G;msR%pf@yMOr%O>(9Siall zPfNvq)INUv4gGo@P36CT2S5Dx)dToL;je!0k4{bfYGvx5-gxSbu$?;fNB!cj=C&B7 z=yxvUb4X;!F;^6>hnl9{)?pEF~<#zx!RyNzw4G$hmIUyzS=LA zi?2U+`t<2ThYoFQEZ?$gVQEmCGXmE+);sokxaeQKeEi6vQ(ruN=uPWmALG-&pU;R` zvbOZ%OXoXxB2GGdDf)SlgES9$Ahd_&iO%j7gTSzL>)R zL2OB$T!yBc*n!V048C=cT&&Lq_V%Ag^?HP^kLs8EKvHE(lgp7#X78MHm~Q$ZHY_V} zb%W{(=ts*7Jlg~l!e~v+O**#1RMUZTmZ8$GnVwg0;jh4dKeRoJE0g|WJw_+vdVTx3 z{;2GEOjb0Dk|GXNXqg74Atua>ij{PNA1f?URBqaV#`K6z8Bs~dcml=69K#PvCYPJs zV^b9?hYIIp%Che8!VLDe*YDc+_O3g3?YeWLTD&TDT5AW^TCFv7Ztad;|9$t@a`_!1e=6c~d6%I4(Uz{rYbw~U6e-efA z&mXV7WBr=7$9C=7HK{7{L|M1vU9pkQ&NuhG_%`5kud~Mg9^17OQ}8VMMd*t}YDib` z_|K#xq*yn-fEI;cdxw6Ls684-U+k>&*%P)556}<{#p%>R%_u_;ENp+`)=`nsz^NsU z1Lh?t6{~x4(+Ysvtp9xD;dX)1f>+IUU)HqMR=LnDM<`%Hry!HaY-*QZE2Cp?Pk^Le zw5MJ#FPhj=9gUM`ob0>pn>w$>`i0%sZ_Lc6Mc*vi&LHVcw+dlXrmn1#*eM&?MA`;YT&8ih%&wKl}kE6_b75hK8R z=lg<{fmkoN8c(vxYNQZ?$I(1s{rC)|oK^{dW`1UdrrZa*bw#p@)>gWUW}H zgL!wcqF`m#v^knt>}W=0UAofPmoG+kh&2bkivAVsc2leZHY2S{d!;LZOP;r)7mTu4 ziGss<@%peAGtqnP4a5dRE{Mb-n-?pn^8>zy5brP>A?czQ_12_-;>vJN)0VoSr3LN9 ziJAWGU!0!U*xxDZ8;9%DNA~J0>o1f`)#Lv3!g|9RJoul@>hyfcXN#A5RUfGA?I<## zaTqqd)OM@h-W9WmS9W_;UOMt|S(aJo`_6QCp?dl2I_=5u>cg>BIe3gQna&;>=g?tS z#9bLn&r(a2jAHXl~JT{EC-UN;lkjU9lXyWdH#4NzsxCA*yaUfG|K{tk9yaG9Ile zlK_AMAa|@7>g^z+b&Khs6}(Q=Dh9|8>tSd{7KL-H&Uo~xnxMlhWI7*8W?Pi`rN&He zI6K{2n3^5+<{D*p`^&n4WdO~5EqSmKWOYeq9#}Lo;fY^_TObr}220MODgs+0p}J@F zgIK4IrhowwDYP+LANvt_|5o$-%zS;dd`*Ttz<(V7-`;vjHa$5TM(NDzFa6Tt)nT>L zsI^WlqjRsw3i0JvwYza~t63lPS7wjZ+HDb+^1buFgZ_u$g90FyY3bLc-FB))t(h}Z6r@eN-* zH{M2@5i3Qe~V#cOIf7dEn3d2R4s^%Y4UAHvtBTVD* z#b}vEcA{?$3USG8AeGMzy9xz^N@if_BBr@Q<;cE?SF6>f^ zc5K;t3#>6F^AKy(;MSj_RJ`elIj{r?oRMXlhgy!NTW$f2ekfp=V3I4ysjBw&|AkB~ zG|G``>cr7V*9%Rpk1(_Z0ItH9e9<+Y8TEF>QX^C{1I;d7b;j*TRI%0t`?#1FRt$b33 zXF&?Hc4v7+0P>@8)*)Z|FogSu9oEkHidyJhNx}Du<-#%$rdf@ujmdO+$_Y>lCw`^j zN83M-$`chCMZqj>Dutjt9fi|V6Vq46mC9VXyw(W2wWv7L^y@lmVDx|9Hc>g$$+D-A zVHr*-ktbb4Gi(9BONIm4YY5N_GV_&V(q4xg-RWv)o;27!FI1# z2aCG~4ZgOcYJ|m!Qs}wmxuw0MGofSX&WrivPN6&})|0!iCdI{!_U~VzlxK48q*K8c zeSG^K&9XG~PS|dLH%-qyEdJ0rOS^bw`}1GEOO8fnkQrQsiCE|cyDgC|l z9HOWoa&NjRUqVZ)Ti+ECgJ4C9^;mW^Wt#0Q49G7=9IK7tD?gKseU)Q%%x@9WmCyg= zFg6wO=iI*o7+BQQ242tW9_}onKc)eoZpxNK22{d*t^Ls^h7Q;eKGr_tt2`(Dog*>l zyopB_J-JKC&QktMQ4Nby;|MG$)){PwC01Ey?0<&mEr})8Tj_ATnlYF9aeus?c%Lf) zv6==jIpM*%BHfxVRnNq__n8031GZa&Biq$&Y-qNwpei$M?&JgUXRCa@Y|91l#bS>U z_$L#_7|$ z7?$p0zS^S>Rq_8?2CIaE+*L%TjlvB_RfBQS40EDr@pa`4I}UitxdCE4;c2gwM_8${ z{O_MPY=r_`K_-?tW|1SqKyIQ28eiF-P@7R`=TUBjGA<~Q#t3MRs-ihmD{Qq+HCh(GEWu0iAI1%T>zAw3Nk;~n0=FRQix=Y6n#3Qj6TsBZoTh2 zk$LM@1HbwCs%}PRMn;^7IC0`T|8M($VPqnUh(0!;r_j8{xNbPEqpF@2Fzf(TQiyMI z0=lyb-4Nwng%(OG&I-Ej1a7g6Y{?+M6|A~JiK;7zXw z+^x9>b3Y2Qq?3+dAOq;fze#6^*8DCE`bj6r*1@l%W|ty~<9IMa1T;n*14?hSgQa;U z7jZ}(RF%4bV0av&TOb(^L8yv0hTVy1cme8~EC;EbnUmz{^`!#kBJ75LQtNtAGqxGs%u+XZ$kz=M-EM{vEOC zc7FVpE7B4?FZAl-$*3M-sCqs0EY0zc#Z=cSi51JW^88Yh*x%noF?afM%47wemu7_X?uRDi7KP&#MKXrnClA6 zTpi3Oi<8tF*rc7tJd7GBIECOFq%a55KF6f+6%x;N?!B?rlpeZnjqd$$y>-crNA4=t zufCf8Wjdh0M3#Sh_u+Z+lie5n;ITVZ_vW>ALLTg`Hpx$DtF89RzFlaYJSXfqxi;?x zUKaq$`rF07Pu_kzQTCp??JHl|_hFucIrb!MDKua{${0vyWl=_hcmmT$+U?9Luf&Ii zriZdWNvD(~smMwbYoR&L$gljSQ&x2pP^{`G-+mC}a6)y}jDLvJRyDQ_P;up=EEOqJ zcmQZ<`Q~yJ(5HT{Hkvq$6#@7$@7QgRjC=r#w4j>#anI^Fd6~TzBq7&%;$L-@Q{pI$ zez@y+W;4!B_5SR6U(9U+7Q8k0K<P-BOicOKp}P+qy8Cfl{Pf0E8w&M7jQMMRpvXRDe`oM-VX`AEzJ(e4n(}5% zgup|s^4QV2#jO{&Hy(NQ#>?Pg>%4mF$nup7K^zaq$Jg&%-}~#Wou{_Y6g?fQCh|_;&df#RQ8XQW==h?mYFl)5 zVeR;brgo$Y$NKEQ?pU^Q_K+L^^T@CmZ|(2@o8{-CfhpQn8zY(9e)&nODNI+*Tz#@ z3evGQ>4Skmo_3W95}OET_`yTftPMHL*t+enbTbrDqdn*GUI2k~W}@sarJ zci?YTO2f3@8TCONjD{NsDtrCWurIXiex^IH2tx}pr~B0KGga^re~yOakBNdHjsY5o z6cfOSYI6(Zg{E_zQq8Iwk?yEo9Y9!hP_<0k3T%n<3OwkD+u$#6DVhaCT!xl-Mpgte zL_&BYsuIyG>6gg5X(^yqI8A3=9k^u4ymCAV=5DnV0 zn1n6KI?@s=#Dcy6?H;S35t8H;nd`OGHs_a3d(=DH@ia&1u}gjmK$R%+6rHF3+dLoO~%D(Cc!y05B|rDqN_ z6^4mygq9pfVRbn$XU95mgc;kofoMuAYH%$7z{%9k=gyrYxpU7x@x=f0idT@UUizg+ z9(jIq`Sfjg09Z`@kmm&FU<5cYMSqt_#=xll0guv*OMH~Q5l^fhk#oD}o_pW9TZ-r2 z_Z%#D_s*RY$2nI#2fx7bozLBZB%iqY0Qa0DY^C36YnW!Dvcc@b#g$I}w$yHq+U+-F zZ!f4}@~60N_IDBgsFCrHa&bLggFJW3&9~f4%#45ZBlvN~m3TkQ%eLShy##ZgcqHsu zC|7q#fL3*({Z9j&lF8a+MpH;HRESL2w6cJ3{J{UuHwlSdKPIG3*$;(_?W@~#A&iMK zZXPD0$mw8ytb^A2^F=?QMB%nydW+Gmc8gvj=~i)}lm{4G4XN!#PEbbK`{H`&xFl|* z!||mn+XN*V=?#ys)(YkGx!%&DZmHZ13-q0xQFpGtw0UK7&euvwvzGZT{$$EkT+3Yr z_uzjMPk}rw*(8YR;3JU^$S`_Mlp`69w~@abZFU2}Q9JICw_t4K-Y?*i+_v`%VYM2P z+hBR6q!k^`Ji~PgscZ%%pTO*+qgk?Ba-+bCtDsYp*Je9|_I?{vTh;JF3qLHIluNQD z`5Gv~f$ix3MK$3d5?vym#w}TXBbBG~{b$Ip!Mz*{Z~A@=`1B$~*z?Gng3Bo6(aa%| z&8NtiMn1)O(J#i1qj`bh2Wv-JSPl)dx!O$RoqjRzBqh^}tjMEGyBVeuL*cT-VIrwW zXWSrk$Sc*vPMXc6;?_wS^lhDkvaYiIn4Ih$d=Iwhv^hIf9D@jjJNqX)K6thWv&mZy z^zu<&kF7BFDjgUVhGSYmIkc$MEIY0dD5_J^7$ZM-uv_=OhLtolPg;gOK;2irq`NkB zuZJZ+U{>Uk0s6t4va$0OkP&ar&F8kz13Uq^D$=4cw**E!Ab5mv8KMPPKdU_h&++W{ zRWcb=2*woBgbO<8iD1x6&fe~vCi3P-DvYYt&SJ$n}&RMu83e?bi_okw+0!@k{wCrtTqm1=Xpk5jlz zHkS1`)|cCQr(++?m8ZF-++mnGgse~yh?g-h0#01ipS$S7#`_nR%zn=l! z>Gzk%jdi;8bR<(2mpk366Ap-~S(HkjzaLi?_*K-6HD0T8EtboU=9XzDoj%uo0#CYt z^$T7`+florn>A)@TygS*ezHKR{4kSv`SnlW|oy zkyikT568m}Ot?|{z4n3kEXj15e*g#mFLEry-&wJ2kd?H5O(n2Qy24e}1BALT$PWsG zMOkIO!&iuGyJq>?Cq^l>4{)aBfzx6FQ%-wLlw@O~CG@95$VK8N4EiwC1Dn?QVOUr@KBCu1Fi1Lm1Kb5e}yBf=L!-;Fk=Kb$% z7HjG2pDh-*?%z^cZ@#-2G~WMcH8}f=U+yf|U$o5&p}q6jYN`1%4;b?I6Cre`wTCZ7Q0f zS(<6^Rw8SP`Y^zPYZ+3-h(7$bv`$`^Yvo>>dq?iQpp8t+TqSY1KRwP0jA9Z{7Ae+C z;w%@kGs;N0(QGvoS#DF_ykX|C!_C83sFrmMD-uQcWsyX{&zc5JRPS<8oi2y+jLX~RiC^9>YTS5-;2 z4Hj9*4sOW0FKFXItHWm)u^9tPI@&0~nqb+nYjCxC8%<=AFf@PXU zU96vp3?0#7vPv##rRjCyU=YsFUzN66*DWkWgF!^fOG}Hd{`{dspZ~)0@+y43WqJ7v z_%-7eo7o`?AQRfT)46MNH-iMd4`k?Lxm@x+)oXM@i$E>34Mz-VLKqjx+gO7l5foDi zdMXB^RMf1%GD{#!2AwwJAbYvky&?8j;LE53Iy#`TgIe}swD>)Vi*%*!FF(4z?6+4e z*W8RZHG0i8RD%zeUAL`^SG?UX^MbnfmZn$l~1%+)|b~W zsMq9ArbmHARNy7AsfwM7(*~WYgGW&1*%6%D?2uI-+k!URKP*lTPjme>zBn?TL^I=D z`EwZ8?-nEMvfPuoH|E|7vg0#wA0w2sfJ#MmT2XQcBT&$WRt4$S6>rThW_DyDMw6_l z!C*XqADf-A5YYI>MXAvMhP|d^4Z-Y>YV%Y{PY9*L@(=CB?RC3(T#%Y@ue^jObx0PKrczRZ>i1^6rxJ zs;i2z2a-%tWWYXg@v2ujr5~rvjJaW2KKEgUj+q?Rv@R%cS}l|r^aD&MKFCQPn~WKn z7cN&R4(@&=_f89kUtRH&v z$yVMteY!X*oVjfJ2{w8XuV2KhKQ8cfZX%kW9+GFQL-^$*_uv1Kk1Q91bLWPq;d9~i z@Z7nexcrgl?|(6@FW~wsKJw!Gi>C*$zOej}1NEE~5!rkKWZMn7$Fa_6h?T>_HLMHs z9hCVj?PR5<`!>OX3K{wLXrF8^qvgRQGnm^4o#BNt+h}%AMN!dlGT0#5j)FmNn+)Dm zE!F5!9Fx-r%`JZ)d%29DlRAhN|TVo6)S*8J2{fs0kb;mbGen=1p4hxVF!e6iN0I6h;psiEqJ-me@WKG z&8fDnWQEqZNgw6{jv8QhfNq+o8->UMFbj3&EKbt#up1=4rm4nqHQ%`@-&t(c{DMyw{ZiY~0fpqrIvEUN&wN{04#Nt%_sO~>{aLuch+G2k@64y3 zeMQMuv0?y-47Oa;4NBKcS6lqtaPa!37lvN5-`9)5+)V(odn!nwg!Ra+4fSvBIIhI; z&BkYK`?H3akI$1oB~QVq8VfJI;8KR`%XEXOsU)jYl?|B;5Ms(CfIN7Bvz+=^X!d~H z5Z+;!S1gJ!Ovc@e)OSsk>iShpPYqQyQeA_s+O^fv&>EF{^{yW-sGwh^{ldcPLZ{Gg zs#I3HyK_yaVn)5ls5;FqA-&eo-qBY7TF=llY(vvu8MtBScDx|)>YJDNjtttbkzq_liO#YUnn+&4c3S-8fl3wXkq%d2-{D zl7;QUi%JSsWK<~AKqtgN97&qS-G4#kgR`6k+TNqNCvvaJJ(GKjV2cG+1G)#}q&f-1 z@`arsEBBVfV@#^=&Y}@uk%dN2!=$F;89rbHlql@6mh4AI?K4Gi1TvWpgK7xFvR$~q zAQBAUmAXtsS;3F*!`PV`p>VzWqC((u$o7dxckj4D)rf(0rfo%*8RrTJGp=%-*+ti* zR?9Ejt^pdgrumj@RgcsF75bPnDccJ7oU-5cH1+b^n~lf+D>~>cxKFG`BvI)?wlH!N z^G@kNCMte}uA~xSL}KLocON}|?b8KGW!o6W$yG;%+XFWjO-42$Eq0VHxejQV#!qe9t-pB%;^RD;)u>!=m@mjwCYJZ4u;$2w)`YkY;JT2o*4v7!?=neR0o_ zUoMFRcz{h-FcC%&W{z;JghEN=QD>pYqj(Z!n&|-)ICUUMW9VrBVA~Jw8s_Nw-iZxa zhv7EdIkRKfppY5NUoRVd#$;-WCXHTiGmE;Gk^~ll|D0 z8=j6-%uaA+ttm;(+LZyOyQsR?klomqZ!5g)ktxj(w%=7WXw{GF3e<^NdpOn$WLh? zsjZ?;0HaWO^6)}C3NAZ}F?z1$Ir(|H5Sxi>t#sRsY8+__R$wUkNx>>aR8BwYScFkk zE?T*C_XvmXBTnkHvDOU}(BiD`M!KRw)#^{Ul85X_B{? zWHU5WNNoLvOAdqRE(DdibirdPt6o%}39Dt?i?#1EJJP;!<~#Y6v3lo$zPq^RDk5rM zWC9Ei_S!UPAnUPj%N~KN1w5tcfodxk=Mu#f1cI$%wz;A za@^_+TiY#?Znuhk|8V`PrET;?Z}%2gnv&)99(qNgYZeRVnyuE(W!o?;4%eGo_rLo7 z?J!!XgyqL>jzhpN#ca%eg4_dRb{VUEP0)lI&uU7Eggs2a8BV5zpYdcg@WNRPUC^Ax zm`vk%MRf6^)TR2UyRhaPqNd!WdFD1rbFbW7Xp}8NmXqRmW4u{3-dfHVU7u3dpGzu@ zeA9-fuu@y5J;%_De!07#6Q!O?^wyi(^~r7$mMGcY`wxfbRxI0c76bA_wo|Du^*f7! zArUWGo?BV3HZRl!`>cp5YN7{(%!&n1eVT*sHs(fY)XY*)k_QWbZ$13dIpSN+LMzH2+LA~UX_?l=i-!yyY##+53A~ z0fuxj`>Wkm+QR-zP{o{#JEYwuC%#PbdmjL;iTvBmBS*GuviCH}Z+-DA z@A-g{-#eK%NUoY5*=_1`d;k2NtxOie;&H&{4H#LuwwOFGP{;Dl!NHB}=*qNEgYd$? zo~~Rs9^O0{+&sK|G_0=FCw2Hsi;-o}my$=;CzJK{FMH19`rh!S2W}d!tySvlN7w6) z8GG(AzApadF7nUM<%ZwGKQGQEE9`*hF+i1mlCd_53Ro9`*7Ldf&CU64x#X_3+5^|5 z8+S;f4^_m!7eLKVZCX;p)5^%>v(vh8 zR?z|L+_TN~Cj9lAjc{jqxn7*7C!dgxez=vUt@I+z|4ogJ;~R~7BUss8spJ=RV|4r> z+$e2L{f3`_XU53o;i*}JvqJ1Ih@iVe4i80wCPVQE#j}r-72yC75C^BRpBdH6z|!nc zCcWDgnQqk{u)V0J%xyO2m9tv6wfQ4NQ*H)~8M0Gep+=5ee|oLIR+_692KjAGKK;nX z;$VT_blWxe-G0xDZn^q|0!ZT0Q*U_o?uTCd$TaTlub|)3tQzmZ@zm|G1MG)cmyvI5 zz4Vfd`sVHv$Lh-q*Az+%Cl{8RCEt?Y{5SHio_u6S^vsbXHO5-4?%Ludi=kVJ;~V1r zJdf-?r7yTk37-j*X_`Y8VSM1O^d5UmM58-F=;b?kFAN;$5$WI!`LlPtgPXSHVy%TT zDap*#UCTD7wPVl!pX6JDuM%TRdZ7Cs&;2SsN#RscMc3w9(w(Lnt#M)dSRqZEE5@?~ zW}8e9r|yvC1=Wi)a&SJL41@x>DlQ`H#VP-HXM!L$D@4`gBbMoc(~OZRrp2K44xfl* zz)^qLjd>{YMFg8TGWJY?%%ln+f>Is+8{$n4B^hZK^7uw%cG6W?&9Phxh@R{74cU-E z0ekvFUmXS2%9RY$3OHsqprgoeC8?5lRqn#fZRwV*da9;z#gt_=VzR85oN113>V>2v zgU(=BafrzjUWl~?jS2zfPIeJ6!+7LosazardEZuz)w#bB=O`QEj6pwz*5FUPDTe8X zDF6Y<sGr3>(wshKC9fs9Tb+>1C_jKn51I=+|RaQxY?Fit*(|Cvcr;!JO4x zKLTTQDR)gSmkei#wKEUcXgG>5PzYv9q8K7kIKh>v;B&(*hZ)#xX4#gL;c7PT{fb1- zH0-e8%r(u3Y6fV^Mya4XFx4?zgZ_I;I);TF>xPNs&$i*&vP0P#k!3wdyl@>kqO0p= zztWhW&o6btdPPwr)A8e|T=D8Px0v@lJv2*J>=(Xlna55_%c>iC#niPE&v(i;bmS#% z9lF(z3+OZQMO@62fL)q!)tk9HaxX#Mn&e5BtU+H~PCi3^mwbWzG5H$#CL&KPf0@nU z@MQD>t-v%evu;3t^hKHyOVO^8<^Bu9k??>rF5W%v!sG(m^_v*>C~k>>t9XY{y%)6mh&(`<&oY=M-QhIrnd4!FtsmVoo$g2! zisSnTImxmcP$*=f({K)U#kH;`(bA_y;?>93`43R;LPo}I1Vbm3=Z-ccNg;qDyR1!AJI2%l}e}^M`N}|>2 zX1U9#6>vO)Xc;6BI#9+FA#HF9LIR0VHuYe}aYtN82Xn#4nKK&gdJ{H*Sz#=QxL{PX zZ8RwmQ*}a2^5L9l7DM(b%Pp1QL)k9C(`o9QULz6EeJn+XXPj5qQNl$6uN63|A%+ z8H*Q4@JvA4bDA9#lexKkF|gG+kb_KJR5i@5l@-7s%=8u{j1&eDEBkxj#Ee=^jXaY% zrmM_xY9i;8>6ImgI82iYLjA89Gbv_Vu#6!=0}QGzpm~nk*_H->%akZgJSG4 z28*B_6KifOI&)NRz|}f=SuzZnc?x@iF%O9~B{}b)6t1d7QIntm0>!U)RGl&Zo}EN7 zgI8e9>41R-XB|@OJ~z~YpXYcsoI}fz1>)6E4aYEb1M7B6nxokaZW`A@RgqLB{!=RJ zAjCCYVV}@VP++-gD6(orT*IPJaDzc`IVJ^hrG}aoD`>U)996Jrl&--&_-7U76Ybfe zUrKezHi@ z6N3VGSV`c{(lQffLzoUst}7B#^|YiWma1DpH0SuHM}tuEU=++%6O)ky)9Z+4n5+n6 zNGT{VY#iHwCMYX1xIi+;7*+C&+Mg!Kfv$R-QcF^p3U|89;OH>OO!!)rVXy@nT!N!9 zJp0Glyyi&$whd38K{PXw!zhbO&HcY1vyI%ZTA_6do^1S=U?{knPWr~tQb{v@?O&+vhJGxIW z{~xLI&@%2RLK>+m$V0gcLs(w)bq}r-u1?XY?Go70`9T$0q8>cF&=pK4{at+QrR{kM zF%@Ql!b>Fk9n|ss@0RbaYzVgS?jYltyjY#vd+hnzRqX|naceHUSbzJ?@qPEd<4n`` z8<$^PXPo93YRMw1@`Y_bw|D(T4PwaS#SKYv9j}UY`5@+z;h)-Y^-AD`d)_5FSjW z%cAy1ZBZ&QgBIekgiS@!q73Y0Xhx))PraB!;h__etI+l~iKlE?`{r_fATqF9C7CgO zKwGmMK8zI2IvbvNHzX_Dzhx6{vf3r z0k;e}Z&zUcM3Tm37|#|5Rij`e!GevM;ELOn$WN(8SnPZpNBhk|Wo>h<^2_Z(8~!?! z{$G^dKr$w>sjm7NDF@@q$vuTn0gNXPhEoFul7~hGP!iD*EEr7zAc?9SEZWZx3)5^1 zfS#GgHmyJ}0$_0geU7~xPCcU|u|ay^_vvjwmq-l*0YAC-W;$OkcNOxu)Gd{|bAHf@ zJXww~DHfCllSJfuY2==Vi=RDG4Itmtb!jXQ=R)xMrE8EiIMT2ofrHe^TOtaF|I$F z`kH#oZy#s05sR47xY#o`GU2 zT;-p*(3n_lzTo?GvwvrLZULT{y_HVr$GR5zuNcp@J9qs?Y2#%tQ&qu7qo^$OG$+zs z$yOAuo3?c!2*CaY80W`gE>xP@Rti1Os!gaU8xa*!Gz9I6pZ3eFV4^PO>7B*PiYoHF$mCLJDO+ycUmeU%F{ za`+f02XXsRZti=CLt&SK16&Tc!mil5Z5T~UuX{*_wv>05oJ*ILqvP%wN#WJ9&Xv%N zt$@V+uI9w$N?OuPD-4Up8u4M@iftOwrH^Whm$-{=vV^W%*YY)ZTJpw2t5PtS)19bP zZNgr57!^ykI>lC*5}Yw(#`JQPE7Dp&t-D$&t(GE3n;!(kx5(|LE}Az?Qt6J5)1{N{ zvR_&T6hV;1S2HE)r$tLFHv1$YYhB%rOL%$~9H>;P*U9;lFJ()YI!kVT2{3^r_M$ZA zTr{kkIdc9V&i@|yP4XO87n#QIW{e{tpDN8Aq1DIOr(%l13AjVv-MC_MvX$3$t`o~^ z?JO3XFAD$|g_Yux!ot*b%+jIxPTnE4Lkraa36kA>Tq#rv3lAPT?WVm#T$ANiwb4{N zt-Ct@V)y2|_j85c4Ol`GUZ2z(fIgKH`rtbsA^mqf@e|~^2X5HgyNH84oN|!!G&x8@ zK0pfcD?YA#(0b9mtVhQq_I~s4X9VQu`ae-BUD2`aowsH41NlqngZ12zDbo>J;n9e< zhMBz+F?XV?aU|YE-BA%v+R19Bp~x6dg8fW3BZ!J?oO?;q%)|V&mM*1R>ETt&DR)bb z6^Dneu1dAVS}n4zZ&&8#Hs371(P%uj$YJJMteBBm zz7b%R8kC(T3_|G!SuSa{D$$AxeYeDzq;#pllsu6*yN;{>@c<$M(-+R6ano*PJV%*-%gjZ&YVI)1Kri4cnBAp`JvM72tKzIdBxcsUc032GI&RGrt6*?v zjl<&8*!s@WZ)7p1oyvDM3#!EI>u-MVHra(E3mx>60PTJQM$s^L2y-JdYaCkhIwIv_ zMo}0~rc9+s*^buK#<-)Pkxv^V;v zqKcQEdS(9AL9=!|PRM17y?2E*OjlDl`=27)*X)pFrIge_Q4Gs9QV)}2(C)~zLRW5D zzcM~~f4#j_Kh9W3r_!0@b<_0n#a8pwJ3B|hq9moAkIs+B^Ph^Vc{}voMzK7LB?XM~ zanLiiu?7W6Glw!49UF z*Ise#>@j7e+qQo2%R}Sa9=W4P^0$Rk)eVEG{QliSyl0O z_;J_~I@KUchV(*Cp43(%%dtusKnlD?h(f}+WkCZVS7{g%%% zpX;AYpWox4A>I8#-;x+>v#Z0Xad;MAcx|&w>kh?b;ZMNp(YC$(jbeK3bGKsTq6tLT-@4P#KkX+ZW<16dJq@n z(UmJjOR)I6P?i8ffRZFaxg_P3DtUkpUV?T~hV52$P%SaS@5XtqL`1)DM<(^GORTqh@oV3(fU|d~XUD#INXh=lmnxX3G9CIb=2ZJbC zc9UPkz&E@6n)U6xX&cDprEh6Q^U&sSbz#&03&Tj5Rtk={@|C=*v1V`i>eMe+9PRxL z$CMMmY?2(em>(^#qt%EaY}?ehsyLRiWCyNlYkmQfwH~_m__Y*tEY0@w>&JIiouNcz zPSE3}C^nVsco*)nCSiJ(qM)VNj2<*?T^BZN)3%k!aQ&#F=uxrt*Kkx#Q8kK5#GqVp z&#)C8IUL>K=RsIA(4^4riMDId?kvp)cz(MVxFrV-ND}wkUSyKjP>S5Fei*ODerUvj z-c9Ox)8bBO_EwcKPMDer%nu|ds1^u^z2 z_l~EXS=j5;PtnO9IhMTO`z(Pz8x8#lpL8ePB#1`esD+0Q=bMrfIFV^fAQnx{LdLO@ z8#=LJ%W~CnbX%eh*H9PM%_7$|OQ#GlZn?d@A#W_V%P|TP-O_YkG8*6z zm15u;VJRucdC#>j*<5V6>h-OjrcFTl5&*h+5nu9Gpcn1tuFpN3`%Lb?=DwEuZ-U2A z1Ccfly3i4FGr5O6M$VFF$p^`=liwv@B;UaJIZU@WOvW?LZTv5o3A3j)%yR8!8gIPM zWhg8~jmemd(Jf|6B7g_=YG?`5DI=H#k@hQMDPkoNLE8Z#(9F!d8O<%og<)qT%y8q( zyD#oKOU4-zisISf_6G^df(!<91^M%!!-ttGO6(uS=*a4HVV0esw{Vcz1yHUqyi$M~ zf-OpT&9Z_sHK{+E^f0pwu_{U z)+8L|RMeT_9o|WV?|w26p8U>)3*Xu-XaJdakpltiHcf6aC!$7^qpwX0BgN2S82pvkN+?W~ zX5KY)la{PdQ|;%eE^9iRoNjV#OCm}oCd38RQ&J6HVu~6ekX22h=?@q%utGS$f6LYF zdC(4=loKv(sgew*tXfu{qpT$oHIqouRN0}XF|w&5d&r=O)dE0d6FpQ`DKAU#*f3SK zC6{v3R2}KzCIm8g1-!oxnE|kWmtxzN5RbbC@y>dMhl%UL-pXcNjH50wNnWz|3%x zkhcoQ2-Ugf0UTo_^4;qbYS>yswREOaZilieC1&_*2G=-FDsd3Fu|y2jfm5hy`kdxi z?S{n_k6EhAWy>@yTXVEfU%al$eZ}RPsz+9xT9#&&usj2YA!HfpODVy49pvDKNrhUv z;c|d|Ml5p)i6kUGPZb!~%+_d;cxa52%9NLj zdAwY+WzA7A@0?4}E?P*4d{QzoniWKy%4M#GW*Eo@&3ECR!dRfTqERJqVQdneIf_zJ zC55_j;#GXjB94qjofK12ObWxHs)_4W9IT!fvWyoKYrcG*e3N`47vxp|m)(}jC0PY9 z@qd7L2;dIQh;R7;fGR>HcxT+TNmbgBvH(jE1^vThBx;gOZC6u4FM<%h=5Yz`LR#KQ zxAIJ_-aXOG_tfq^+nlU}wlGceM`laz`)0#&xB@pGRQb;f(SOELaC5Q%~~Ux+}y zTGlIAoD_qeLk0YB6JIk@H#?^GSNsFVvJ@G%e9o(~guMt=6rEt9{H={yY zeQ4=ky%yO^vCYC_T8N;rK|t;;q?HI{;gTI!4QMqO7v;vC*}luk5WXa^Z^W(8J@Nj+ zT5#`$14gB^kTlk(+r|Uf7LHSl;NUOt)m5>Q>vuB6AY{gQ2o;!tAo@qU)OZ>v)5&_2 zqZuQd#kO3`sr2ugm1VyPGeKl7+yf{@Z@LA`RTW<^n0B)qRrH2p`G(=>70d3vAY}8s z^?Emi`)@cu@_VKkghex8GLrwhy*i*)|&o%oM-?2K-zBS^8yc}(+CylY;(GFMPnPs1!zNuteG zvU1D!ZFjf)npIhxyK3#4YmS%fpaPS!dZL5*U(sCeC9MvTS-C2|MDF$jy|h%V*?wux z2gQUNinX*)(&kXbzd(n$CBmD*O3 zuM;Dja{)(~db^d!ARa&^vEwc6b2zogXR&63f|e9`ss&9b41DxXdcw>WJ0yXvlw(YJ zq^1s3_J zagcP{$)x)s-O=Iic5WE9VZ1Red4SGVOOw@33TjO-$MY43=V4-XHoFE5EngymRkpQ! zghdI6?bU1rX2#W4sk-+yStD8zZofj;RNE^6Pyh{6jch};Xy<{D;zSbwo}}yW3N;yU zruvG?l3~iUu1Y!pC7tMot!lbr@`Bd^KpvkS6zBO=Mcve=c&UfmeRmFj?p3v(f;)6$$)K-F3X&}o>C?aH2A ziHoiAtM6E?Gc~Dyk~m}*TMX0J$8&LRDR(?~Ywn@kE0L$?uz30>!n!%;v4{wT8{EdI zUXC??GCRAdchrTo$u#|g<0C!kGQoS_Ud#AbP!Hmw?hR($j`K8PfF4r1_#Cu;d=!#^iU5P}<6IO_e zj;;|uPtFGAa$qQj`)8&N%}eD^ajm;m)mKiQ-l{76YT0v)Q%1enYaZ%uHkyRw<2sQR zNjK@1L$9FyQ-9LfDHbF{&wHBTt`>IFg}K)mPEXSHrOl;I++S}TE|erg%lo8N>6WFf zBa$dzDlK%l8dM&X*cl_y7LRpwdBlP9Im8$UvIC5@xm3) z+B&H1qu}K)2?v3rxzQ_T9N1Yc1du<<0Y3=R<5BE+L3Os49e#FjbWvY4p?*1OMN#0# zTY57gYJX0Z46AJ})u%s;>65I)Niq28u#mvn7$m6}hYuNL-IDxW5j!Jf)Mv=Mb1tBx z>UYljsWOO=doAfAKVw3k-upx$O$+3bJS_MA@UESgUHz$_KYG`5H<6!B^LrnMwRv)B zKE3hr$DeuA*|SeSE%52Tod25i2J)`lLhcaYuj^*^1DJ9^2GJFgPGcP=vl!rkfTwub zT}32+cWGxhm|*b$r6)qaI{2edr7;LsDDl#hwBBVZyT#?Zzy8xQ*Pik;<-VexlwNXJ z=bTwYyZgmlk*~bb;CnwumM#I9`7|L9QSzfQS(fBaf^Kp6)09eAwAvd~z7(|9zVx5y zT#r-YNcydqr7P=FX#LTlkg@VvOULx%W}7nhl7#Y0bq@ucBx};YutT7C?!wOxt-(yX zqG@Mj%wkoy=|vpqPVVOKg0z~m$m4?|bIxyDrJ?~L<$z? z_detn=I0A8x!viF8$fuhjJf-=XZz` zgmB9uU!O2|MF3Joo|sUKV4RMc9X?HlhqIq__G!4HP$*GiLnSM!jyDf?#|cU#la558 z_3_N<-4&%`1rJ7Z^1p4g+hiiysEZ?HAc#acc5WoyM*}3S;Ub_@QgwJ(0&3Z|^$=*- zGWP(PmnMyQ*-^B)C^DLMt-1FIRW6@yCHB@i!MzFB?L{;Ie_c{6nfs0(6(`LFn(b;f zoLckq)n&4jR*R1BrR+{A-H|+_^mV;q7Q(z{4SknN)boaxMhaoUYy@`MPB2DWVWw3M zOL5i3_+e(bHQlVl&1J?v4BIt*yKDub5#7rBy5~_z^8A6N{p46~Zejy6|E>*OyK?!G zU)GyMR~w5*9k(Xxv4XhNkVpe@6uj4|Nv|<52FRe*nrwhfU7_z=p%ngV zHSv0^*WCN_=4!7=D$UiMrBgRwzI0~OMAue2*GroJa0w+#3$iTUD7^&#wl-jiC9LTd zt}x&r+5a0awA6c7YpVr+{ZlG60@-!Sjbe8;UuJVR&6&spgc<1F{lJTKG^;;=fg^({ zeQI>??YFPQ_4-o1P9DFV8M~H#+s#Ce^YtUeuuc}|@t39g-mko^<(Be(`s1)FwA}f| z379+2PwS34xe)Y|(RZ(!6z!jaa^Mt32TlRB(rM{oSnfT4^jOo4<9d=1{iwoMbbfS~ zaK}$p0-OBYg)+rfuy^i@U;H0QErGxP@c`(so>h40ixpclD#={s*q#b?0yF|f~>FrsC<*DV?=mnrzudPw%^o*IGp8XXJIC@z*H_=9l~`H zC!KMYK7>S=S=jUr>5owBK;I6?X`!V`gE$Ln5z{t8JK7aMFv~K6)_8wE6>65Xp1`dh z&5{rJV2qxcPPZvsgPo}_FiUjy(yYxD%2Tv~UXnF+-1;z6G;;p(aUY z#bk~yjFD8asDZ(&vhFOJXw1h7gyCEoV4jW6UDB{!O9uT`rY`v+rpTCR{w5ldP^%TL zED?nfgAth#)6+3gh?*K2lpWdE0OQDZ!E#wG)ML((=SDWLL;;tnrZ`o*m=q)eaL@iJ zCQ-$usbjz#)0QBixV6ZM@76DU?)sP#!D05_>7RgLB=D+AZH1I4a^t{=sIJxG-> zFd{OSF0|nyJpw&rz`>~I5MLACDxT=BYg94)BF30*$qvFoSp_hF=cq|a0V^?TmZ9wZ z&z3FfT`5$OEt}drz#s~^4x7pa)#9#KCZSq3VpevUsfLc%^5ABhQ8_Qw8eX{)>sSwq zajel8RlKTOs|6)L$kSFnaD7uV4JR;FU#2~!u1bU(vZpJqQC34Mu_8IaTv@nBaPl(O zby-m0z#W0{M3v0GDfr-?$XU4+#LzI^gi}T+&<5IAKo5h8u)>cZzQKZe!?EBTLSP0H zJQ7W%8Icq|@aR~?c;gtiPS0rEFym5STI4VCMRmQsuvLvLv)e5ew-ya&?|IWatr-Q^ z)iqAAUXrQJUAAzVyzD>6zNP9!a`n2`j8CU4TZ2VGsYi# zCU!y?t&*aEK8lGkCrx`i_u&~|%V)@^$#Xdk<12~BM_nFty-C2k9`}-o*Y(J!cYpTX zWcQEj_4?sE?>tO)&*xg_Z@cY$u1#|1_HGM&0^f6!iFkv5h4cRiSm)o7Uji-kzT9ha z?}6!{2J=IQ%#&r(BSSJFn{e^Fk*sx~y(U&|6g zF)tuavQ&W-i)Z(H- z)uKMxO94s)%b*mWVRRsF`*M$124r>d7yon~AELrF(+;L^c&QP%Sg5 zb-lv!{MC+I@U=K^n7ZxdOKE3gp&IHkllJZh8Rlw5n=jBLlY>m+Yl ztWhi*rlx7ff?_eyRVwnkKuS@$oKldmZa_6XrvD#pZvt=GRo02_wWqb$p67k$VefO! zzVmeMIp@x|#+yo|DoLf1%1BZbLdXD*kN}23Ek;E^vBB0xlmI^`6kaFoQxXM(QE@~Y z1-gBpKo4rGwAiAca_fEH+UMM=3cO$c-fR2bbN1QuyuN9D-~X?Rv}A}>B(_Ur(Kf*F zSBc%svc}))t*DaB8k!=D*yjtNmxXCQK{FsxTWVrfPY+L5Si)CsOMm0G3_2Ouhw-b;>vWCclzqJkkWvMeiH z;pv|hMP3eD0mX$}wBqY@2^=R$N8&J5vH~q&Catg9R>=-3r5DaE2X<+R$&T;DrqfEg zfkzB$+ijPt=~_dUqfnGx(FtAqNL=w9+pL(b8L?uHTDHi1Q8%^yFT;M| zj=clqy{pSa{Q*P$ISeRE=%ZnohL8Q~B0LGQRY7Hgl#-&X8orG9XP~1CJ|S6dYbN#s zV-Yj>dbkw6%1Pu`RNz%Zq&Ti7cs}y4khg-zl7eKrfjmH7jlIKQW+N;bR+y{~dV_JQ z=5RGFQgjktZn?lIy;rgKDB{%3(Bv=(9dX#_B6)Mbi_Qnb)f~sb&07%BgdF7s=$>D7&|vm)TXwK z)*hZI*p=9Yf@cF?v9K<&uLjOHD(F&09wXqXmK;hFjpK;p!=VdOCme|b-KHX%hKNd0 zf}rFPM%VKcFR?ek?m_fdY$A=Xh~KOR8QBxWEbJv&90M6}{PEur#|4qdn}R8+67pJ_ z$onkvcL6y?MOQ)0bzTQk7)4A)LQQTW#ke`rklGZ}(RlKV1m+YHWJ%x>6VDbAC=ZW- zxh@v9n1q=lnui$^iV6FKcT>c^b`9TASyL$1c|v=FmkZATzR;LuMKu^ft5GfNG!cQu z(eEJ&4H9ZT7Gq9?=c+5Fc3%YyT1l@iy0YiVN(?R4%r%f+%tttPg@Gq# zQi9f+0|zin3QZVJ*cDBMN)lrRSYW0Gx6FY1Rsn+!S~%9<%BqZvUJm7S0~X<6iTt4! z&y|yNgG84==rL79#(I8BVRMx+MKTo;1)(9^wuKz2aQ{G{X>j{Zm~VsKjM7vTJ*Guv z&j8J$DzeGko@&cMAc@8Tu@ghK5}9ZwN_J6qO|V2;OqBBo{$C<23$ z=2_Iu5F9EIZ~ErvgK9MpJ22cIZ0~HtXNUYT4DV8^0a?I>`=1V~cRhak^y8mCefrZ6 zKKS5E3VwqxkPna#3ai4cVCStKz-k_(3?5X@6BFF`PA&$O zU;)01@K7t$ImY|)sVe#~&GE|b@ywc7>z4op2M3o`iT?UjZ| z$?siQm0Wju>%!*QtqWW8P)FU^kX2e@H}!D^iq2EwjzQ4k6v zlGmu=E$feS7`fAp0RBAnj}s7%l9eH^KLtbfU~FuI4u%EoV>$+)U5*Read_Dx?j3;6 zPLg#|-VR^IneL(O$SA77rL|ygM8Iz0?05?1Kq1+mZkwwSxTFuX@F1$}3(+y?(9Le93i^w$@tRmxTGU{V3ucsCaKj>abnG}sDhxrLQ|Bjd3 z^OhV=OzC|*m&i+;?g$q&J%E~~=$iUHpzWgjoZl?SqA z!o`^4j}+Ho&=Ht)8eYrwvTKQ&Yf0~HUl;jtmAF!9)uW2CvI`D(S8h#KgSY~jK5!Q&t9**!oiNK4;sViXf{H;o*omMJoyHeSN@y%P> z?er=X!@t|SH4G1@>EX%n*3H|tt_y-wn`U~X-9B;^2ih3N*Xu_ah{%kNe?RxRznFZ; z6QBFs=Y06`9F4ETb{7#xq|6Irw+U+Z`t!z7yjD6DshXBB52TuwVTxSb|6rIT;eQW8 zu@wHF$cFWbAR>a@9>=7|S_OLbB>8E1;pFV_Hg9IsTy2mvUz-{1|4DsjW+T#LO^+MS zZa3XXRmCf5q7yVf)1`??8x74&wC*)kwPeyTq(+HW|MSe=)NWthoo%c(*YdRg*6GdZ zh|z?_T6-FH5r&p4mo2sG#*NjZYb-YAUovlmvN=4qGzC+&6Lme3jQlcpTfuJ=!Tp_j zKI)}PJ&sS1Al4us3wn7ma>d*6uElneCXa_xA^x-%VR+TM@r2tVu9qa*g_`Cl% zE%%E!B22jPK6>SQ(M_T}$Y?^lQR0yPh}_qG^Ur@ad5^mP9~R`>Kl`1ZNnYxU@z%{*Qj5ZR zr8M>E%csj9Z#Es>RlyUSwxjSJ@I+nR*@1V-p8jzVIlUg5Me%A(PDV@*f3u>$e|ILY z)_Su$@7F7hdOeEjs+uIK8Xxz!cl^D@S;uM4E*vK~b)3-oR%@Q_?;}%yqgfnqqAFUN zgLDD41iYfxg5_)&MAQ_^D&i8{M*S_YQ7s`BYM>Y4E-PTB(99e4lfkI(5pOgI`lE~l zaCagakiM6BQj>U;yz!owoV$1GrLVp9!v4_{pSxxC`u$&9z43-?TV#0l#y@@gi4%u@ z^sZg<<;K5#`R;z7d}zNv_{RS4=HyrRlg$@B`h@}c%l$p_%>Hv^`~SM1#DlTDd>@<( z>gcwxfb1s|aQC8D71}Td;Pbvcaq?dnuA8{-YuvtE|v+ZkeEf|dBHj{q&S+Eyw6&`?A z$;-o|q(B}?`h_i&XDLmhyin<@Mf_uvOv=#a>H+SFAcf70(~{8$1Vk z;+KWv0!F&haUBHDdo8##dlTb0=4xYXVvci(cnpgpnl%fBf_4xON)=Q9=t7|pIw&f( z`JId6F{d4e?ctO!!!PP=N7oSJYf+M(7Nw6$_*n_c;I1T+RIh;6c9xm0v!}IKdzz21 zw}t*fy`pKxdRfL^MoF5Vo0=nWaMos|TF-0@SisgnX*9RArF0dnGr{ibhl%_dNqk6z zkMtRtG?;DwA#5#uy4n;)t)}?KXLMhASb>kPf5yPkPuDC10Z^#{Z8nf4soiX@bMAB9 zwV4*ml34fRHnvq8?&&}Cc)*5mfn!F!L3pe1Vd0a)9}|K2y#ECA81Y^Yd5+$Z!q3nOneGAMa=S28&ZU@M~Lj5V%pE}AY+^ zQV`AVd6y86a&;L_Gg(<44VMS7lch`O2D7<B+B!$$lwrsB!cVy~93m~wJs9vzDxnMSWjAVbRPcoJm?OFg{*J~|9KgKQ zYLV9d7cV~X#Kl9c77Px3@mUyw(L;xxZMB|lT|9sO;uEcl@N@pWFtJnLNRA5(B;1Y2 zs}#^2Z0AwZAMrj)B$iqR(*oK6=EcI{QXVo#u?4>wT^Vt*yF!U@a9He&yo|~ak2q2+ z){oF%N=M7f^UePH68RC)Hk@R!tZuiJ`fVWCB;(Ecb=R7)t1DLNHYTaYcN-TPk!67A z)Qr0~1h!K)JZfsBMZ{9a zwQL*HYKW{VaZ6!&udnS!VDOAo(;kEP0EC8g8$J zY)ghFsf}ymehJR(S@7^M28F&$659l87_peYH^JZF2?zymO98*oJ+O4a>K#okp9Jmo z3zpfoPM@+;)4s6Ts=|w>+OBUpUU{|bIi~MfRAY4iZ?dhut&9(j^j3TDc{EZlSZxcp zg*{wQBVV_COOkC(L->e$0@kUF_qbSR>0W5<%xDqu<z@7$SWO0vnoQQQ7Z)?+ngN(LoM4TqCU*M58k!S6#JhsQZGsC@B;L=Dy{ee} zfxU(}!zL2bO-ofQlc}C1GmWX5QLbdX}9v z121v0LLT>_7-c`PD6@Qc+J0g*DoI$6nwU&ZRxAw^kBL0IGz=WeMAQdK*&$RhL5kY8 zXO$Amh&+a{46@z`SX{O}&w`uaCV0uaGSaD0YB{T5z;at#Fe9VRY>y~b{Dmt}o8R-!v z%V78hE7KZdaRZ~#vl2dOerfZaXh6+zl78T~mywzc$foBIqR}jvVT0B4g zKZ>s>KgDAy1LT4k`)&E8(sc}DcR9&-4Do~ig}7TFEmp;?;Fs8xM&X=SbIM)>#t#@Ku9evBk`?*o zxnb1yBY%=-_&16}SyipF;@E}e`#67nD0qvNMHjy?It zZe!|rKXY5k^zMo68FiMeo!p@0=Jx)@chp0l&T7qYvj5*F{|Gv_j$BJ59TP$D1VQ9l z{9q z+uUodcKm?6ubaMnYj-IN!$zYm9ed8J;Y-3_315T9>W~`P-)G1@pjqEQ-c8<5egc~7uMn`I z6{HpwF%erT3d@Hv;Tm$ZBleUyicytd;rW6%S{)T!@bFz-NruTFvVtB@w^twvs&H0gf^Z~VK}rkGegUfUz{ra^4JV#ZmKV9{$UeK8r`a;1 z?C_<7RT^`3g}q`3Q=0G%M$0*Nuk(y_%$?*~SIt8eIX~i}8xDg=;`oYrPkcO12n7#g zoY>BX(I6gCq&8VVY#@FqJD7SzIn&Q@flz5_ogla-0w?j#2qYB6#Ul8G-JaSIcSujn zLsL&QX#d@(i08~rvG$SuuUg&EVu@ywKO>}+)k^9!?@>$DP6<(GG?~hdrkRRsn4noL zmoQx;9{A5P^<4*af^6AXno2ZeNGfTvsaav(byDN~H&}Sg@%!UT*cK>mSDaf>;RV8!*Z3ond zwgrBMituIf1M|CcbG!3Df`?N7+Mk9DymN`b;y+)fC~>LB~+U{Eaw6%DyjO$51i$kBGv zszs3~`ri85J3oOM-%vGB;oxs?5Z2HGrQFPzSZW);6E&06)tDbsrS(b2)IqGr@MCaCb69TXJ!(d3OK@?c~KTI0tc!2}Yq!AJ@K~%#cVZ%{DO=2DdrW7FzE;CxF zB0--q5by?Opn-)jGX)3IR7)e^Ys*A7Row`X`Xaq1>55=pU?9m(9kAg+dm6AM=o~77 zc=rs$)4{30By^a^Q&j0cu&VC(nnDyUFfvcpWZA2Nl4`bz-(j}Om-voeJ?do!?5gT1 zlD3ZNu}0k@?O|&kpVsUBlBG&&;JP5DZ66VM0$U@xAM>2HBv=wf7DS*B-Im-d*Bq-6 z&&X7AW7&Ym#Gj*ruZiMXlITMMTUcv0rvuW{t_Mzze~mg}ul`zfcSPGNYoY8J47%v;P6_psw2@2wq#) zWor0^tp6kO59H&*oN!JM21P{)53_L8uCdk6(KyCMZwIFE2>b)C7C4v}cDZvzL$xT1 zE-1mc_#=(l`OTv{8#fwy>(r2H(m*l0s*-Qc%W{%{^*EG`>2@b_RE&oy?Q~NX=ZU-| zk@-XQQdw4}c&+oOJ<#bj!;K?@J1W(W9T}}2)mXXo!kx{R-W*Gk_BKQD^5(LVRm-!w zq|vt)SF&KlVoRov0oGASISajt+mWtd$~4Wl3-daFP^x4<3hQ@)a|7ej>mq` zw}|Ypz7X-go<(6K>|!5la*!oL`rCvi(GYnJG5*>gtRf_a*C2U+z$yRmi}dk)A&nC7 zIz}8SxL;&~BL+{rvO|h4$)nB2{?|VBLtopQ9!629xeq6=KX&u?9=C1VvX571jvqhn zI7-Jhr~!@uQK32bSwPl!KcKe%y{*rDruBlx?)Pb0&(d^bb+k-Q*I(CJ0+rhS3!_{q zzp7!@UA3Z~tD0tF`Cx)JOJP$Wm-a9HHh81IfR)|d38)&u#8brM2L*xn4O~A=^4Rj> z7@RPlIN*g&TMp}ERX7G`Tb{roCNa6_RH9m3_Ih8ne&+y1p!0epAODym@J3(7|9Vm$sCn?yg4zR+GEdn z#B@=;;RMgw1TGSXnW|^wnj@IXhABdfuZW0}7NQP@; z4lN122%HnDdyND=6x}5)aO-r1#!axrb-t*nMa|6`nCRL$g|eC#`Xx71>pB?V`z>(M zu3c0sQE5?1qEgU2kwi8%3~f5?bWdm40o_zhcm5cB zCU74O%Iba%1vDsEEdY(iY!4Bt^@(ly+i<$S0Qc4{SQigEC9$(q6jpA&@0R7|TkgAg zWnZ}Cj&H8qyn=I9R&LpUFZs)H?&bH94?>&VLJU_BNC+c5!b0@X$^rIf1`ll1OC$9F zhZ=K(uosN`=A3ilWugUs-gSxwwydFDd(=;o8J&5}mnKza{Vjnr_d1Q4@{FmIDp8d~ zs!kk9l}-88vH2s`nJH0I$zvJ@>zS8l%eSLn_uWKvf~87GCH5f&eBC>3S$yP35yyI# ze1v>LD1#(9&N;xdNlxPB(wpI6*pt$Oq{K<82D}*oPXtFpYIz)G&EdTxkJe94t>3fW z4jZjjuT)tqC*UWN=Fho@npu>r+_t)W%SsZZ&Fu?~eq*WK(rVRi#WA~wb8@lS-ne&T z`OtJeQ%{$wjj8F~<(cdEA6c7OnD6I1>gPIswdz~3%Bq_M zhTEk}-ymNl-y>`a$Anvvjk!DEFLnk-at3V%z7b8Mgl6e7#ne8kE+Zfe0zR%FR3tpI zK|boQ^f@iyIHzosM@3c_Pk_e%k^)TGL{)UYx+PLBRXDl5zVz$FbY#2myY!(t7 zq>vH90|q^>l}uA}U7Qo=pQ*fApVU-~cNMe<|9 zwZcupcL?tio)Ugv_|L*WBK5~;Wi$>f9e{)u85a{Vdw>+m@o)}8P#EUx7fZ&kkF<&% zA|QJLwFsGw4%}2*JlJtkY&=@(Pas4ybY^(MUDhjhm>vMug77|wWfkGOm&1DLl>{sx)BSie zYnKcVO;V-Y&5+d$oNGij3JuSulH><=HF-br&A?4`u=u=i^+=-~qt#tW^LOf+qT6Or zF&!|`9h2H(V8>O9DXPRO62{R~huMBycSyuc%kY`&PkjY!x_WGdhU&zoD4KSsTO)VL zhGSuvOZNy#N~qIJ@sCK|53As|)D22SU8hWK99WS|0lYS^lT5gk=Wsw+uG z{{rhGq<_ZxCswf>#G4F6%c+T?7*hHm*z>Mta{zO+wrw%eEDpsjN+sC8j0L_TmIxrD zn2xZKZ$;8hN0W7gFt`X~_RwC-UKb1r#hA)X1bShD+V$Cirx1CsbOA?h+-;w0B zTAFD(M6|JDPLi8UON#80V7t5dJ)^A_7@~c`)PRUCd407GP9)e^vS@-%2G7c$Z>M%i zg}2)PI6%k0G$o8FGS$!}H`3clELy(d*1~ z7qT_4O0(|H+;VgEo+a=F2pjYJ@?5|N1y4vp!)$@2dXMlD&@(H@hl%yzyxeev5GMs+ z1J9~i?G+{Uvjn6tx9|I-q#z9I;XKOcMsQCvoRz0wrevclHlSCoPY#_uaqPw$kDd6* z;^*wGC$Bws?%IH&k*$!&48cl}-jfBeTw;?sAXj+61vd&-)84Jcyo;dvrSwhunr z9FZK?nCbLVmy+|l;}u>vSbMbCvt}cDfUlsS)Hm`Qyk@lMgs}&@|cciL^*LrmeQCe<4UtJn|W^=I}mzU z?}aNA#K-($@q)7PKX=f0ze|LhV=`WXt%LVXj1HJJcr=F#{AiRXs{_oJhV}kd!HBkI z8R%zgpqv{~(>8ofBxZc=s_9cg!A-ObHw=>3I75Su`cnK(g+aq`%25l;joX#!6-5QN zo7l1;DPiI#iW`UumfUM0_)&`kFr%q7MZtN+q9a41>f2?7>W5E@;HZ^7YN_6w4p$&! zDU)t%ZU7z|b|kn|R!Sf+u|G|B^<+7cD@O3|P3b7{;!vc05c5n1+tW2A2ijn4>5g0S z&9)`ErNwpZ;#V26pMnD{%KKk8wRsk(%fBJXN@d&b6CdQ!{u@W-uE+s*CDj6R6^qMK zS5+{+4h_{{^>|g2O#(Ir98TmjSp#_o!P8enHBB@)?TUj`qcU7Ht*cl_MeMf6VuRWW zhC3Sm)O^si6c$=iVuq!vRKgq=SuzPNu;u>)wAY^&PQb)ijM-!i0#V4diC#r3i2L1i zLO8HGu5KCEZ6}kCK=I;y+0x+_XqK->hE-pf%JR}mxo%I-#og}Qx+sa_Kw-nJ&XK*t zu~0flxERr5GOdwp)YU>*8e@<0@Z0){y?XyVFkgHSM^hWqd7a<^u762>%+4R72{Nm zRnu+G63*1%U!^e?eJi4!Dr94Y7~NC8jG~T@xad7-(9`C)-d#jr7GaONowbCJ~*tgAZ`U! z8BA}v*0UVlv{fCsHk%+rG&U8kblbjLDV-(H%;z)1b~UMjbU}Ur*PGhuY^*k0c~XNn z&1F62TBR78dc7GejcQ8`yXHvZOf_6>c|oJPIC~-QObZ8mR`|}GMid3CtSL@)M_lEC zvp`_tVJAe98x|}qA?IZsKJQwaC|4)%6nVB5{(Y=EYRm6#w5RrF`n{}I1Dgbl8BMR2 zD(U>jeA|y@ks5K+fTrw-V8`4(c}d74_`-COP17S&dp8~KM&Yrk+8W5Wsx0YEr?zan zYjexH72k+DcHmRnEyvFKwjX6={F(_x+y5kwFP$hnU}y~EXTj5S|L0e@T0qAkb2Tn5 zyyw3;`smSKR#IKH6?8V?>Sp_Sme&uiu3SkM;OYW?b*>XsXiZhFxs^wco`r3Vsq&`j zPVb#P0+)4ss=f{iqK22{)|MT2eQxDY6)vk=57J8Pytceh{jTeI)Qb0?{U`A_Jg-Q| z5x2OjIwBU0Arj32Xm5`1ry6;=$E%p(vcak2usv8FjW%7RiksAPe(#4ZDQa8yb@S$4 zy~*fb1e$U8@YLpFZE^qKMX?dI-*SPkv2f!l#^|-fp=^Q?ovm52tf6wd@oh~-vaS7} zsFU~U>@7QEP9ySlcn%tzd5ib^apW&>tF8!3&;m3L<`2nU z?CkA1@l%&e1TOYFkFV@?`v1j=Pey~wl?9DX|LZ6Ff^zAbm;Qu2Nj?D5uL8&5wJap( zeIJTVk^miCafsf0?2w!yA~GUH=29}EBe+rIhwrsz>aqQ=nwIpS6hun)mzw>!B#YjY z=Ojh`#)WxNC1=0;E1$gMAy8j8vJ{*VaZZe^{SWF)*3SHy7CD<>drrBDtdjW89>D78 z;Mf21xz8}7a33CXwts@xP@s=01iXH=A7LSh8gh2Q!R0D8&_bADgtlZ79TdGyLKxc! z;5C*gy-b>9r2llw)E|CVsYBtf7I&wr568`BJlfPu(>2XcOjRC^TdrNIlq>b&!%u)t zXPRbD-Ny{WGfnbd)i%o0R=v_#Y?kZGm8n*If7Fy&&-6e?d*+#?>Qp!nKB0u<2uo=`ZdWKi!M{i+R4hH7Ge;*uCGr#v zby{ADqo4mS_kGFV;xKw&1!V&{jTp0HC#^ zdZk>g5FIvc)z;#>*AMNk-xIG_Td-q&93%TA`ET%EwuEV{Fqj0K8;ItfOiDsRF1*3! zo8)|f(KvhU%*?g33#XqU3g>UrlC8(vsSyNOR#@drFVNoT5-W|RWcv4gcfS$$-%ZE8AW z9ytGt>x;81D{~9$hx<#@Zru(-w;Wg-Wz$JYa$wb!>)&_%^*8QL>T$$9@_uN|SVMdq zBe&z~8L-`<2@gj}Ki?tUB7BcZvIt9zUszsGjHDw2G^3H88{Ho@6OUj2mLGe|^}8=U zdS9nK^~llb#r^rM7j2zi+uEb5soSm{=!hF-d(J1D)G`{4Rrfv@^*9XThjusJyC%OWZGSm3|lsp{j)(T^|ZWA&7fhLK8UVA)`Teyug|0jZ+>bu}PKu@Ni?WscEuB+j=AtC$zx;*u~NbYC5sSm_kL# zf9Y|Z#lB|tYgG^Iv9!tKHZ z;X&bL!fS=M3jbR8G2v&0Ulg9@+@ZW{%^|!`y~$mGkmC#TxaR~%d7NN@UI6cI$H$D# z5x+bifEUVRrya)`DcFLrmaFKVhp`-~goZh0EEL(oL#cS)ST_R8#~56@1&R}FvNGcH zif2E<1DYl=b84$?Y3ZRU@ah?xSsBdQvSv>0whgPjIc34j`O)f= z)ujs6#IzkIuhLXTOR=gm8kMmJ9l;Hfg~W;tJ+|XT82J!pU?wG+XyBukBK762-DueN zS*vxLgzZ$K)P$=jx#CRb>5lVI8H{~PqcZp|CC9bxrfoeYI_6^4N`kB{Q6*3%-LZ8i zn_K*)pjyTJ95C&S`J+ixH?<~s)w7-?*)wx8h~ zO{$fj!hA4MiB85bSQ)0>4PrkOML&F)h$a>;yb;7kl=bPs?c&x zqE4s3e@Vn>Phhu9wcTvKDZzxkmCU7Lt>Pk2mcJC5G)RmJtZ%l`hs9>A(U#42Exj90 zy;tR!>t7KMk$(j;dI_X7B2=H}@g7v$*qd~@7=4`n!AqiE_%&&H&^a}S^J-o-Y-4x1CH_&vi!tV zL-MZ{vTUIq{C!w+J*O&)RmXE{;n%>E`v*x%WJ2VgMC3%0dNK}w5NE=y$s!5n6*~Sm z$=`wAyca8bu&)I3a8`;=ph@P|m=|WT5St?|0{JxOCy18$`(9+TjQRW~oA8Y$E_ZB0 z%Rj!pc1RSrMueK4ZYgT&`Je|FwJ_qUs1v9GQP`Hou4y7`uIAn`;MmAq8J#i zzb-q%razAO8vS6FU-!%*0S`K$F?5Kz}5C^)m}Q2dWc0qDauC2wG7;-rRbDt zuoIK@SNxL69Gl85)ni&Yo36M>i>IlTcCA&Z1%WM-vRBV$*RFZ=&^WjHPsf<!$+KAQ?MD=O+5K`()) zp-haR#4botRyYPe&b*9t`_b5~?oHKhOWH}|8G&*E4C3Yu>uy|au(Gs%{;~7xQi(P8 zKT>KXNvrfZe{av1P~dNE+mfcrF3v4|jW~WnzB7cWc4F!=QKavard%?$WEs}X@#*Q~ zGqzzaO+Dn{3dw07>_ZXZ!wlVqy{*DNVE$OQ7k;iURG}TOBFj%V9v9_azJ&asqT+yf zzx&E4QCtFl(ymOgOv_*+yETh&enq8$se{t5@s zSS>tqT(OATbEcKTnB-{Xh;=*~hnmsX7$>Jxt8Nf%zj$lw#jkns)_m?TqZ;>_T|3oC zbu(%l-n^LgTv@Y1NrV?+ZGQRo(2APbVyh~{Go1|MLy2FE}Kc%Rl?1rs?BuNGRQd) z#-rBB1-D|#>vt=0V#{B5JkKD9z_pn(d$xUx=r)TE3AK26P!$vKiSy-6K zYmM7lZ@%fr^t}hR=g*{9;FJf@y0?X6ywa=i=e9|aLd)xQZ4Swa#SNGmgr;?~$iB(@ z9K1-J5CsfJd5n}hE6F&~Gdvg}hn~$gGWZlfA7IpQ6(ZL5cIBKJT2^SP#ZT*C7yRe~s;V1XYPXx_jNYv|wr8l| z3>)D?su>tYa1~a@yl{hX+nB|w=mSo33~TkHbe0sLLP$n7K+J3mZlPVAIQ*(U|t?DNwssG(#2~Dr%UvV!za;B36ZxQtZ~GwCr5;?UuoGSymK8 zQ!`jqw;a=;A+zVnapJebNj&MRJa23c^=WtF89OAw_DV-PMX^d;bREIKdGcawMOA4`%Wo-!RPg*{VydO-}~s%Baa^Ybnin<*W4*r zl8xcLAjP3 zDc&riQ6AYMdd_{~2yOWgC_o#np1; zRcl)>+Wb7YCAF;Sf{L3Rvqx8*$brx8#m`g4&$F|8Q;KJph*qO0w&x~6es5k$JyXGY z9mzCZWoqw?R<;ApbIbK~zP+BN>qpnyuLF%2xvqZIk1)aiC~!>L&quk*u%>kro=Z03 zwcv2E^a}8jJMMTyBY|_>&9~g~Zavk1oJpa5@+$a}7rarg1}}W!hb`-AqZ(l4@6~!W z6&?kjR2Usp4PG7hoP?S1-iIiXXugV~DB+ZJ!&Tl-ne%Wo#f}Demsfdl7D}Z764@t_ z8m{o3Q<|a#8x=8^EG@9l;mQ6r1B2N%h;jL}tDE;fe*Y#PoPZZ_r-PuZau|-5L|tW4 zYnBC)L;|@XTZ%15yB!3WltXWQ33)P`Gt7m>u3QJ_Ty9J5E2Q)8tE69{co?Q#zI{ix z#s}HFzbjF(Im>*$+qjuP#3WyGiqg7qblfl6-9Vlo@?WpKm6_=&dRw1_B&!P=s% z{&&fFSb4(vKjZ?x^qZG{TYNovQuu=KUxj}VE@6jX7a^DP0m1@vSzr94M}ehqSz1)? z4YLA!2Rsg5RDiaMLk^NGFKcc!FCfU4$6n27M=Sz!mtCC+o7T8w8oP+c4CiC`7K++q zG*0pmfXb!R&?QbA&S15sJ&g#rW}bVk9IaAfy5rY6-R5#)Z=E~WovF9Ml~NjhUSdi)?&=yGO>1m`)J}i_^6Dd=1=nNe|RSFA=4hRa{F|h~ywzCbPt7 zdVgf4K5JE7^TkA>U;v6#vK4A8n)(o2X=rTAOtr-KS`^FATvtYvPF<@+p@Y*7f^G)- zxdiUAskt2vtE^*0)X79MD%o-A@D4mqFq${xvWk%{&{$wMG6hU2$6VSNH5*Y26Y{ZTDe+kRy`7V6}O8ps+JoN+tKYnavNc-M43))R;$QNkqA?rGKet0 z6yR(}GD>n{ll>FAD@*UebnUMsOmLr&DSNKWcuv|T6V z*``u$Pixt1v|zt(uRNNYsrBRS!HwS0Be#PH%;%I^TCc^mcq{X>BYw$Wt~s@qm71pB zV=-Ga9BbNsuX;#7v2G7PE1%bXE?J0If?JKBs2{0}<@z6zH<6EkR6h<9wwGf+Y=2l7 zHKQIag6KR&4~>CdcY)9zmgc~$n5Pq?{fC+54Kgb5Z+bH&XpW~Aw}$nOveK)r9j&ao zzGJtOfCTpJELk+$etiavrPOvrb9W&>*=%Rq&eXkw=|(m(bmO^tf4S4nNZGDSCrWvj z_#W0V$Tadtfuo^Y2EKf~>Lr@2T2yVOlPF%|Op}X*vckX=LzA&iOe6&ybQ?TsJz6N45mG?If^IZ@rmLtWn>?|WU*6OHuXUr)C$Ul0 zWL+_>=|xkgB^whJqBB3IY7VCGsn1_=9 zq;NZVio4{g27<_jZAG)#%NPz zx5KE)_~4Gqb8ls89p}Q}54~{V^!$mnXeBibXX`jeIh{TFqqz8GxcbX*>`e!Q4;~D@ zq=F+bv5PN(9d;4yum<8=awXT^L7>?Nud~A{^>O~~ZS%V)R<`W@$GeB%zKErSEY1(I z8S}ioII}a{9{su6NEg<&q=jp`)6Z1)dVV`!7;T=q_Rw&-1v}5jcuybu7FpO8rs2*n z3j<*t?*Czs9M{5AI3wI5+z!v;Ug5>U!@|pi$As??E(#wJo)SJP{Ic+@@N2?v3coA- z0iwqtvd{pXNbX7|bqKF>x&yb^?)!i)geG~=ffjdw=J!>o479fJY>S3xa)lwCSXWnNRDN9cqr`m%yd{g1TxA+=)8g$SIS%MEbl6klHn3(W# z-g!7$<@_rYgS<%rl?)~ydHa!@iU`ocxfG0{YU94GooYN+U2i)jhull@W4(T;lQi7e zZ4ik>bouC`-}CaL?S`nx`OL|Fw^4Fpiy8)zz96=1Wy>M8$cjrYn0>@3}@*i^1F{Y+K zvl;t8k3(|GaP~isOC}$Fug08ZPk^NYO;pLR?qyH%E1~l;^6a}>^QZ1SH9vo9VRQan z|CAxr$8nDLL4Ig%v~YT1;q+an7kcmhq01N|SMqzegeAF50cW1a46OpUDCN+7<1&{a{)!iy!&aWv8s1^QUTgPOn^jV44O>U6 zs>xKpb@rycnd!Zmg(+~^I}N9j)S6l7`$3xpmZ_^pSIV*F=~UJHQGIH+Lwvun+W3z4 zY9nx3{@I}6`t8QK2AE6=*rl3VOS?yIKHdwxG@S3cRojij^&kdoz%0?_!@6o|RA*7r z+0DUcs4ZWS57^|ZmqQ(n`sKOn3IHdj zYrQ*(*6tq332fVITrs}wHGIocB;8V&Q&JJPOl6K&n~r_QE!n<|9Or6mg83yeJ4&ZZ zQPEbudFcz}Ir2fypC@!NSs>?r;6X<=o&0jRK}2^+t{5G6YhUi(RzUfXkIPkOzAq|gp7kLscqFiGDm)?u*apKXL2Uo1^_2*VG<%K8SAd|wmw z1{gg)YlQgg!Ib19mkyO-IkXxaYk*gI01IH7 zix)_7pkY2Sra6mWMV7nEY9r^L%mMvdB%oC+<=Scl)9Qr&aLVikO>a50qG-x%1|17oe-z6`u38EXOPEt$q;e&P z^rPR#qxv>?G3AwMIWLJgxQ9G?wLJWPxq~P@V@xXNWosOqDd`t?k6uMCT~TvHvZ11? zYo?|e7PD%$W)ee%NnNA3aE?e)Jpuu!xJroOD8zn5#5cPcglcucRFM3JYVZzv;J-;k zHR3uxfvbt9f8A6Gtb|VvB`TE|a&8e74ua%-M6Ou2W*`7PER#iAHY2lTYqbjemMOw5 ziLy^c#n5c4jJX6?#f@L~{J8P|{u_Bk6#B*glDARQufB~}2D3l>FMbmXoLF8rb)CS# z2kU}ewh21zjBpg$9b6y67Z*2lQy57R+DT3s2X5ls->bua=ccJ&nHQy}T{@q#Ny zag8fSkp-IaUTd7B&zmf!aC>mFQ;J=HygWSQ5X!5)?p3SjU*$MbzMWM|2=w&F?S+N?UzA`C1$ltBIkAkWB8XTCwvZ7HN|v8Jd|Z}~AC{+; z2ahX~c>F<8Dk*O`2BXK`AWG+@453gnDVEmPByoLRGNfZiB1E(p zJb4(e8F?wfpUP?zc%l3a>Eb#x(YE;j!>O*~>QE`Afpo+S(Ms z;m@{{%2cTv+pI*JR#=YGW>f+LEi~cTq)uEZktf!sE^n~^e#Up>#_8>QpE$paR9e$r}DlU&R$ zDi4YZHT8-{pDOCv*NOj6XWs!Y*;U>*=eBcuFH`UIxijy*nfIpN*W2!D`@$A!wOaMI z5-Wiak`PGXl>nO}geU?-B#;dTY>OCU8&d=RlPZf(~x2u@Ko=dQo94i+#Lh9{1$ zF_<8C;lbwoFm7r3MNRtsTrW$KAa%C5z+z3>WKmv{EQA!%D!E|fzC9He+aidi*KBBjb*B2I#6)qQDvPFlPC>D<8KZ>{h*W=^E zbYuItrR~FXOpn61f_@@Ct{0ldM+`XR*kWNQ!n!Vs*cA(fk7DcN*dZ&2g+%+D7; zlKJq)>r1a+d|G@u+WN0ebfy`7>sueVw03FpT=>A+6X_?eX+^Co?tS8kW^-bDe-(WJ zJ)N3Loq&2v#yX?Gr{v1BOk;wC-Ah2MI|$w*sk#HANUxzTC1&2~4nL$4YDu!%+*c4hLKVi&w(@SKx>a z%YIjszQZxoXoF!t#ZECI^9jOt{4|T%D#Lz&VGh8iV}#s^*?^_zU?~z{A*P$IWHGak zVLt{dHE211!sB0s+0=IIThiwYQY*x!iiuDj5gt$iIyZ_P`Wit^j)#fcgFtb?dnRo6 z7sB->K9Oh~6XJhSQ1sBQn`WaX7WAC(uZd1_x9!jO_xFeOSD+}DuJNbF`p~^ZO|Dkc zP9{^&WUkcmf{Kks!!RsWP&KqC@BYf1#vDbpet-V}%@>+sP=D=2#rb}PsKymNTg$>H z`Asi^o%{gE)pDv2zbb_$_JY?ZK7?e1V-^j`uiDPE!3{DvK=56OtvHGaIU1F6=%HG_ zTJ6^c#X<3Qwp%K8gvINE!rtOwbx{1<8dw2Y$21yFQ4H;D?b-GkfoVcUmYh?|!bz_v z&om0b*+^$@Dh|Tp;NN8H2((+V0S1O@*r@)er5Qv{D_-CiA+a3QR2M9sT@%ko2dXBq z@JCVX(^4)Vc;;x8A%r_Q7%W4v^vN8QMxo8E~EJ)qfvw|Lt4Cc%gU}h zzoFWu)ofa#CKN*T?X^J-K1RNghYz(^2&WU_SNjU_1d=i4MkPUa8jgsCHf#_8hjFs} zWE^=LLsm#wWjYCMT8D;(ff+MwRE7kVE@8ji2CEod_$MPHJx>5JL`O=ILiCPF$-d75MaZZCn75l95)og-QoHDC21<=EJ$@1MY z_R^T)7)d51ojlcl&Z9e_p77A)r|LMW2C+gw0s5#j)82K*YrglPQ>&||9=rVV=buNl zt>^E$Yn)qkmU8!{97>5W91j-xlk|4#3CZ*@_(tD5FMP-?Ue&Q)@bYG{}wcu8X)+!y(iFIeLVhwNjfuJW%AP!m!AiPz?`eB)SKmk=cY@{W$1F<(LUywOaxt% znKd29s%jz+ythCs5;V}o5o0jPFy z6i12QI+#T;iK8{*{R#|(Uf{FQ{3|Vz#>Ke1u9^o^61%4s^fwuwIrhod-TdR?{qM26 zoo`Ivrg~hXpn@hTBQBqxIkLNvR=H9Mgi|fg9N@K1e^1&T$@kf}{X*lw4GsIm8|SZ+ ztcIN72#I}aXC9{tHE@|AmhRAeal+15+1A_1;3IKF;fT1QgJf3_kN5RaYDb6=R%TXb z7G*<*StU^Lr(qscV103?9{bx0K3klgDR$bTEQ_~=Q`2D}%N~~RE6z+8XBBxCL))Lb zFwXe*=v>MsC0h5Ah^rkB5D^(qhaM)6T^)xoClBtSzYhm1gRn9%eDht^ezCtiD8k}p zu(e+_0^{?Sgo7~bhnJY!6tF* z<9L-J$fE%nfgny#biTangPntImI=d?|GRy#!?0n9ndv=8)~npiZkVDcILQ@yM>?G2-e|qTw_rD!rc&yQFVePp9c3;$kh&subL!R5P9IGDa_aM`uM&R2@hC$t z@uGuN^=QssFm|*1K_ecID~uABf#j9;>A=DSt=6S}Hz?OhDbn%{XeMux(;Ezl)E25Q z-9}Cg+$GebrzQC=l&Qsg$<{szO6}1bll_EYmJD8!dC(v8%`)dUU$a@Osp{q(8~x7k z$DiG}V>77KVQtvyFB2YPQPfO{Q^5p~v2IGLiO3quV}gQlhiuBG6WXBNsHUk#qNxcO ziMS2xhB02pxGgqBgK-$i;Mp}X5_Q&L^LYmZ*g#w&8EOenGsAqTG%WFz#p-m`>=sCv zFXCZKzH3%UlpV|JKBiciJn0G~QFkeCGbiypzZQ#W&HLYuqPqbsN>6B1%#* z5>S{u5AQBW@6-Xndlu_I9?w~ktQ}U9mwy{=oA*F|aHnTpDq>un};F-lo zZYR0&ge1NwAwCP@xMWN0jic42nT|^Fkd&bCeMhL8HPy_5Sl0{vcW288mFyB-*!<bM!Mkg2XO<4KyA8uWq&&7rh(w;j6a( zz>>s6bD(bA`WYw__R$jWiXY~!pBb|XMnAbzH3?vhs5$2Ea2&)f&Rz`#%)bsavxip{ zr2ThM+1Z!=#(7un6oj=~KzBRkuqt;ItBm`ouc9*`hdj{6Qvn@ch$%-XX|6iKNfw++ z62I7^aHNxAMN(tvOHZ;H_95LsQXw0Qa>4b>`Ig-eGUrx0)0&p&Oquf)`9Qb6R?nu7 zG$omnhTZl;`|zA33DPykk1U$COnD|0)Ohbf^pU7Ozc`R|u|3ybfm3Fxl~86hlTlpf zM6YwGO>voC{6q95^hMB0s;RkDoLWuoOC23sx!Y`Al?jVi98@M?1A|5oQB)c-SP(4#+``bg@N(4+rg2R8{1?}WkC1kNH7 zDiQ7LsX0j1Gm^FH)6~^LocNz6v=wwvnT(o(*$@&IE>UIqGx4Ol1v%RNpj^#7FnvO zaZ*X*Gz@(^^nYfySOGn+EMQhF?y!Q%++A5YcBfIsK zop+qP-4ioxzgfz29xo0uVJpEk=#FOuB*9X8DuFvz52vT5d$aXgQwZx7PB-BpOgw%P zQ)f#JHJxkuEwgn@uzcCZ66dASEuyAbn)abmZMxnTOPVbTx-N+DadbC8yp&^kDK4AK zh+sG&RToPQWSj7~AYH(8Y3>$v|7Ify3cmmPOu2D#$<;-lkyZUqBvpm`L#I~y znM>d3m4L;HtoiwkJH9J&o97Ij`G87 zre2XcmAWByd+PP62U71zJr1?b1L>ZKW%yzmR^(A!-l!j6q$h5Z#SBQO#ZTLVgDBB@ z$!EM$M3W`Fy>)wO4gHKK`1Z%=Ubk`l_lYWVzl%%^0y7u{jOMS2DhOMQbp0PylBl3S!+5ohz?>jk-<4*Rz%qS} zi~d>tp1Bhz-uL@YzW4a?-2Lt&=)|$rZ$7=|tO=k;KK;$!mv_DPm&m<;>9xBwxcAxh z^|SB*;>s=e-MX@J>wUMZXyo1t3*-TAwIw&r3xO*YG(k}W&0x7zSF$Y04S4<#r>nfI z@T$&oX-~2o#Y;bVtn#k2msA--lrknw!tLj6Y8Tmn9AXL@$otYCuqC|u45i&uC(V3tdf-22-x06-2 z`LgQWpP&mIeo}V~!_ko>>$E!5RnP7wI1z+#cHmlKW?`m7VR z64=Q;SJEUoZ_N^kT`6M z@b&d$%Rp5;tXgF}h9GZ-XO|aF-rd}FcHs)Nv8%bOiJmyT^~}P;-N@eBwXlFPhwp~J zi*3P|eJ7x7kAcOAZ5D(0_G!kX9}q035Cx4yM8^bsLb&Li?D2wTdm-*%sa^9bf~g0g zZi2OwxunILWjF8muIM>X*DrcAA7lCUR6AQJ^|+&*g*2s1?;p82YHmN&9x~otm9R?N$-7;$ofAkkN@V-9=Va^WD5{V7u;dTIoWW zeh&J$G{KOoZ|fJMc${>bSh7w6Ni)WICO#x|5Ubf*ILET${M^u$R$84}?ijODozk_2 z7G#2=9h_xGvkz7*39dwP9)rOr7B*giUaM$@M!U6GFJDvf^$YKn^t0WUYinRP5%1MmBB1yM4{VQ55zk+ks_e)oSxxOq?FXIUcWl&$>e)@L}phpzt7U)uWCUuf+!JO0>P8Rpf(UxM(z%(_KWrGl)gb66Ejw2#@^ES1m^ zIVTqQTht$D2G;M;z<_7nU)N0o-O4wa-!xq74RTxjmZHdG`TJGoF3{O$QwIq*I2xmx z5+^)0rW4(pVxSJ8bA#H^paH~iOhA(Pd=I-thCtQLB8vJA>NM4j0~BrNe+()FLYAht zP|h5h&Vt_CDvKn4OZk9c%i%!dknpHt7O<$yY=U{rBTgx>V2{J%XW+~Dh-ooQmZXm% zR?UOrjDG1+QO1rcfU?N?HYN;V%A@@FYUttPi-wHLw(+beBCe5>9PwF0GB~XEHW`6| zD(Nc3tS3Pw8l9pUhM8iSEMcEw5q3cr-+K463g%^j!;*whtE{oSZjLWm&r1&Nd;W=e z5Nz!$i06t9Dif(dTFwMJZ7dC_BWfJ(Ii2Kq52$U?_mh;lcog&#la?As2@h&{NQr)# z2l-Phl-FO21*~d0o;yWCIAD^?`>L&BRlP}QWI)OmG7Uj91=-Z?yeVfDA!qrel5gdN zP*cUcgkq6D#h>TdAwrB$)z%d!H@+0lK9Y*Pd%3UwbVaP{Vn21#0*r0H3ZTYl;EHER!K4>j$ih> zLQ+aWdw$vP8X`1I*nhci5n<1VtMAmlqKh(Gp`!)WZ74*Oh3zc?kq$z2{F)+ivFb%r zutgIdLz2HbO=^vOqdhOAC)aPC*KPR!D1DR@00ua>B=T zN#J-c;qYbWPJ))^SYPHp7gm z&qSIM_a$*-Rp9ns!lHfqxJ&kOcx^+J2lI*=&FE$(v~0z69F_nt>CL(EkDNU^*BbxG z)+Ho^OB6&-HYW@0ctN>>5yU$j53e(P3vTU|V50bhNYOAvjul1OP3f?Xd;g)(MQFp4cjsXT7n#*H0onEgCgX zWAdm!fpm@k9$~d`gJG$TTCUvaiagS79qQ>#l`?Fyj2j9nW<;I4Ub1aZ+OZ9v(b9=O7XHK0ub4=eo_egGpo;ZL0j=9p@v(Lih z{Q8bO2Lt5q>6gu&o6s8&e7$jI8AYrf63;I2-FkGi*C)erqu9qJDv9id-mo#;<{2gV zA3Jr-cX=zzURvNYxqRJqFr!=5ZWOj0%`7-z2B>?OdKc>&$=0{cj>$=_G~uCfO;Hui z{7YH%0y>PuotKb-KaJa;=OQ8 zuOK*Mv|+|`DdroEyCyEE268iz>qHHEUwcR@8cl1UY36=JJiSkI)o4aM+z~O}`-*M(cG{xpi|PR@0~VT%DB; z59*td-L|>s?f-|Yh zQ`e_now^?+M2f!u>JF|6>aX`G!aDWz?O>H?Y@_@~6x(JPFN|q_hudKWOB1Tw$gMyH zs*L(jo9LYM`jr5-QkUI;I_n6sSJb5`EJQhJ&?s0s#z5~gX0-}ps`rpZ^pss59q@Bm zu*QO{st}ZGKa3GC$P%xJk~bKX4WXIoND3IvV%;qXTA@9Y4+%R?J8hE`ElKg6Vy5T^ z&f09K=N0u)jVTI9mF>9OcyrY;{Q8~}>@=%xSl7b~KLae3P>CN87E%}3;V<-C2ijy}SJ1ZNAi}z#- z?5gSWtayY))UN+0^fY=)s+wT2M=$p@lgdaQ=RAAr^jehH1KF_n&?_{pf;CW0SqXD_ zh7IgY`Kmprv2o|?(Z11TnWmS^)-)gShpwx(xT$tfgkrjlWiI5MCH}Af&$4;{)<>Ld z)Yh*?x7Q?sqo42$kl|O_u%P)+px7kdB1Gt1E@S2VjIVk# znMST|98}BM>2|R`9nTIk0g5Aa+%7`8W~inp8ab=F{PlrQtA!aKOy01)`_#R+A6Xf- zSDhm_Y*Y)gQIX+zEjN?SrW->iHO@(!L)VeK95hP!ooEUQ6|>ZSb!nfHDAEneuvHm{ zq$EQG5t!ig!4pNjm!JZU{Y*?*NH5u-;%JT|tCE1Fs{~1B1=8kgwySfBvgBgL4l1>4 zXLAyvH4&YrS`;K@NmW>BpCky#hU$q9_?DaXi=Ki-=`K|k6$`88NllumHkz7j$(dqp zwlkO)cr}~Gvd~bg9M;tQ0YVXsvgJ%Q$wf-W%n{hPdq~a+iPD{A8q~HRdP9$PRs@tW zVGggBf8GHRL0DpaYLyTxtwL=+vbM$&$$YD4V0IpCEvYOBT#J=-nQd``00z)JCrGM+ zZu#j)#5_6Tn}#Z4Zk|CL9D%tOBkK|zf%&q`A!eQzMAf|35b+&UK|4kqVaG&4;<-Dp zB#1wC#}foV^x|D2&(mFF-3;o)d2|k>k4p8KsG37OQDsl`{)dghs}7sl-oCJ6mPs+D>Li6kL}r;Q4g%;S(IDkumRS5k{esSXE?WDt+Q zw~#tSY`P-q$E#>EPcZq>uZJB`DLS)m2&#Tq?+Zd$HHu!g&{ox%FzXeKMnUeX8~Uc) zM3J(gZ-~CBJM0W<^LEMR+h9vLy5;fc&DBD~lx4F~sJ2U%YahF=X{q^aHm_Q(TaJ{p z+U)B-Td&-GccuPYe#SDjhu&er-#Z@COveXd z(au7W$d(Y2QAj8n!58>Nfc{O)~?5n&Rs6xOIT2=|n6|jIgMt2xKm8-C7^6qeyHT#GY zp;G`g%7RD49EU}!=lp=_gN#e3%Bd+j%6p8m?~v3Dni`5@nqfmravMQ+J7$+3B!qA@ zeH5%*3Uf8~4vf>C=@NQCmc)eL`4o!Cs z&CDF?*mZVf6m91(uu9m$wQI>-)-{wy(Q0kxQ2TJaRAn)8-Ko8;q2_DwnM-DmH8vUz z0`VxJLN~~T^Qxh4eV2HzSjk`2>r^5sj5~d+^uEd8#qPb~b zy-jYGAb~hPnQejNMgo1#5LNkw+H%chwH{xr)mCa=V{X9Og6!J$(9)qZ0dtn*>4CDP zXtFD?lA!nmY3SM=+QZYW>WRRg-alPhY-gqqpgq-{)E7feb?mmST!X0T& zgPyJ<9v3*!g;{y4unMv+vKHRr_{Zv(?w?M#7faLorZ0?bou~MJO=w#a z&OcHW{C-k8@Ed2Lw6^K~=+BJDUCsp-ID#Wb1y~Z!J}x%45urDgj?OIKyd0M9=`Jjv zS*d=dKaDSOxI*vJUVYav>|fRo!9r(vjT7^_LwKv8X|NW&-+h?Zw8AH>h3`Pt_ z*Ay$uH{aWTT`>pOoH@Gn?JQ^S#_b_oEkE2{gW0ABy1JPq~WT5ISqSqj9;^7)fjt$mOKY#9L&$@B}V+TYq zXcvwvih0Fl3I)cMLoB+E3Y!(rlVG#QT#=@r5Z&3Bi=2^RMUkgXX@0G4=&{@2MBC#X7k-beNl8VHGM z1b1!_Jd4?~r8l*p+Axhl(8A;ve$O(h4c}-QZdB9Ffg1^fj#%`O=!lDrd^bN^E&5I} z?(sjEbLc&kM~FIE!FneIm`Q#<9`-#U37{g#W8*|~*r-zk9*PVP=DkOJzR(CAx;J3X zMONmDrhcqG?HIvzf$V4PU$qSj&+O8rTF9rXBDNLxVbc-PhUD22c5>)Gt0XOPQ^6Z~ zTUF1YcdMwm@ZHm2-+QbXe{bFoGN9~%5v1SrcxdllP)4sX6~fYiG<8sMrt6-e!-}Qf zCtp1v)JnXLF79I{IVdSB_NrbmtQOI*I`sO(FTmfw{Lznogs#ti?#b+DKUev)Z~yLd zV}44S+qVYtt(V$O@+8rmH>N75J_MS#T}klQagZ>3jk8S>z?Zl|VbDpPB4c_Kv$6}- ztuf(hO2XkO!Xu_WTsVDlHuQk#9f%VgSpdCGxwV=X{FX1|t6a(1R5h&f@M2hrEee=d zLFLSuPFDYW$4AwKQMM0G&WY^6zyXiZ}}fObU%rp z*HtNN%d(x7RGsk2-hUt2D8;ZTLlQX=qVGe2`gR`u3-tBW$5OwRdNTFfsV}6yp8CVo zcT#_v`d;ckrcy-|6Gr5T^&TgIn$W-^@(+zX4ybMrP;EOPtZ4~cT;c?veh!17kYBXP zlc6AzGfxV7asYwkA%jv?Xz7#%Fo91*Twk2DcJCV}b^@vt-^JRrL%P;Mi3J;5VsIe#OA{YJtgLHZj`*-*2ZErd3o z6CBaai5Z+F=?G$$Ws!ga)CiQUjZoTl86<%QjcyiRd=-8y5WHKV|rwx&s(8MdR|_0d(!m}~Iedx^4n zZV^zx+oUyJ)8}ptW57 zl6Y}`5IY?dR7hBl0ESQxI!LP3R|LOL!P}B8)hHQ2j&@iD#Dzy$_7Z=durro?>-)~x zg*`tg6?g4sYFO0-PT;+CKJ5uS$EPcE$Fc&;3vSxb!y6W+4;NX}7dQ#pDLlBCM!PMP zTizKc`44l`ThHfj`>6Ddr&tZ`Lr}L!s!U)g%nrN+7c8nqMVL=p-S@qDp9vW z2#fp++o07Y;02LGu?vWf6Z}+E(bbzqo9HHi6B(HmJcBJ9XvJ3-bUko+QYeRK%PKT9 zD3u^bRAkt6D2-X}q4hAVRhfH`xiPm`y-*~|`t9d#U#AlkZ2h5oZwHjw{`{XCzTsn}+Wz*1qWCsUIbHm=rOfHu>*&9|D9|;Vr zl&RRST1?(!G8U&otuBDRIYT`*Keg!V0l^ol5^Pxtr5GfLicD(HJ@33{51o|8c-%1A z`ufTG$@kA1y{_K(h227aPq_Pb=uOY>86OMt2{icfne+9NjpJ9}c;i`FFBtcSy9-(9 zd1;Og#lt3kz#4tRWR!jptOv^TwiD8xwTKgkbmr9yMnT;JRzHoSE>#gLV zgT3BCj@kMkob=;*{XnDf{+YYS^R2(D*XetI2HMI~DIfHSBNPpZTF412V?xwM5uPUr zPC~MiRDuwV6?wjqkb{z*f=VX?xp6`7~A>%}%99 z96s>`!{s#}%n`}2@Pq-wu|$qxd939t=q7CImM;6EUl*ccq$@09c$3ovcI(k-mxSC# zXgOSOWqrwJA8f4|N=?E%Bb0SR^$)f)a|j*#0K=sfOJEr(*j>u{YGWa*fO%DOE3*r@ zR?a%6C}>rFuDd#2u`y^Ec{x|KmVb|_ut;`50|_}kFLFC=Ao9-3FBf@2hQQa*TsLYY zh9MSW98jkeA!Z`ZtBah!TmPj4ue4iaIld$Er5^uhXExz|&5HcyEj*s(xR(s#ydZEV zN1PzVmrKw6-s@rE-p@+{_48~&U3`$*X4M@$@@uG9O&%qvzvMYSjxsZ%ydm(+9)xCC zLD*0*k{&q?z4nHRuY50-HwFH$nVBQ1#J}+nFKH)#{3%{ifBi*O+UWyllUNsmqX$xi z7(#*9N9VWJ|LRD&g9Wu+JzPj|$zOc$X88l*{Ir;!|BSNl2JDsk3G+E&+k6iSexUxl{ZDBJC-pGe|#Qd@AGPO=GN=rR&o$t7e}ht?R;ZwY<) z}-8)pXfYJDs9G}5!--8mwIq3pi`W&c#lg|Z)|_LI1Y zcn%YWp)t;JK!f9j*cZ0JN#NfZYwyWXG}WKHxL6>}MI#Dp5Kx3loPh7FCMcutV9yFN zNvaZHlKD%4qv5f?e9bk8-`QdbgDh*Q*2ePk z2FzITrR#q;8vSsmKgYD{Hf-lfk}o;3uvDpAJ2&K)Cq7}Oht7fIiKr)L$78+BgAw2s z9t`0IpS82so<4mo%y`1s&ElWfvi0Tnpxrxn=iI3!tmn3 zdasY-A?0tQ95BRIje-iU4tr}1&2c4HB0m+*hRQ_R)e@l%Ay5KIUOORh{LMg|>SpqJ zUfqAsfax>%a$dxkM6>8R$|!t+8St24Hu1V%AQWAaFd}eLdC?G<6$A#$V_uraDpz|8 zr}BKu(GC7D?bk5ayqx&w+|xHsF`^&`X2bbKLKG+8rn{DbGn$`9Zxk3b^Sx~Ldw*ct zzj3GjYz^m1iB}09dhyx*Xh7R&9R+OJGrlK=pCoMT{QU|;~^PPg6L z;`wd9GH^37fWYA({{RC6Q^Wr+ z|KBsUG5|%80b?})x$6h%0001ZoRw59PXsX#-LArr@DoV*BQ-b#{{cf#;J{U(PZPq2 zM}RvFS$P71M4kk7D5j>IT{FfKXN=4KKG_&02F?5Up*U%uV|c_0CT7C*bkFPjk0F?XvqS5B z%DZbIvT_N7w=(SPK=$>e#`SRWb&pF1;k(xCS>?&B|dENYBgGaYkU+P_G8!{TE< z?M+RNqSN4xXnvr7k>v|bV(B@?xCdtbtH9lldi}2MEBtXW*GS1>sCuZA93w)IT00000-~mhlumRcvz5?(AYy_kQI0d2x z90v9X5C}2|o(UKU_zI*7_6u4Is0+{x8Vw>2Mh<2U&JQLJf)A(=BoMF=$`Lpbt`bfX zauT!?7886Esub=Pv=?j_%ovs#9vZS6q8wrz-W?_#ZXM1Y_#W6FCLeSlj3DYE!XgqP zkRtLUTqB?)2qbDG)FnP93?{@UEGMWZ(kJpLA}U5IbSkzhHY=tp$SedbL@eSh5-m0@ zm@W`5pf4UTMlbd-Br%pUE;52LwleNCq&0>$;5HsMG&YQ)d|a8~wLmRJZ_a9Gw^WLkn-OkOZvz+X~dx?mDu&|v&x7Glt22xCrTfMf_{ zie&s{US>{a=4T#fZfGcKDr%Z)#BDxrSZ|JS5^y+h_Hi(AZgKu|Ky!w3qI1%8P;`=X zv~=QiignO-8g{mKV0iF(CV8-W(tAXEsD5^S&VK%XNP+Z%euDOceuON9OoXU~5{0CP zGKbiRc!{uzB#MNJ%!@vYu8bCpa*U*m^o?kZzK#BlT8_kzo{-RyT9NXSIFhoHK$FUp zXq2Lr9F>}t?3OB)w3h6bo|!0_pqdPtfSUT7c$==A;+-~~c%7=A2A+(c4xfUc2%wOm zDxuJ#bfbKu*rZUT(4_*UHl?~WG_QEDGO&uU(6IcmSh1$D=&~}hQnK{3mb4PJkhS)<9=4{pB)BHHcDS^;1i4VT z$huy-e7f?xn7k6aqP-%$)V@T%V!sT)Y{2xvj=|W%D#D7xB*SpSsKdy^^27$jF2ugY z5XET4uEu(JoMT{QU|_6f{LG-v00K-v%msuD4FAD=1^_U%0tmiYTPCkV$7P*v=eu(0SVa>4UuZ^S8wfh^uf9?!g7P0C6qew3lKc$~nseB}g>W9{xD+lh-v}2`!9ci#GlarrT;pE2focF!WCYHbJ$lU;XIn^NVvd!D_q2hdJrz5p&o_H=&Kju3aYtkCyp$&mO70? z{gKI~w(+7-+SB8C;F&LH^qXN{n{*mS-zKCe2#S7vCAiAv%Z=!Gh4j5*jJ%ke}cA1edQi3_PBX*zd7B#vB1V z<_~-HZ<~EqhW+WPA3_;QoZ_Z;^Q@YO0001ZoOM?Rl;p$_y{es&ChY9) z9cM5YFc&!FkpgPQjgR-l3Ld-O*ou$&N=6tbIv*EoO8}O|JLj* zix1D+ovL3WwW_PDewDWIw)v;M?OH!{6)`PQi`wLoPaWz~kNUJs16rX~TBGf>gZ81F zbRF84_M_|4{&WCcj}D}R=wP}&9YTlF4d^hsAstRf(2;Z_x-lI^H=&~`pkwG*+C?{| z3(#7dH_9;9z+kOhtNamVf1i%1U-@-MUSS( z&|~Rw^muv#J&~S7Po}5PQ|W2+bb1Colb%J-rsvRe>3Q^gdI7zVUPLdZm(WY;W%P1- z1-+79MX#pU&}->+^m=*&y^-ETZ>G13#Hm`T%{9K13g; zkI+ZyWAt(Q1bvb|MW3e6&}Zp$^m+OMeUZLIU#73nSLti?b@~Qq>3j5j z`T_lrendZ}pU_X~XY_OW1^tqKMZc!s&~NE?^n3aP{gM7ef2P0CU+Hi3clrnYlm12j zrvLCZCT3pZ7Pr}BpF7;;9`|{f2fV_oyvEyk2k*l>`8vEW@5k5W{rLdC9v{dD@xgq3 zK7O!YpU)TYg?uNzGv9^p$`|q7_+q|< zFXg-QWqdhb!B_GL!5Rav?B3lu|p~{q~WR=QX`XWm-U{B;?k1m2z z%)Ge@;jZ&V5gV=It|$_jWy)3qXl51}DJnI_0!311!VE-N2DZ`$57)N4iQ3SlaTso4 z^>(B6gq`KNtc)7@qK=)<%c8DyY2;8%rSZjBi9$|2Co8=qCbkp8lSt&{N+?rNL^80u zYhk3n0lT5fb+|603R)G`(MVQ4v`DL>1v%@6nTSR~rDU(sLTQXM>LigS2>lJMA7-_z zw64-1>~88yVHK@~wb6Kn%;Xe%s<2Kyvj~ca?I4PRt3&8FNKTiXT^IOx8t39cUynk!NG@z8O(aa*1;TBm$ed;ot5Uj!$I6OcBnx+$j-?l+@JjZgOxLlE zM7B_KRi(>~>P}t_;T0|~Wzm6DvQ%;fSyCWiu^h`xmmXjxv=@~KeYVfygo8-uxh`xF z&i38QRz!iUuhqO>?!7`0U5hQ=Z!cRJ2O_KXzP60_ew2~9n(lq66$f97EiW@wBteK;NQOq%#!4^NQCf#ijHDUFMhvUt zHtt!CjS53Y0Q1`DEU=FnE<-)_VpAibym%&%?L8?>HVc)BZA*q?){=1|yGZXG*`-Yj zsjb^GN1=E!FO`v=EXK+RPnry6-*FUTWSzHUWoOH-C}LH~*xIZ&6p;+I9tFc4n`#br zl3)?Dx@p>QbAkOK9x~L^RY+R}*f%N@0q$?Xy+&`g?F|vtk?BHUb10dmVK!SEB8vkt zkrq|qZr*+k!!Q%c@>WX&9ADaCsJfc~%b05{v%J;N0jLoe*&Dh;X?C$PG}7fpj4x!8 z?_g+Se^_S`F5aF9unrbS#+G#m&sR4s2nz_gm&ht8-LY2PBncvAqD*p<^l-Ktky?W4 zAQHg&G}ut*KYDZ2g%}wzl7%y5B6I>|;U}4bZ%Mn6UZSxF*-x~Nk=L;elJ2Iy3@t$x zA$`WpB@UFCm<=}d8aM3NisnA_x0n_ePehi<%A2E3Vo*fjwHA~ykSg7ww-ZwrRST`8 z+>r{G*+C&Eo2zay_2#+}#i*64(hgGG9*7{78A!REYP7RXs!b89Eb~%btqW(Z_v~q> zRi2&bBSf~;RZHb@*j0tC1U$*ND@UjWP5^nFAu`5SdYWom^;K0D5=5md>CN@lx)_Vz zI?{cflm5CaMp&x7u5pImy4HCny6X$~dEIu_?NG&WCcTkJ5C(rFXQ4nfLq>5i7$K3Z z;{fb()Zc=g2+VVm)yRdU=eQAQw}3>*q2?TeBTV zRp&wO&6PHUsQ_eEm-sOeC2FRdtH|hP5CKzn@ZU5gFIRi&LbY-oPd(77G}AGL5 zklK2M%EQd87Vcn*SO<23W}fA3pG+3 zff`)HxU92yvkE&JEfM{;@|>dLHiQuaT~>&mqj@;Aq^)X~h}8*Q_w6EVJ@DvI#(pU( zBN3X7R*jn-Q59C}dm1((xo*V}y`h3HB zTVX1y!4_DSy{l2bY;sqEAJ$*pI_P#D#+ zI8@I@X{M$S=y!2{z6x3mlHbi|5z^Ol3c8e)W~?wLS74E43+||_D#AJ&b!@83i6a|} zIzU^jRaW^{xxs7NvY^(E9nAy?)wZFOvS*ulGDVMXH!2Ju)@D{%u}Ed-ZICz$S>1#i z4R3*aR@aznT|M}=lwu@G-;oohwf_84TcS6vH12|#a1R>j26U6-Fw>JB;A~#x%g9!- zV21^m<)O~n4S-2COq$oAB5Vyj)|ro%f%WDJuE9jE5qgAo2LQ@Y)+Hv}c}MDRG4*YY z1T6Ig6Q&0pqi)wdr`gL&g;BzBt7{#F>@45__3Y-?U?Nqh{pLL+(%nWXo5?k}g&Ie3 zNz-JjhYG_e(s%CRJw{n=28|D9kydl$RSiX~IN^wN;{{;@wyRmGk8fcdGwm8IQ1wAS zMkelrXFloxlol`5Htf{a)sB1uV5(x84MUK{jhQ+XqlnRjf{s4Yqk}nrFxYwH+5Q9$yYWf{6Mv#W zhZDOr!Q4C1*${6D$c9i8Dhg2`VG|0MmH%j3gosm z#e~?Ox&e9aM9b;RGdJ&s$OaHudnV9ech1lxPew8T0RR910Q!&s3jhEB0me800Qx-u0RR9100000000000000000000 z0000SR0dW6vVIDNnRJBTQ~@>uBm;|V3x#+91Rw>5DhH!aTUuptq}chF8ceq#01qlv z+cx0W3Z|Pol-nVw+x{8Pj0PJA5ZKnq+5i9l$;l)Rz1(w2o>x$+x^9E0hfG$)Kt{M3 zNU#P?50=8b6s#u0%$tdwJo!;FF+ofi_s2QDrjixfw8<4G+%91*KahDirqd*%;drOX zR+qXAY136DBea<|^+sHL!4qzitGucEq<1aZMC*q*f~m9H-d6b0ZNDCp6?gLKbi`yf z!I@kxDp^4im57VDV-JVyuZaJ6hgHRr4UB7q8pb^u+#W+NBv9FfKPRv5_ldr>Uf=J> z{P*!9b8C%xA7^?Nuf17d+prgnj(Xwyr@#N))#OZK#G&jF0Ia;KKKCbv0O-{Fda~0| z{G_r{?lXw##3Yr5=hx=@7ZqG2cf2MX4i0N>IN~4mrP~}~<9iHEB{yF!YbMwW$@4lj6k|M82oxY+(kr2qnc>UH`*M|!Js;IAZIz_^2vjonH764z9>HU-eeSpSFRUu`|6; zg!#gVoS*PBa>Gsqat#Et?Csq{AU}VSOWv<7E!zYj)GWf73B3#e5SXDG?EbP^2j_)6 z;vjxLm-?^!vXh#f?!Ds~LtiuFv7Mv{Nr{uTf;Rrt_QCGsVl&!~wg&`;fM_H`USfL; zfu=xt{2lxMFLVC?IqS~O`G2ty+Ip zr>XAO{t*)fh?vW?T8?!dW!zIP@)}D@h|AUnN{{W>AP-+98v<*<|F$hU50F+t) zfmL`23!ct8{Ml;`BE5GD&a+xk{Xi zNR>E02aXis%K+(>v{shE;|T89N#8PTYdmZ@TeJ9*t#Ep1OH)JztVlK4JvDblq2S#^ zH3`{GQV{`UcavPd?N?Oat*Wo5vn|!LIh!<&_$5dPK|+u|{ll?`v8kYY)W%T(#RkP% zhMS953}e%k+oN{Z7TTCth=GF6=Q5oAKiM<;+lg*FYbTwy4irKXLi?W#0?-W%HJP4$ z;{4?_u3B^aAnh4|{gDFvtW?#OU0X1@)__4}rGN<#fKlO+(9il90OjTTI+n~8qh5Lsj!90>%B^hOsdr&>N54)VMC}(}`o`PeUf(_ZfS{JY6Vv z?`_)<%ly3G+@WVyV|$mSsnVU+UC>?L`t8(zN1f*VIq9S6f41o|V5#*s+qK=Cn%$O zfBd7{Usg3gQHNCx!-j;T8rLX#_!;N2m6)4I>+N!ak^b#Cr06JGhg=_BCGM5$0VZQsuVo9-$a@cQ)CK5nB5HmwJ z=Zavf@!q;n2?h9Qq~3aQTve0p;=+0A4FBHRt~IJSTFqtWSunU`L9^@ji*nBkA8U(ywpCu0*)B|u2R>X3q3o}E z0HE))cbbZp{1ru^rGS0VvWFMYa)mR|@fhDe!Jo3-3WS@IKfY-jDR~0k{o52nWH3p##82 zU&qcFThstMWld5I2M+pP}m$Ug>51kwFSzD?GOdF zhu>ibq=Vg2I_!;9urI2F{orRf5Y@xMq1F%}5*&(%a2N`J!%-j{0h_{+uq7M?e}kjp zPjC!u1INPsa5@ZvGhiT`iA-=7GQxSt1I~vn-~!|Z-$7aMU6>EwgNNWp2nRogUEn8h z8vGPaho8aK@N;B^Um!UA5*5JTksAJiBH^E?3H}QK|AUKRO^{kGU>d9ovRee02p7Y2 zxCCY(dhj%&4^JT`a0gNkdH~W0#v_ekA<`5!L7KraNOO1wX@P`DOC&;CAqmnN$&q33 zFJw3>LdKwEWIVisOh9$WMEDh%1V15@VNYZpOhx9yWMm_(k8Flhku7ivvK56P+u#Re zJA9AqfRmA(QR*%rHnJOLBYR*!WH0=J?1S5p1F#4=2m<6VbOq!*+=N^}8OTK#j)-t1 zB1Z&70Xrb(umG`uPY}yMTPvUh#2NvJ4Sa;yA|B!fV-R;3jd;R2h!?6tywPOD2X;jw z;Cv(!&O>5QDiVuQkT|48;*l$ofHX)V`~yjb1CSKdjHDtvk_Hzc>2Nrrgcp%(2#H*W zr*@K2;FB+45 zXhQa*DLH@^HoK+a=OE?{6T zVOT^Aj~PbB9HU}^(Xqya*kM}iF(VF`8Ar^C6XwPR3*w4}al@jxV{tsNB%W9rFD#1> zR>c>q6M)SL#P$SXM?$bOp*WB*97;HjClV(Tg|msq`NZH{VsRmHxR`icN&+q?5m%Cg zt4YSqq{O(UB4X1KwPqlCnu&+ZByZD%U_?$=hnkV=sPw_*Z;io*u&v}7g@)E!16@DkL@dtT>khl1Yyu;t* zBmPezCFB#Om(Ns#e4(1;8`Uh|sTTP`waQPbb$(Ip@|)_AKUC-Zqq^rm)jLJhpp;O< zQ%a3Y88tdlqa68TZ3PO(+FE2r>7iJZK8iybAScQY#iNW-BFY3Mq3WSDRDG0*YJhT3 z4N)Pg5h_MCLlvmzs2bG*HKJOg22`ui*4BVYs5Wp2sx5qpY6oAV+QVK5#v%FY-b4Lw>0K$QLyL#h?a47eEaP zZ5<5Q9W?}=Kn)FgcNiirT>v;3wG^&Jt%5(G)*uAxIl`j8z}={?@E6o~Sc3Wi%TYgJ zDe4z2L;Z#os6Vg@^%qv6{=sV0e^`Ukz`7_ctb@|QdZ=R99#sO5pi1ElR2f2{$`K7! zfkM#KhyBqsfD_O(gcH#;f|JlRhI`O7f!EM9g&)y0gEnZIBN>_&$bqIMDo5iw+<*pR zcohx9@ID%i;R`esQGYWq5~Bqed7?KkvZ41d%0nMwREBCX?1YvfjB6#}VYD@Y*U{D- zK1bV>uV^Yj(*W)M;#KN*|JMEI?icgFEG>EX?&yX}|GQl(%`)KY6jsY?=(43{dgS%- z^_+fwHHYr$ZH+0?Go|O3>(Ep+>d6reaZSsH*?VVG<~YZfG1z9|6Ncz-Xjd?GmL^AX ze9CSHM71o2uuwto$&8Vgd@FbHR@AjgXVkq+;WbVN7{6JR5YBaX8&%&$N(|a^3{9!v zL4F#}FJBK?T>a)U!Q7>c2ajnFdQ2l{lD=3m^)#Ry`fl@3OnH8h?4G3Y*`UMpFXl0e z(HxEZAAHj$HcI75J4^rc@&p0XLQ|J|OnbYhf27Z3^+?q)S)+x@sK7nYr`(>-k5397qW~&<4Kl+d3N@| z#jC#}v0TIqvxrpYxTrN*jUbxhYJmJKi>iox9;6x^LG2hU>;_6eRClOHdvgwx_)T5+ zVX0fxmM-Pm3)lZc%$Xy@z~laOibVGrqUU%ap=NF?z1#ga#_=>gqw&hYX)6HPayHH^ z7k6!v)22%*RJdP8?@g^&tZnNkpqkQfyM%s z4?C833Joz#9~XslKL)f`fdst1+{p6eAe^?991muAj8Ur~ec(w5>}10u0ZPN)JBeSr za?PdtYw1h(ov6Kz;qN0B#Wdn#dA7Q05uALB=>4z@j*K2Q!*JvZc>vJ~QJE71!|^dR zFX!PYzF#=y$$Xp^)vuo*hPQf!b5RwOtUDL)b=%4#*OPM5^<5|B9#zza?cE%BGS;I5 z8nxZ1{9w9MV)8LMH{frwED)WXbzaYiYE8brl(hrSlIR zHG4lIQVJ9?-lv>O@!oC%{D03{?vn&_vu=)^dt!&TRh7=6m#<#~k4Ig_Wiyl|!-2az zJ{2iU%Tgk=AwYPXt3Ew@J!)?VCUrBecDYuHtkuCi?ERwxU2F-#{sH5;C$uB~9OLB) zu*sN{4av0Ra3Nlz*f5=BqFwK_ZwtW~CzliO0F>BiNB|XgB z@hI>qjp*m(UhuBN9%rw;8o|oq7Y%;R<0;SRA#epFeKE{5t-LWG!j>YNIpSG8^UsW;jP} zqD9oA0MEo}{Hh%TDGq|qEk~15j%M*wxa{x^spBuY82txi18-v5r=D}w_3fx@n25-| zC@mcw$`){4cAE(NL+j(L6NsX$uX&NGq2??H60Cb}=awHWW7~7nZo9z7IN&Yh*o$o) zahkf1(HO-8%%U&lOXc*!S)%q`^;uRSG4G=d6%AA91Z<(tr^}D*x0s>bJy+h=BPG|J zJ)fK$yAUsBy~)9gx7Qso`fyh+I9ti@f!ewDKyuxjoa2!fV5F3reDpVM3WI~m+T3JY zN8_01WQmzPku4C9E;Fr*5MRBuI+-6UJ1+!TidQb&p456rW0qAlN<3PI3R|}^B zPZZ`BNDWh*pMx5&bcVJ+QDuHqIM+eG?oN531=X8pebA z!6o~v%$~c&Twb4)#yjV#TByoEEc1J0jjmOQwjTaaKbp$h_(6V9{rM=VoLXPD(XJlW_gZQC^PEaj27xB%3`pyug!Yl>N%#y zFSkUH=Z5(#RSxf3H_oN~I~dOoE?d7qKa0wZK5ItxD17?t@ySSDhj*_|{4;jG=3K_E zkN4h9kY@^T*FGD4@IR@K3-8*j3(DsY5W_xu6p!NL;uGz-lA{30rBm@Db}W6+wIn8Z z5Fic2;uRbP_UDK0qj&zB2c!G1!HB(I$g;b=QToR$YMp|;``e|}OdKr~-p=|FEtIUN z8jh_?B{L-<=Qm0_^&YImQy&^Czna22MC(J3cxyyB=vwQa`lXASfh|=)W`G&H zc+b}o-3J4eC{oJRUKe2SR=bbAkiCXX6;1|_YI&lKsGAML2Az{eq-RlkwFNH{K9sJ9 zR(!}X5b)0Z+-CBVsGkYW>{|IyvpD+d)eK(vEC7^N5KTyp>zmzVx$d(>su2xC0~`)H z{c^)~PUURH+dJE}MLEj96n?1*t+fas%k68YXw@Dn>i4_4v1?bqF9RA?L`}`cSo*+3 zMhADU>rqs;GUMV%dShHRybRa+p@?~3`s=>oq`ZDX$G-7W$fA(xH12Vje$ox}flQ{m zeU8&hBOP&|Li0uXQOfabnYfR!hBNtR)MRm5*GV2;%)oY-3z7%}m|m?1I21Y)ooT5f zr~xy`2cer$;zr{bnpF0rcMfLhkzM_-G_#U>-!nPlyj!po26cqfVr<4G=!i=7ZPN4L zYp7{HA#Nw1fl6>|Avbd$BqL>o^6{GH>zsCq8?HpelDFfaKl#(z4`XO9&n;CwN`U_w zm}osGcK@d0BXUeAKBh))9~|y>VBlmA?X-+71nu3f^W50%_>aVYA|uM{G~#?(n6SN( zkO2%D&A#2g5Hn~o@r$P-$KN*W4NbJV?^9zRMIRO^_VKX^DYrz`pL(qC43ErAFRz|` z+P^6qyxQ4XnC!mJRaAE7IG#ACr#tT?Bcw<`@1`=g%_j+bN~qE#O5|7~9K}KLpg77I z{?nydMxE01(PkBosEo36jZzg1QYrN2r&zLKFA~13uBO z0I-Aru6ZTbQPj@+ayds1#0ZY-Kr|nlh$vkFOljgh75F;H%D0k`5m5RhIu;ixJg5&u zh_p|Z4r(l<0AR}}It|B1E)O%l_Mhu|5Tqm9M~)Ij&ZVMeY3=bJo?rAY?lAUt#ItWF zE9RqXy*Tnize>I1=JMssn~VDkiR~>ei0nR8^V_HY>+krrDc!^!++*J>t1I}HbG*rw z+aHuS|M15Do@Z{c@#D2u>Cp1V8SC}7?~+`s96Y|L-oe8`s z{lI)F`QCd@|7JbXCHYI=Qj@^e;@<2eDRK#iz|4?5a)%FyB4+(K`FVw?U*o4Ui}mA6 zBeLN<(S7}Dav_$z@x;xa;I3}M^U_rZ@eKMx?k880a326-iXq@REOcYgiF?CVj>*&v z5Ogv~(8_voCvDW5x|{U#HopdnCyCDsVV|Vh)>-m69ikS7q=51HXZgG*n5$>LPLv5q zK_z+&83BpsBfRJF75v-y+%p?0=u^UoHEnNNEv3O;(HuMyXT>tR&3nf!MG^J~bmbOAjgp$j#8>oWCafWoVA$ zqxxg%MH90Uhde>OiMDGI8M1A09#R5T} z7I`zXlVW#o59Cqw@UT>lQv|ZxP(~OM7*@{A(phu1=x%);z2@w^zaLS2JsU z9n)0ZnesL0wchr5OZ_TkoU;yGo(S@@QZeeKcxBA%uA!@>MrL(T{O6i&jOc#s6;^U; zf%H6EqojPmWj*|6Q-5}nOC^byG-M)FjDA)ja!P&XR8+ZrD!H!VDYgous}>ZA;cy)? z{^X^4oi5r#C;L=~t0xB6aQT-4CNzGzS>(`Msg0>F-sokuq87P1-uX#|oJ!rMz(#n( z=EJZgu$?s3^Sa0j3Fk^sCazZo4mb}Lih3dWLlGlOVxITMQX3m`U^_lCNyYcq^*&Cey z_zrn%@5Mh=EXI}Jys)xeUj$?mV#|r+jN0l87!JTQAEtm~dZ4#@aB8(wS7V>%Zr4|{ zb<+U){`T{9G0O-z0v$g;P`C9ERli;ZvM){JB!zFva0HcisL>d2s3`En6av1N;&|vZ zw3C^N?nZuw0#lmpEL9Qj5!HG#pECjMF77av*iRr=DdZwA_)lXFz%u>Z{a%1W+;Fzm z3-8C~o&ZMvC(>NY-5wbU`QshIdA8F59)h9zrwFwMFzi8cYU}^9LMaH-!ck=bW{G$a z14E`kTLvwW(%D4@rG2`R)P-Wi_yVAWB#AufOsaXQfwh5b=#vgTt!&wVy7oAvQwNq@ zUCTW zQVTDFq+Bl44Zl$(FMjz4^Bpxt{YM4SKPyvN^?9-vMaM&sHVHFNF z<(rFRzZx@Ev5+OwTj)Q+@wgW z_hzPDXbPL!Bs~@FR05vfoS{qy^v$KUF^eNko9|-{8KqIhtGdMp~Hg@}*b>2nTM@_vBQ+IXx`(&9Z@wwB{nZ|EB*rq_NQv0 z7B!x{naP#ivA`ya;S)PiOym=(4m2Y2({fHe<_e|( z7{7%wpTC9L+?(*VDE;&iL(_$-XxW|&^LF-suekAB7a^MIk;DwGWu`fG7_D#=YP^Et z0rTLI0e>KTD#*ljWjO6>XQoN0aR-(DX`u&qVso>BDxhImk{`->la)V~nr_5OaMFyL zP~`Dc9BEfj&lfd|C2Pzwg#F<#;fF{_@W5K60zm3`2_i9`zl0{(@xa^`0wo;hC{1Z- zZV#TbZb|zBge>b*o3dUwzPDA=oH3*~AM{U!T)IrV>AEBt%51mvMCNJ2Od)jt>K1B- z_^?uwxf?zTBs!irZJ~*B<>>3X|3CTa&i-ciH_4vNT0dLsV&NX?Zhg(~yL;`+>QBwL zW3sN8{Az~$r(cO&Da03wbw7IV9sX>RbGkh`Ngc>;;BsN9rRgw76((Tv;Unqd91XC0 zLHRMOWd0-T;8CvQox0$Nb4Ne(KDxZcAWgrJ554!J+u~Mtk|(o!?9rq)KLI+V_G0?) z&x@2n+WL;ORjB67%n5l=B(}I_A3^KiJ`7sD%;Wd%%!o`?sQUd+eEzD#X|9y&^`5_L z@@8teP;!-`6YF!)(U+;B>hvU*)+SZ?LqxlMcG#@qpQP8?mjRq$UFdr9<5Ol;a48v= z`>$LUQi($%=WzC2y;e?}jb>zCblShb*kj}_a&htLk4o21#)aoom`+37|Fw*qnK;&C zFhw(EqK~k&)4E1iUOv_nvR0^KP5W^b8)cUz0T#}Piv>^IP$_)^r!UFJ;b}FK=Th-J zcA{8{K7fmGm3cxCXbn8h_C=ZtD@X+A#rM|}38!zT+k*#IIonKWGnc70agtl#ZZ6Jvxl zfMB)Jd`Mt>VtCt5M}b0i_`t-*K*W|POU|=Q1b3-u4IgualQ!k>u;xhE)(DonVodk> z=`CXtEVRvVCgQLJiPfE!K_P(*!L;uK14k@b>ZAifwth!6OKwnOIP{frKelR;dK{*I z`cY_Bo<0YLOI zda_(LSNJnUQUtgsQX}o+HR7)u-gm7il8Jx!)qqL!0 z&VA?j<>ZhHTwz=LAB(o|dU0XLK(O2A@lG4tQbpBPIGh>2u-J0(OyLy+bnC(1Pdf!H z!Vtu}YK`qveH@|O)0YNeWyN^HnybJ$iPcit( zP9t3$&BuQJ(H#{kq0;^f*0QwSaF$4fowF|93`?8^+Y4FB&Z_1}k0jKKfF(`SCncOh z=s~N?6L7uGX~xw@>aU*0+x@40n@0Yi@6uzI;MhnsInZ$l{b2G$GkAmd7eYh&HnqIl zLFJU1M41ftyG*s62Iz>#oj~J_;wC<-yd6_QU`)#Z+7dNR_$HS~(fyn<#Fx9AA}5jO zX^w{?H5r_4s=&(dXQ}=f6bUh#(smCZi@ln&+(-wy&lUicz^avNX8RkV*8HvI(pC=& z5Oja(XWZKz`7kHWrKGK&o!gDmDs+|~u$qR2Qhlm__v%!xeCyr39ewyH`EKf%eObdx zF-YA!qNSRRxVi(#p4@fm{t%7lB3K}$h*FD&9f-^Un+J{7!Zz!LFBj_1Gyog2oU{pW zD^UMpcTVcmZ+r{HGiUd_;So`9J}>Z#0jBA+l&T4Wnb7Cqw5-Wh*C}lk$nLPZHOCY| z^j=X~L~=B016wl;J@CM80C?&lk*_N?V9`)R^=ZiPr(Re9+d$R?#6Ft#a90jc(hXt? zK(8}TXC-U9%r~s$N>HU6Pak5AQVnKon@O-Oy@*8+JnB?h*l^M}P-l&rFhFD@!kZvc z&o7&a6(u|)#1?4Mt$~)s4M4OD&TsV~^=C_;L&4qfqj!|!Ky2aRS25~k2$9p9-i0~9{Eu$Jir}Jkr9e$iRfk4qVj(&Hmx_4c9hjJ`xahWnBt%G zX3i#-s67(oRntWj`_r;rA`M^J`Q&Rw#uD2u7hIm%ELBSGt!?jsdBk)+_9_#(e|HVK zo%I}5RGev$C!1=v^}t8+YfIm$48K zJXhMC|1__vm?gjmcY18mPH(F)Ba}lp4;^CJw{Zsyd%G_dD9oVuEADJn-hC|d(By58 zH(lL1z<4P-Zy(}ZzoAt9i}d>P23+oApYI1Fm*jfQ9F3r+bT z`1gGIp-rlI39($uab*Rda)#B1%~Upjr#6HpnV$stKLaf%*8SCH0i4~JRbg!!T_V8gD@m!ibI?Qj?=jI$fUIm#40i`O#DP_6o<5wp)EJtd`&y@<*KAKyWu4WLwWRv^=-^e86wvxQMDq7O*ulmQm>29 z7_{BEb`6nbUC(d)36^e}PDg_<`6PVNJd;g_Mtsw?o8Ke8VW;ZrMu(NN&4|PPNux=e zg&)U98fp*JhOJB_sc+O1ilzz@#5A>w5JQ@A-=!Vf(;!- zEfFDI)2`->6HU>XSDNn)BF=>qajEc{8fC%O5S;@5e}eP%C}7;Q1j2w_$udXT0a?_-?g$q3Sw5 zp%Y=y-F|j*`9#Dr$`M{P@n$_hnHVT};fS?Tl%rz2EdR88udD4aYQa`=f5H9M`xkWu#DLcj7V}VMyA<{C~g~5=EX8 zR+m*yOq%MxO71DKmi>O1DV~ny2rO6-vxQ&)J!jwM#ZEb-mkC1*8;DCN-R=}hG!Mv3VS9nB|kEki!#U9tV^*G zfAlRR)1t6M(ZvPR5SR}zIst&_lp1O=s6g|(n*>Qk0df&K*haEq738RN0q=nXWgcb9 z)~O%Fyrdb%Hh2f0M+--glFJ+j1g;Xc2u`r!hDVA6Q{+~2OiOG;mzN)O=3S|39a_Tv zMORW|v(lTVM6iqUJDC};NLDet8x`kM(QrKBV&(Ie=U-p2KI1jZ=OH3j)@}D@-Ty?k zeOJZ=9o2N5TTSy~8=B=PUk6Va4rReTI+ou1>kZ?hixuNN>FVg8ubLlRuDWj=Zn{rZ zj(-cDX!}pT*0w*sP`BR~F;dQ@n)U9rn)m9lmiM?Hf((~gB_wA;O$){)s8H(;vi(zm z=;7NClTO+f8PMi1kK}lJ96d=M*N@}{O<6JyHayQ(~2xv`Mgt9IkNcVBsW{^seMvyKnl?%V47srIpvijAVS z*^LOqRV-ves!$|gYl82y5Uk=9D>+hD$3b-XLW-(pVbNMd$F~plAm&6w@v-gt3@& z7*Sb^PY;b)nsahUr~fkRT|GNv8O&+yUD}#^@p(1#sJ0%Xvm}u`dYgtVUB_p<`cx^N z9dMWp;<6f;>1wvK{2*PIb2+jwS6CSB&_tVJT7)Aw?rC5D1R4 zw2p>-ShZD)qpjRc(QglJ|Da}(f#;$tM`3dzeBlDN2#n9^g{~W}klr&`epSI35DYp~ z$nGI`7D|U4&lissd9nC2-&)=I#d;jpEWk+9g;K%+1m?EKnBUjNw*O#QVItBrHvurK zVaZU{!ExmpRw=vx3Ld=}7ZH(>;V!ItVTE&0t)@QmQtJRv8LmO(B(EALT?-0Mk(sU8 zp4LmWDIl`?k)W=r{BZ92v5=PsEtQyfE;}+2n=A~t2@&)0E*m&U-adI{oU^OCmM%Bl zaHxj97=dgUged^XtDTwIRmW}1D(|4+CYx4&i6NZCNi#HsY26?==_m;g}hsi30u=aQujojhDY_CJ8 z4ZhTh1ra05=Z{Szao~v`BHMysr&Nv!u`-KN(E!ODA`Y+wJ?5zem~3pRn9I87ktzJK zP3l>yQ$^*7@tfm9oF13HEZ!(eC6qZ9I8|J5#4V|eet*kbg6}K7;;XbS6ooqB>~-)5 zRztiv^m-+rfJPIIC1w*j$^BS5l_S|>F07R`vf*OED-l$hciG$3l*C z4|Ny%(cBg0dLYxC`_vjy628}o&5@O~5UX6qVN^*b>3NczOuG<8?93JbhzJd)iSB3v z07Vua2J{qRAv#!?rv9r0r6fypOl_8HaW{?oqHzc!t(a#S{LDRt4tO*+5Ci}iP2qZ6@Qong$>^!w05(*r zmgF<+Hw~v`$Y?Rd;1Eoegq&0{f9HNwVU`4Ds5CVgl}nx%99yM}>B-Z7_SQNt5Tpd( zVHBOW$GO9tO2CK_kjM`rZ&5vkineN3vFZ$a48Ul!+$_%cESYm9>>9GS zVh(*leK*M88J{g!iNiYwFDF)AMMm^Q2rT+?iUTj+T;BL;Ddi89va27L4<$ABwHfl( z$V3uWhHVn_##(hFpX^#En}W-~Jioq``{VM#;_AZH(#C%EnCMQX%8+WWI$+4-7!{9- z$Hgaw$6g-HDv=zrfqv8@w)v&jeq?Kj?;6o+=IvO4h$@cOxW)O-G)>*+{pyQJQ7X%s zJB@ZV`D=BRi)-=vKg&1E)gm?S`&9pS-5>K_=SLrZhkSr@WQrN$!W}BG^pckt!^?=g zs3*jB+sHGYF+dJej@HxsF&_a?QG2;2Jk}oBuRmkVCWEn3mpnXk)mkZ~F9ffkP4NMt z$168hDD0Bk)F!p20=|mkqvz-WR?GXq13oUz#sv+XB%>^+8`z}kjzj)>MmBgWKe#ty zFF1$*HCn0@D@754c6yc@U+T20ro4b0djWz<7inE;%V4q7n?Fk|yQ>~gb0WgT-y6;Lsn8`wvX zH@(Ep6-3=~Gn*;PO!4D8fhiYf^|e)3W+Q$1t|!alJtDDRFGK~KmJyri@B)=9^vnvb zb8hoex6??05fvb=y;tkwaG(?xM>cmgO1MZ@O(%&UbW~x^E7$DB77n5S7Y`7G#%Kk8 z+iARfPr1xAbSM>(MxTjoM9q9qf(a&Zfsir>FU=8QBdv!K)>~~~^$FSW!78^>=u#Nj z6%^LH+qH7ymLh>b_7}Aj7ITVGht`S9d~#xM8DxoJ3V^ny8!ZsF4C`xjk_~{yU9AD1 zrkKbseZ(}VrPMI=CTp1FaYqtq8Ba;ZJ+8H+E=6esNX<~qS}Ja^Npb(m0rYuZRG1{X z3-17BR)yV4mJ5-r9b+i#+JNmV*f!mKORhxiF-ARtSpmS-2gVaRDs?;H+4P|#B~g<_ zYfOqxfjVr;V{b-QuGhk z5o@K0Z9g`$aX7&BVSJZ2L(SwJQMYpy(N1F}$Tv>|QF>G@QtAz8K^kYdeJ($->)kx@ zOY&J-a;BnG6rRSeJ5w`jZZ4%DBY0*u{YJC!m}9D(p*eXFt`n2s#SU+u>r9kN+hABV z>!7(}Ce{<``|gdU^&gq8N&5$!p<}y0iy9Fw4ma*v+`zsIk=a8-S7k8{aIWg6Nv za_k-joArKEQZcEVFbK?o3Dn^)Xr%h+H$;mWZJX{i+G2(6?`0!t$&GpGehz)V$v2op zw}U8_G8TdabJPD)=_OS}sXMbFJMXt}RbcvQBelH!A9N z8i-x0=B@_>W>#9Yo8{iN8&v8&7EZPo+pQiz1CKCEl1XqIN1LrBLo+q@@r)8ydK8%+ zFE2s0(xr}(h$A=m%kscW-fw#z*#DOPL{~ha8ylMgquTs4UwA;CcbLFZ`V)I~WqW>k zoV&kycV?Ap%MzQ(ARzv^ac8PW<++cT%NK)q)|YBptUf~t&H_%0^hzThFs;$oa6aBN z`QeKCfgI_J;`IlnW|(QLXi)@-X2o!3Vv^>ZrdQ+e-rox$#ML2}RFU4#)jNdw4+s!S!ugn?jivp%t)s>*e_!9=JaXLX;CrMz%s1Cr(?IKW#&B*m zo0>JBJ(v#eO)9(VI}0me7_JCUXy=yH?yhF4@PX?-<0dhblV>t;TtVhwB&_XF6~i0!oRyyn zrpM69W!pn;zfC~j0lVCFSIsJD{3$Pb=Zn9P=e9Tb)lS>l z0cgzcZAiqe)vd38i$6MJ+yBH^>s1DD_Mj3)<>n8DKXZ1CwZJ2$kd3PwDS9ePX81M$ zYd=`)rSUhXC^#0t&6ADN@7n;7(x+F`rO)WTvANYtQ7<1{n~twt^2*pjBl}EGHKpTbYra92^*CC&Yek1HgeP(Z5L3 zoH+SZ{r^Q3rX&g~6lxe_({fo^+(1^ZvTAz=Rt1MW5DBG0$Y)CpQ^>j(c?5r5jDi*) zZxE~1u)Vfj)GcN^$agp<`n_=mD$OVpR*6dLDQkoTx<$!Rx*kNb2m%5~3H0*5SU}-% zW(|8vBXM7La7M@8wbrTf!b3tg#6eoAS$`|BDRGN@Q@#a|7}Bx>0BI-7A5$Vh$J|{X zF!l&)`|TAeRjY)LXjCt}h_Jkv^{7<^$ag>^w1~jw{(i zH#yC>JOfQUa9WzB0al63HhaTeuoU{Qe4~78^(}I+HilA{{yP(mUq!@Qd04KxsXgbg z|8#C;7W;+^1^~Nzsb7pbM6bRyo88J&Ow46X}uInp8)FRib(WGx@$g9W)o)D3FiHvth+xE ztK|oBgROZDcbC-uI66q78jClDTxR-K`dmr;baktWS~T`-GRtzVR%V5&n}jxZ4kqij zPYyKZAHQ3z+>Z+|zcb87Q9rojIqRSyx_|dJf4EcL!O?}v;N1K0`Y_f=y&0wV9^Bfi ziR;QM0*gb_8f(d?hrtnq`pJ-e5YS6zGn6F~>^HO5Z z(va_oBYDi@W4#CfEw+5_8DnGn!f0|BNwAuQln*DaGnorb)ThD&FnPdVyj#T|J?2aKKSsbdED^ErBA9mGovAPr@*{10FJ)`T6 zX!gW!fJT35)eGcD#J_nvh*m1R0<0Iv1W|N|Nl$oWk;WngS}x4X7}3@{s*2%pK1Z-oO960xVthXRdcrq9 zpPZ0>E?dk0)7;=;J~5h|)ioNf!LScIgdo|E#_LfoVY5n5Obq>W9Y;xC`}sk!H-~p- zA8}sBf?5OSwYOTSu3tS!a^gc%>YOblxXlma_I7HiXQ$?oZ?x|s4{%*~S@`To5@5K{+6aW161JfV<*Sh6a_d;6@s zA@Z6*b{oD{3w`F;E7WDF4(yp>^_D6zs3O2-kpp!@mN;Q6=M!7-B%7LC* zRbY>gIv_eHD`^|bm~GjtJZv)k2kcDm>yg+FRD6S4BV{Kjs#^zE>iLuYOvDv^twfAsNyX(NUT;83+c@?PLrt4-jrbnt9CwEGa`&FL`FmO z(kSs^Xk{6g(CM|5>4X~ti@6xzD>HGQm;!al$SUvg1?OT&lS8(PQxxmpB-17$!qPly z@f$#Z_kY&3XPaeibH{|~cNOn=*z5|^X~uy}`;QeB4LY_n(^#H8((7|Ja~UKTSF>uW zxbMUOKS030hZ&)=S2JZI33ilGZ_i;LN2>Wik9LX{0Y;9J7Ve>)$uAbjlW*d#Yzu#s4S}kKQP)tslR4LjsWK@xhx}1NUsWn1RK^Xj8~_ebV5|fw zYLgZWNTq`qq)G*fvSmyuj4k+_#0MwJ6SjrgmP3z=p6AX(k2+1WEC_bW*Ljrjm7<8R zc-BehphdA6U}(f*&N3a_7iC#$7#K$rG1dA9SgK@axjnw&f31;rS-H9z(N9SnZwbB-GXzSC%KNJN%up-IL?5> zB2AgDt;XqJ3fHir>6(bPWOGh^KH&d8l7^NvG%kN7uuC>pqOPZ@kkN{?mK*+ov-vw^ zt5i?Z5tJ;$PC%S9W_^TBV31aAYwxzHLzHWj4@aq)SR!>7Du}K<*nq>k3RH>> zxn67gOnSOv1M8uW1>*lQTAj_Liw=Srb_Ns*ZP>e7_1I2F_wJYz4|1<%PmE7|jViW8 zOk!!;F8kB(?)+<1C7NVCl|P_VjzQkLJ;eW()Y(du;}luS9IArcG z*tAnlDuhUicv<)aYS=Z*7ZsH@EDATWXc$Ws)M?km2HoE^>UAKYh@DLFH-N7g2xnr> zF^SX6;U{u&D=HcjD_Yygye4iua&VN);aP?MP*j4|qbr~af}CvlY*O9tIX`$gmS$|O z_k7~=iMKxHhYswYzTRw3^k&9;X-+w@g|-}{N=dI2%?w2El^hX>-iu7MW#~wr>j3Q0 zRkL?y=-%V0gihMj{k&C+?W~tJbhom&y7xl)_0Na$ygKKqJR4^!(QkMacy={46RY_A z|7`NX6F+^bjPZ95^!(PJ2O#0Q%{p;RT_5NuG2ntq}Tj&vZZgdGqe6VBbtb3_=- zMF%)Qo#P2chH1hY0Pv!6uw7{T)dzYBT}VLxhvk&%J=P7*8J8p4FHVH(&vDm<35+$Hbv~WRqd@lMR{UR(CxPg z514~czvAK+ZAL59?&CeIm+rqy6O}eu2mi#<<_X+^lUuPPZt733*C&0vf52o3_lw*e z_JQG$Dig!VArR_zmD}*3xL&ib=bWPCFK!t6{MuON?{F*^50dKQOc((B@g^yc&3*K7 zap0Hp=DOOv8zzgN{JSJFM{H!Sc)RUK9$KR;WP_?O zJ(P@N_5``0DDy=|!4zG?FQydeJ!a|uD2thCA+lUS<y8KHGH#}Zm-NCxJ(9B3@sA;i1cN02VmC7n8fdEt7I4&DHK9H&VHCQ-{3H6 z<<}y`f$t*5dnqSw23CD+otVZKLSiRXknD>0nthJQsYSiGAgT95i^H_7*$KM7sYe>` z{?K^EdeKwm>PgouVL1;T3f+I#%_n2XqLWazDkL=`T8AflR?SjQAxfkRYh@oRudr-L z%z+7xe&dQBz+A_V{2MHd&}5tWNYWYyk|zBltEs#Cm0G40_C=-hf0*7?K*^|JK7$1! z=IRjQXL@D5;6VEGE}CAdL`aGl8ehPi-&iZyDQ}0gedvh!D@Gi*;;32hqd4ZNA8@E$ zp&zBEM9B($t%vK-Uj%NwK2JHR?i;F&_~uXeLL}iKi9%P>q%!M+z!f2*#MG5^Ax&46 zxI|7$1gmuY7KZ~j7Dq@GJvoO=D+lr zs;WMUd4n_T`J_8I8;oDSXESNPQw593xpKd)RZKmehz$GKw~eTC$HQ8b2l`lEtPvjt z{evxpJW_%>0F~h8YZqO!OXpu{Y?(uyL+AdA9@^BWH;EAp3W0> z=_1AeSE@8r? ziYjg2b{SLbYe>HDHg*m}MHnWq3rUJi%N%;N5c2~wqCyUg*Q4LJsZ&8t|13^LeTfAp zk`1aNnqeq16?INJ;B9_ute4srQine*l%afUy|i_ztg~6BG%+gOrIA%rg}XhajHU?? z>6xUE)s}dG($ZGn8cJj`X{S$}#I#nbD;20wrf$eazzf3yiZPgleiE{6*BF6bz`7iI zhBN@M2z2Np!%NvfBgpiRSvFfkF<%j>8L6>(zTDAG2Ra?`g7s6$m?fMf)fTttU{q^Z zxoVZ1c+K{0b+h^UrHL3vTYGPIS+B5-XuwhhmC^j=@9ZXDO&z`==g?f8s{4a zlsvJpE*>;a%-TP`9Y?QRSeI~|-yOr))RJ78PAdCvcROBQ08E404I%{%0}=n>z$QT4A|IA7 z5@ck$CbpSKG~h7iY6Y!84Fx`R%p$#WX0j_j&+U{l2bve(ZSAd%@7?kdiCH%&e(3D0 zRpYV+=9U_m@$N3Bm71d36_820nLBd7)+$-ppes>OL}tAA+ABPG6Y7M1ZZqhzT>WtI zj8;4Ry}sUvZ65~4;GqAA(C{u?G91ie29l1N`LR?*w<=oa`p8*2sD)H_$nzopf9d9| z)@%GIqOs3nGUWw2SWG{EI=z{8%S8>2Q#;%HE(*OrU_aBV-D`;AcE5ir{o+|N|JYdC z1av*!-#n&|r_G=6SB!4C9;n#c|Be8-V7*;AGJ1xgQ zv}}W7d_yQ}lY&O+ZnbN73l%Wb^wjmSG3)khX?Oic`lG_u^6H|!6k)Iv?pN| zbyCYt%fAGJsheWJ;G3GIdwFwYbxw(;xrgDrX4Z?05 zLjh#&mLI1qDp!eA;a-fnY*Uw%=gu#mImFlk2t&-Ov6gWhrq?adBUME&4_ZaoQA9RMTQU4&6 zO!K`ur%`v^cN4Ygx1-AoQ}s!S4}!nvlBG0k$C1xNMwrh%a`PXucJ>`YXx-&DyywQ; z=RVD$5K^-9#{yV;GKT z!`Pk=;cE4R;XE1M{VwL3)wxM?=0TpRp$LxZ#ivfHrFIMZIk`c}aQltTr?oD>e7u)H z&@=0x$df1SWN+Iq15-b=3je8wI2H53C;CtRF~?x?Tl3BvU_PlfHIKI!a+aY7;!Ema z0A4h4F6Kc+gpLf(j}#-vNJ8}*zC2o^dQru}a>|ktil&2l)e@q6hSDL7Pv()h6xqL@ zR<+#~mRPRgq1&P>^-tfwEP!E$EXB9w*l=dY-?r^+QaStgu^Hn~TP{N(dXtRME;f8UAnyd~UI+ni+eEBn*tf`9&ju za44h@4Qt3rUilX1@DM2O=Hz8#>7+}kSvTTTCzf??JG~mMY)sjRp%?ZkJdi&)xfCnTQ58g7H2+f8}W{wZf89r-XntLeGXz6-dUld(wEo#M_UPPxd ze}uM=``S6S11jdd!?U@%QBJV_#e`Kb9;K|6*>&>c1I?R~zsdYWZX9x$%aK7b$vuNgl9WZ`&XJB_TX;*GSj{?M^W(_Ekha#V?opb6Ew_ch>8YLw8N`(y(TgJ^;*< zdHO38H@;;?H;pXzlG{O~*vuS$|MgM18&#`j;iT30ogu5j)~Z_h;8IXKC9;A?8~tT7 z3bdVW=>0{#y*4UpvM`}2r~tHbkE-r2?SOBrWh*!geuQNi&?`e#CQAbr+(e6dF}Y~vK5n?>H%goD&zMw0R0M@hE*$Y zg`WPZO1{_e(JOi!LLKlz3QngT#EYBPTnNfqK~>(keYyAU1ao6) zMx#6)zj`*oiLSrkBeiP24t9I#nf-U}og|e%PQ+N34{|#T`xn(`VieLAjI5R4TZ3y@ ze0V1X$mkn){OBLV>$qMfrum#9(yK zm`T;d@!h%WBB{45%X7h27RcVgThe{ci_#7hx`+mmw7a|zXp?Rw?xdTthehu5my7j^aqE94AQ~e z)-9+EL{YgoBVJ5u2DWBJ@qPHPKw1pi$L!6<_^Yw_N2TklnHLdB7RCa!`%9i)`tN&> z|6MKYVj(@n(bfoU{HGn6*u((_YLa~7rHTR9dhaEhwy^bWzb)#i-El8Huek~UQI35o zEmC?}0m6}seQK;g$@9P)hDA{-={IgayzCBpH%7i*4oQ+dW!G(P6X)890+-QgZRodL zde;n@`&X6VCr-U9$M-(}>bCJIZ+vj>@pgaW-Lb9RZr>RB-N?57bK(+rV%Ky2k)7d6 zc}|`<@a~aIf-AMu7G4nKP5Zmi+>*|RhyIG~00eGLW`m>SEn`yeu+)zc4VJwepWD6ewMC!_k~Nd(u>T)4nt4vu0A#X z0`S+O*cLuR?p?IgE6lSaoqF})x=nQY{?qYF)M-(N``rlZrh2m=jSnN-o3NAaP8B7p zIINNT=wYLysIK;>N>wy>oBs(Kx}e69TEMi#?9<4(@{BUR*&rIn1DPKN9+rRC?fe;i zhlaGhgjq&74Wknu9WwuOf0u2N0ZqXmc)NmZr|B% zeoXnRea^Na8`A=|fD+^|AgtOYtfz3K@>ATq4G7HKnPHJd#P?5C;*hj$=Ux zvUu1kVu}p6M`0-`{H`*8#!N>S%&%Z7UI_j17tQ6-R{pzX)1*}ojrfz~Wda%+5P=_) znA6RDZ)X+#pQpt2SzlD*p?gxne8kJH^gw08srXz}Oy?X|J5U?_JQciZFj`ntZJbLPkYA$F|?1qEXxZ3KnR6-p&e^hj&3aTJ<&Kb;i?LOImTDLtt@$N_3 zegEBP41N8?Et_~h-TvSsxS9;xDMT>mSLS+xiC^BF8E_Ps=F9tIO{puVDCdim=O|;f zM@Vw5t7aG>FP>Lx`G!?$OkHbxN`QHxnQNXz$F<5E4g%^V+%Up4!w%za(IX7Qxzy2g zkjwuvXxf4^MO+Z~woc0{oeb6 z>zFsnB&UZg2`!!TR+_B*piuE1%?}cqnO?}xPTrcQ9wGmEntVR_gB6B2{UYmRn>fGZ z%7iDhZDo5FR$_Z=4yZ>eTBr8(E3Z{9K9J=v+5J(;()w*e-Fn4fR8lE|ZJ}1mQOnv8 zOfT+Ko+3U>p*qs zlE~`Rxk*`!e)TeLh`|Xv%!oli9mOaq`!TvKjxRML^6%#7>c9B(?QtkD$s<+A1;@VT z_nY(y9MB$f^h4hiM|jlf2aE{F?c$Iu3bhJwIV?mUATR?@qCusYpj$YFsXu0_lqb;h zkMTN4^d>S85)zLck?S>GfF$PX(~W8+<12n_soC<*wX6RShx8RJ>)(cG zyFRosKZl}IJra6oc`Qy(xhb!DB5~FIT0&*LMp(ag_s66e*87kO@Svdf3}AEY5cKju z(!5zbkk6ll=J@Mopvu|OTFfQ>3(H>?6mQqyEysJ}ocQ$~?5W;)^x^G?P7j-nPPlQl zrw3YDoGFi}%E$VMaE(t5;d^P)TL{cwX+-k_xKYDYtu#AXmTybAGtTQ72?vQWf5Mrm zghcv;kL|qa-R-h{(I_7f+ov7#cEYNriDA8t)>lX3&!#B{EOb{NCVZ`^@L*K+)g!RV zGDD9glLra%1DgpZq%|&4sOe!u3@RD?GZjh=qAiH6d<{{(v(Wm^w$VlY%kO|I^>%SL zRPmpXQwQc_`O+7ekY#Z-Y)~!&^3$hKM7Wo_VwD$@X1!5m6Wkz%vH^)P0st5Ygqn*m zjYx)zhaAVbwnr|j-xunV1Rt>`)B+;9ss2^&%+33CO%?lWCGZDn$v zzH9YJufs&SeljC{Y`YH8AXHc9|4~*NS(~`u8w}XO0P$?dA=)=yqKAq)#?o@^{y>^f zBoe!D>@9#M`XPm-!r$@QkA>fp=rgMuO8L;*pR9D0ci91mR>fG;->X*J|2iH-HgH$G zkBd$mF&5xltcAMQflo7a#Ck`=jgj=@`ry#}JMP#vMB7|`5tCePEUwP9FPKzYQ>0Ym z53M)$gHvfhs9uxkK{Ku$-lRPm1_#^i;r)~YD>Eog3s{O#vgVch0ENpOGa76f>EuxuCP^3oO!e=(-+Ss zCF@{jeJ?6jWsD~Luy!cd2`|uz2VcA^9dW$;(*sgF{`&dte@qcS{_54e|1U%Lr4+cu zXC^PId51WSe`DqjUOe>R z%3Qz8GsNf?sVwJs9WdL^0r7RWqF&KV2-l_UP&pmu!9-#AbOCwr4e={@J$_Awo#EDh>N@M^i8#=IjIqpdL_qICwnQt5 zN<>ud^R+Jez_gIKZEt=^>{>h;lQLdIWeyGa2u=!K1Ud4Ff#px%4vkTx% zJ(_*u=}he1R(O*$#WNps?lH2Se<|6`o96<@=jZD7+n?3x{R@#kzEUHve>CLnAfoS! z6n);rH@L6D*^vvE$p=4MIrYw`d{1wE$~?R!t%9fL?S;o{jT~jXTfe^9Srdeeqav1j z?cSC{oG{zReX^lKgy&N0a3tu^!>F=l3lLLi@)k%~>FMN#PN;qM?ba!kIUp_WrtA8? zkWZ9k9hn&nZSvtWMpq`N%YH+WxY$t0aAZwrfUej3qhX4ncF)O(IT>h*>Jhv2Dbzn1J+;@mug5%O8$Mu{0 zY?IC}ug|+xr*}InzbnAA6}7b?0cSBLy{TP@zt(oqSO`1Ox_j!{O6FxR*#H=TvnYa- z4X{?3M@`!1bl6(|m7;aF#>cUiPFyzm0Fx}hIHvqVZI$%6d^en*)2ck&%$xyg={nup zo$(f6WrbK7i(*v*3OSs0nd>~w{L#rPRUPw{H_YV^FQ&)qSN3Q6AYRiMgfHz2MbZ~; zSD*r*MB(ipmy&;5isESqMlc5x4w)fUujOtgzTq76qOq=4?lw`cu(Q)wtwhLapKhq6 z@yQ2MasP{n)FbDZtPeZ5Q?=Dyo6{>og@x01{l@=^bc4(N)05NOE6ndxH_gxFjXgQ6 zA>J)jg$lBVr90J4N?r2rSHC*9KXp|UeQR#Xu+4ZqjaqPhe)i(~x(Eqr7*!#!p@~TA zO2@*qP0rdQV`b!ObuJmh z32m(rh-Yh&<0N61e5-L zzFj2FwJTAlW92z^+fmOgk;}ikbAdVLxGeu@!BIaV^h3zhhEF-F@SJ~xyQ0wh8f!($ zmw^~1Nm#H)bCV8s6+Yu$qgkR~H=}l*sXxM=!s&Kbb!O*O+ic|)x)b(nYu@e}qc}Iw zm#yAuIbn5@`F>mXIt#i_f5U(G9{Y6Q)S0()N1i{|eb{_t&&w~KYQK5#O#5v(x8?L> zZza24dZmBLn%XlrZ;TjQp9W_n`f1qe(ERxSv85$4T8`wMoOxrqn3QTqSP=`d(Ctp8 z;jwV`Xq-F}0GI3F6U!!kn%on`+&=)v2S-ZJ#E7h7$ONDe!@vk;4GXB>q(D63a2dZI zT?)sg!@z9!hFm52F7aD~z=5$#3Wq67a5aT01m>5o&;r%2>Bh5QyF6^O^+v>rQNm;w zNx1n$8qwy(h=DD;*;!dcqg&nex!HfM`A%=97f7S29$@Y6CCA>dH$*$}pTPZfV0(4p z5MSmhKk~AA+!>vi?R!Ua=VrAluWr)2^D&+`J@Ini{DY2ocEoNmN%4I!z?A)|{>16- z^xjxGJv*Y3wLG_142$Y&Y8hh`IVM2}=Es>`q3@?bMc=~z#euqUYTP>JlU38M5TJmi z>5B0VOL`~$nCvk8m?HcMnZt8Z{#@0C!xv|VdZpQ>{Oj_Y*QK9BxiWCo*HPDS=C(MM zSbq00z>kUS%hZou{z!PX**qP?2@S}xY>!f?#*%^=@{EzXt zg~7^10$GbrAG_!uKN~Z2;64q2qO(s@JID8a9K&52kgrFZfakPd0nBrUct^h;4ab-- zWic+NyqH#1l293pWSua--_pDl3NC`{-B>FY4OLP7{L@YXxb@18ubFs&dGOh}UQ9rN zDgVAU^opwFokTV;q7xB2f6tuUlqL^^>ZQw(ot`@N$kodrN{j|iSb}45$P~o!0Z*VP z>QX;sd&#g$TkAn9>unwOeScuxd{>MxfLht9ZK)t`ES7}|8N5mc@oK*|Hk2sWRuIxI z8XM1aPp7ktG*UQDIA)z9lIe!Xstk&pZDfg!Mp`3IprkaC?Vae;_%R2s3N2TQtn08o z^&>vFfCWn7Vqe8&sXKznpMw978e$4@{Aq$~enk$V zL}0Btv%eJX1~wglL9;}mAdlt(sx*B)jmkwG@q(Kwfq?_Z2-`JpkHfe{JwFsKDPAQ% zA&L(l)u_&wc>WTVyvhCTo3{J5z+!#Z9Or?!t$x;WJG;foFUYiq4N0d4MK zj>07ak7j1#Lf=FOPX{_leJ`cKAaNb>8*>(AE`gffW zieP9?nx;4?4>fr;?zTe9x;>bok^7`$FWPS)CGiHPmi9iZL)WUqA>@S%$WSSKyp_aa z=%}thn9VzGr}j>3Z?FDO*Z!wh7%8HM%w1Buzv>AI?kK3OxsTm(1s*%X0Kr#E&ya-e z{cwG$S%yGt2^hTIUnAOU64>>Qg_M2ps9XmtFwdFG3e%owOLoL$RT_gLr$>a(h$4W` zFm`vOmRt~FTebr-!2m)g^f)#B?MRN4gQb0vggL^dvd^(aADE^ne1FtRLEZV{L+kM*>;#jgU7egrS<@bse3H|) zt7f!kl2c&zGp#{FDEbKX5lBWL7IKXc9mYk{de*5wIxvbA@4Rqsf`RFjH9kO*sOZORM)qL24mgjQ9m>D#%#TS{j&tw^6vT(9ms zm3b`T$Ada<1Zu~u^*A8C6><=@F_*WCduZaHGr+8iWrE>!GVb= zkf=%s<8&P|S{WI^C8m_Z#}JUW_Mb@g2k!^<_dPO}xWgxBE5~fZ^DnCeZ91MnX~Pt% zCaQKf%H=4r{YcGUdg=XDkGU|rw@taI4xKdiI`Zj!7$rr7oYr7+ZdaD7rB7CZ^gkOE z|8Ycw`9hq5%pFjQ3he{5BipG#%8u%`BeWm}K~$dj{cF9yMe@s1dI8L}&2NqYRx3*{ zGd8mk6qaRuARHn8Q>eeh~UheB=0jT2QKO2T=lk9qo|7Y^;RxLZ9i^W#W&X%BIDC1Mu@cd;H67fx1I2EiB< z*@j{VS?#&qZjCw33^ILb{y`o(R{ou*EDs_|4sjh$G zYdq>cvKyZe;zS9}Gj|c1cQJcqUc22EJOhi!JT^^!-1%!!CFGHBjc_%?wR)kq00eOseGUYPVm6B~6r`X9P*sYUL++mklG=f9ec zyFTrLQr?Swd`7ecREM-o^PXr$=AtVRBKppJgOkJ< zyq;^B%(Lj)r)cM4PL@lCi#3b41U+jfBERBO77Z-XX?!<+qEDa&QsXBxmm&UPPmO5it z+#Q6s<2Om@=hq=VubU2POyPE+-skGFM0V^k={E`2*_Nvqt9|iTf4{;4zs5p8zk)_B zCV}f!>Sf<5b800yzKX%Gt4h<3u5iWXC^Zf7dIDonFXHTM_t28?NxL`r_aaQ7 zcrbSAyyf`n9dg#F={ckIkMkM&iiGQY@(}2--RHD3;@FDV^9$v(+6i3e#ilMzW8m57Sz^0|QPC`U)}8 zzQ$;dkjj^m@qgWVB@_|5U8H5w6u}hQQo*ub`)ToB!Cvvcq~2wJ;Oic! znCu62tl9@`rs_dHK0CLmP?Na(L^Sa-UI>`-U_m_As5~OU9W*r?TT*9BW<&SB8lvwL z(>U5ufotR!@D+qEW{D#YThG^Xd0ynO5v8IT!dO&8>9k=qQDCAfv4SwQb)kuDq>98$ z+Bl4KRA3thi?9_AWHC!)RY+qTyp`&&p`i_6&u4P09p!wD3J2YXwv#l2dq2oW+Jdo@}0Y z9&d;`#1k)&FSr=#c^JB&&l0NLwY)A8nHb_;wPLCFL%nl)EIn4!M&}{UTp{U#GAFWyg4m@Rv46-EbD7xi zPNL#ssSvdY4PIUUs|c~%v$1fS2~%N|k`B#@FsWHxthj`wi3Q2NMo+g7i)4#@t_S?3 z_E+v9Dg#3!0<-wZ!Eq4H1ri@RsO9``Ji-NogKb195r5r`2Ev@W^eJvs5%%veBs0G@ zM?vy*HlOM?C88ro@P$oJZsB;aW0`bDEZc+AoI(ezL3A%;TZ2BtI#4~tHi(+)JfJRY zDZhUW_gs#7^HWbN70G5HtPXX|Y${zblFR(!9EgU&-q(L3n4b z>bRuq&x>{nDsOWx!jpawPfg3ZPT7-`A!)kLg@2f|S5O)etLv9UGVT>0j_OtP(pHcy zs4xPAKuCfjk^}Kk5Ji4fLwP z@V~}IY%apwK`Ww|xdL&m&YG%*$`Vj{?Oq?+3Pnl4@YwZXJL4z2IZs?;9*a4lMbK6Q z!@5~+j&P#BLpH+ly}Oflu@fj0yWsQVF>z}pDQ1eec3s%cWF+Sh5*y-dd5xg$q~pg* zJ#d1P<5?wrt1l-fzpv~??0s@F?EL!0zCTloE>o#M&e#Hy(a#=U?_N}9-(Z_o|FU64 z;i4JOa{`kOq*Saah)tc|vpXVubCzb<@>CjhXjv;TU3!(Sf)Co_^fAs@ecV;kRWHoT zy*E7X^852^a9e8t2_2tBFqylc=M`z;cu3R!B87o zbXV(sH`62cz_RGe1Rkk1gDJQ#=3$pPEyuMjAMd9j1>D#*-icv zTB!)Pe*7Jxj1=?_nJjUhU0DhqXGMws%UU>eE@CiheLI}!5XS6QR5voTJ51@n6ppY+ zWLvqSoQ{wYey~CE`nKZ@XbVRwjHePJzFRolM!2;5rWwhRkd1b&Z4O2cue|)>1ZvKd zd5JsW7;CaP8Y?E8ZaA=ziEca8RWk&AU4|w!M>Ol+h%IJb7^WnY*D$(dK4*1Ew96}DOMvYtwkrEM<(4S;-K*$7wHhh|Z z)a#vXiKt={?yKQ*P#e`bpMETzmhkc8FgAOGiwes{jy2~c0Hj7&Gf|i^@PS<7=g=pc z@Z(}4@oOS*5q|7JIl$`0y5*XsrjKZuU6RpQMn8y6R9RgfxAW)&4`!FTcyd}r9nJwn z2~{ITUJ)OTR*DL?jFVU~SH-8HCO?lBv?2q4N*${*^Y8P@4Sr&44T5G(YLl48Gv@24 z`3Po;Dihd!N!6-&6N*qmG%b=vTvT@sO+-cNMhLIO)04xwXhEme z2`{QMbA3n&h4pnlqmkU1k=0HU+SN(G&k5!`rVGZm(u=7#>KJH)**nzgu$detL5+m& zO0cQ?mXzr8m^1e)2B(vlIFR~+_`S-Q!6AL07KPf(3O6~n#_{CH%%$XGvv(;7^lA6X zpcDYYUcE&42ed}a+gpIBU617d2!Gt$xZ?y4Usqfg%3UWkvrLRx3}Y|TQ^;7J4p)b) zPJ&Dhuv!Vz7v>Yw)I6IBD2(C)CMOPxg(bUq1d(VFphaZ~cwen^dU!ZIO2-!0N_T>q#Vns3S5<`|gSiOt_O`^a4_}Mo3DnkS1cRrL>fkLRZ=f1^Q`b zqf(T&ZqsKwf3$ti?xnvxqvR1LZ<)6)mc(zpR$xOgRM+BJwFH4%+mzY-hStMiC$L#Z zx0F#5DC?wy6_K(?et|rh+)uBePYy^K)aM;$Ojwk_LSW}bu`3*e%7{%NNV@{2)ybF) zinE2daK@qfMSpguA30Wl_vrkGf;&#&s`)2$B>Gr{uUIp4cj(pmu3}8|QaZ{-%S#0Z z(uiINE`LxE9iXLc8m$&QRUj*l2=`N-fh6U;E3y?}S(&W`$Z{@^Z{!>5xd2cSph6;~ z0Mund2toi0C)a`Zk3mJ;XN5)?$VuiVyQwsaFR>r@aXIm}@_5!vR+gZ6q?nNGV%l$didKg04GB2fCw;__OYM#Ia-|+aOG-v5up>Z* zl@ydIicQ6AW7P{bo06Wa*0b-kfi2O66-BfhS!oy&X`jF-@N%5{) z(;^vuOs{h(M)r`N(Hth*3Ck=akWe8*W(kC5)4-wwDGVU8oI*0B0g<6hAS#cK{nCHB zZrl`3a-dT9=QwcaDE4`27UdFUR+$=!sBs*(&)h|0cViCApW&IX<3jra)4(f9sp>?6 z)eV#cWy(TjlS@e7l|+y+17=EB(n*qv`638okc4$RAq|yS6OsiWjAW$Qw4T1wz2s>i z0EM*F;GA4eu0zylLpxbMM-A02JSc3ul>Q}$)XfM<(1i*e*f*tF)FYHxVBRtEaczky zg*i4hTv4T*zE3?=j2tjq5sX5^T7IFk7SkyQi@)?s5|ErqLaZn$o55aZFXxL?b!5Aw zURam6n`q=m2;*z|(s`m8^5oD(d6r%B>mzKNx6pfPoXc?r`LI#6L8U%NU|xA#?IIl2 z-xP>G@YxvQS2~XoszYxP4_-!Bsuhc5bsae_&W>~RC)-#*4 zQk`4+9zBn;ZzFc2@ZpBeiK4q?k@V}9BhjyzpB7sa(7WQQ=5a+UMU?1(`I;uLP!K-m z+GfWlwK*_p$WZw51->&dj@HPcsayZtQ*M5Sg3M4@pk|6?(*Dz@Tx|-xbraLgW3gC8mhNNz&}q6Da1EUj?X?YBQnUl zEZ4Cqc>1zvH3(A7%6FHIy2)l?^b#2H@=XI1R5oB!g;A+qv(xIm2rYzW!YqXy`&&>+ zKtRdV3EDiBQ36}F5gJWI$^gTh0!bj6FQYgLSB`^{cvX58I3_~%j^z%7~eJiv)mP}`24zmo*CI;<^C_$=`D~fdV zIh!yOb*s4cbar*P!;xPSI zvb8SSkQ1yeDc#`e%_%B6x+-8#jxnMVpNY^UfDNBX7Y%YX=R4RMC%GNww38^crPui-WZInn-JCips3+#KH8b=2CpK*EKD zLULSULTW^6Y`iTrb9$~-4E%}^a!pY}YUPZYmU-&~n!N~~q5+d)A0*lnF{fUPO`3yC zPbX|INrq<8jTSM;D9p%dyK~fJ<|rf68*fQ^W_|P}7DnrVyv^QudWUq>Jr)5*EP$bR zwiBNUk=&}Kc#h`yzs2U7!~I5gW2W3S^a{@5CVWosh^k?eqSqeny0`2l{no7^eyb&7_dQS|l_1mr=B6cN9b1@srqSmua%+FzfX0v1B^+D*HS(Tl=0YJKPwJNF8Re72|n9-m9`UHbzDsYIEXGSgjf$ zm?N@gv0?^fMTJ2|F*1;m<3L~>DNRkrBy-MT(nsX%TaPG6X(%%jER=P1xlm+HNC)u$ zA4nyFmY5b{$t;RuM}x1-A-Sci9eu6lT6>s3sy4W*#=_?Im}~R;9d3UAUG&PT^v=ri z@$t$wj$aAzHDzU)8tL7Ij^u^Zb$z|-stsmo!W`zBT8sUJPnNfLwzq7DS%7e1)7dWk z)<~{9o$=@XHT7dRh#Xu%MnG`BnAQ}*tV`*>$%o4lj@&ix10tJ7iywMv0f zBc%R6=T{1@Sf_$Nt_aD>(G&-KGphtj>fVn*I*PdbUVb`1rLpmT+zmytVxeZQW>1_s zPBXn@*+`rnG7TbtuMd3Gqv#_ru^$6)qaf-Z%)&D`DA)~ zXZrBUp^CnjT7KCY>hYg0M%47rn}o-_5kNYpRj@25m{IHoQLU-&H6GBy<#BmwUfL5{ zweOX#-`LbVB=vaJe|(FJ^#1$dXBx#=L}9SI7we-*>(z0d2DzrvDL^Gp!zGM98&^g4 z?nV1?klA|@JsMA=zuYJsMm`cGniOZD_U%J5lLaG;|4_>|qV0SEy=Ma|hfH8(+M--s z;KU)E@3j_=&B&jG?HEl0-^lJo==AU)9l&~>*p3RK#^D~1Ri_I%P)#+Zc_Hd)dR7tQ zgpJggl+1wVvGrJ}9@Z06J$DuO7**6V*kZ#_H9? zOGXB&i=3ewy|cMD*Qz?#Vq}xoM_skkTD7_ge0dGlt+S%cBk13#tgeTX&U<*dope)o z>I5DmGQGk(uy47=+ig#WgYVI@CA2>PNkF#0&s^KXW!G3%5^JGy)@toT=jVPZy|OO; z*Ea7n1zZ`=Hi9AP+|@>d^933j7h9*VCiK?`3IxbPry@EhXhTqwep(KAG#FC-Fm57_ zo|Dj0ukF^-@?yv(6V}C2;z8J`vPW7Tv_p(He$6G!|AXsjJ|2KNE+(x@K6_oqv zCcd8<=Qp#b6 z(()ni`Q$m81OLREXkOGR=Zazoj<_>{TRqq_bhU=f)$X2<>Qy1d7aFmEL#ZEdmb;-K z2P1#gZKL#{=KXVXF{xsI4GeaC+m*L<{r-%<^KgH#`k#h(HOVWPlmC{$y>3JjMOh%L zStIHFo(gCnmwLg7ikn8qk33pdluUW+0)h3o-WCtUd1!a*7S;H|4b`6v9}~p71V*Y& zFG1DNB71Mw0Y51y^2vSqWPNvKlXh4__~aaNTiv%`Jy0YTcHf3?nffZpih5ATztmO( zLR0T5LzOQTamwe)IK@`lAkn3KTwzr{ss?qznpJh97;4w&KN^}&mIHNn94ZPb(dNj%(2{>=l92-&k;Lr0@l0y@C1w`;7Cu3WN}M=7MTlCw z0mc826#n1juEPI|XXrslLH<~IX6x{IZDMbBcGjMSPKFGFT`qdzM7!YU3b7r+g zaAJ7zoZ5s0cEgqy!-;6iiu)%%k2qx2h0~OnCH2*!%*v&8=p&ik_6Md0FK@`F%x9pum)KB ztU=b8L`q)OVGXp#1eh`~R2xU7HvhY8ZUx-(7wk#ddUVLgGP!9}nYw__{OxTU-X>Za z;}7(y>IKxYynm0SRnn!pc$sSps=ME1mDBGC8M8i=SMA>(W&lJ zC#AGNZ#J8W`6_gyjmzgiM(vOlnO3W^H@Zh!_8`_4BqXIto#ut{ApPFtx=a0Y=Im*| z60zh5D!t|RghLz8-HyO0Tk|H}*^rXxJ87$YOpNd(2=CzXh;>fuqo_R}Z@kHjIYHB( zAYW_#wc)=L3lFj$OUOy>z7)m|8~oU1;LfY9WLpuX$L*)PJK-}NXXc+Ci4~c3leUoa z6ST!@zG_GMqZS3lL~n+pxPcgyU+&AF?D}HIYC(AXOh*5!lcEH|`1Cr$>rwc;=(we~ z`~ZuK@~{fH$CqqhE<-*G_}jtq44og~Yjooq0u+7h@+YYHh;n9X9NC+L!>b_>$Q;SFUaRc?;alVE`}kRCOkxQoU%XRO4fv6b{jdhQy8F-M z8!(dy3GCCiIoMafz+>*l4Q%==%P~A0x14 z`NH?v_Q{yI@kxiB67T7*e2v{Gk*{!-FHvH`sjQ>Aqwd>v+x-uTojytzYnNQIMM8VK z3dfps_*=6IPRRE~%u{$zvIB7M0e#TlB=4xkWiWO2IR)$8K89n<@I*&twALaj#m2GmX}rfLn2UqU@%kC z@$dgRP-K8z`)%7J*81-2eFku{1byb+eBVf(hbHz;Lw$U**Tk3lqoI>iQ8NpxVhiPQ zq~CapuR@cY(yhj*(qHvrk!pDXehA)p*w~JAmW-y~#!u%M9b9GBX%s9bFAlxfPK2 zylYIdy2ay{=oDFA$vlsUb;E%CD{FRx1lx{@L6}&2Eib|7jS-3|${W#wN;KAJ7`R93 ztY#pZ{fS2J%kzEoZRbjt`4?aO*|JsOS zZ$ow0S{oquw2a=r{5b(%dKp@%fnYr$9NYAUj{%I{FItW^LL2a;D}Ju?u7jb)>8dD+ z`%V#jmJR8Q=Q%>HU(DjyQ?-8weFf{as-L8QS!92FyWF}R3@-qu)y%1A$6L?32;$HZgIAp-FH4bhDWhmRM6 zIr4}c9^AtDA~_V^!=i?TIFgr(mz1y{>iHnJJSeDqdO(|}GvOdQvs5KtTrt*Md)T7WD%+U z*Bbn7{yT2tAL14W5AX~4Ov?A*{Y@CoRTul)GpB}yhKG$QqTO5W6_g+}v>zJ-E*Rd12jr zpab1$m6?hJ3k}34NNC3w`gYbSQAmb|;N^8~+I{-GZ5g1gYyL4nv`{u3`8t-$k@WpYT!eZ1nnoQ{y5E|1|Qz!i~-5)2d{0P(%jiSMHV zGwhlNCxjDjKku>qWkbAHvE}*2zUP74b^P#6tvweW7-S8>gF16D?yX_rF2SXdq%T&) zMzSITK1E9Z&w}HG;kTCbU3LM#wi@7(^Rv%4aNy1P#*Y*?UUhGL(&}Hw{oSM8+@iBm z>d6dt6tw=3bxWV%ZLoO8pgFpMH?hsiiHr=M+1z@p4c@`IdJfHnZ#SW8H^t{myve7J zrDtTMrxO(5JY5J!%8*D)B2j-ql2C7P$Y^YQoOp>Y0iK&4CVUG<039U4v=t`X+F0MH z;U9ziawV>)<_2eE{)+WQw@Vk{Tj0e0vwh3AG}TT9^QWP@=qju(B;>oDYRzIiV1Pkm z=fGAxL1x1AuAj)<5qjD|D$x=}BdK1$hIvl4SvQsb=V}B6s`->~B~gE~5V4vHfbleB zdF@KZQWp764=Q0doo=uQ;$tZWfsx#GU_Z$qc~aTJYO(H~p4a%SbTdK9I~k5f^lBPB zI#_b|7Cy4}9~Lol5>@EbyCVQ32h`88AHGg$R=oimNYZO`F;yra|1_esVAO|KqRP-C zp!QMr)0nkL1o1x09@z<}47DAxv2LZ%5M$B=4r}aac{@=m^k#}7o0@vmvd3vdZeR!4 z)pM_+plC`I`X2clkdzfiZbm2_#N7Cpk^lP5IcZ<#+X#cE6WmUo1!2YW5UsZhmUseXbt*uMm>;KpSy zIMzE59*p(4Jyp!VvP=wsS1jlf&l!(P$K-MD=CUcx23N#Z}=LfP*~ZNRtfa~oKn;}=0j#NuzOwyGUCf8QhMnQTo+;gA$=7L zoz<%L?%;nR{lSt=Y_8l}y65Cgz#bH30(&afvhmI730~zmHs6du^sR9ytoZU*2A+%| zTC|i#UYfb06j54Q`B21t31bkkSK%vYegZY&!TyTHyPu#bf89QUs&~r8s1AxS_%{w> zGhu$Pl)bz`FMYXcHg+{uHLpXBacK4r3tkajek8L zSH_Kb^Wr?T0se{Ut5@G(_)C1{pv-5Jpgs)QSP#vdoXG}}dmZ<7B;|NDy7@RY>h}4B zPY1UoZ<*(j;F91mPisGWBSD;S{ao-}L<#QQox7f}Oi0~3iQ8Q3CTQkP+8Z#ZS>TM1p9&hH}KFE){&22so{$9&pOKb*lek>|l1^2>u!BrS4%N4{Co7eIc15Zy^ zBKJp5BOKo_T)|x5sUYo(K53lEL0QETBxk1aq+lOO(Yc;kF}&e8VH$5gvhwr`m_L@v zIC7MQ@)>z)h22#wI(%OZ=1y$`W1KP2Hgzsg-#@%aaTjKNIpTw29X-OJV*R09YO@p( z^vVc>_q~PxL0{&jRz@G7Mcg1hUYUdZWcq~6S^1cFBOM0%82t3A0jP#j0}aeh2g_Qk zsm;_`LB}|E88nMpI)-0v?9I>GnvNk*iRgi?F_G}io!s}CfQdK)z@}NRZ<^72Z&~x< z=;JoqTVi6^;YQCy^IjDhIei8gyIV5$7mvO7rRCDrgU0Bnk0Y*7Qe09pyKK?X2A@{C z{L)hh%q?_L@I`Xie4`tel9d(RvzZFthuTW2X8mOjNqG)zO|W%Ad`v_pHp=Hs|E)3k zy0rnVyiz*ILMODvcc{_pxI}KSN@mxEyNo@R@JYvk?e8p&8lgr+r z4~x7LZB8A|rqP3fjEI<<{p4dwh+v2kl;Y#=8WHK55#{O@;qDWdGN6UyYOJIf!d!+m z+WZq#yUekS;$<-PLT-z(8|IhvV7&n`$P#3}4Z7>~h=E;Zq>1v8(aRjwAtBZF#O#hJ zPVFp|V(^t+(CK$$eSA~O3T-x&P~Bd*G~-U+N3`NiBlFPBZ>jW6Klze$4|T9keS7VW z<@LF5Ct3ZCNM-g%5tHcd*gMZKZA4QUYIR#AC#xgT&OvpI{Uwc>Y)n24)oBx+0|Ut| z1#pYw5`{sL0ErAT0aFCMv%{B8a0CKt%Obu`-?gVKI?3i);AgYfF4Xt?sP%zCB|(mu z>N{DZ*I0w~x}o#~g$|TjPK&(^nOXC_hnF(wWV*ccK=~qF{UGbwXx5#W$)Q0(C4qXi zPrrVlz1HUES&(FlF55FQ?Q2TH|X^BiDDa>Ie=M;(yQV#cXWYl#n@{oRgfA*N+HCn^jQYgGQ(gs6h#^K z?r`og?ll(fF?=mT11Xp zYk=6blL&@;DicUD0Ov-x)88TsTyqg z`#3%d7x143H&#rXqz@yyJ98?H+r7fIo>VX#(C#PhGNQyBk5FB2|CR`N_IkQRXd8`x zFfLHvcSS)lkLqs?c!AaKq$1yB)F0_7+@Cqp?NbICVJ3F>XJq#N3CIF$twc+ym;7W9 z2zNUr=OHvd{D?EV1r-JOmrThIc~M}HZuBNsa1x)^T9MwwE#4#YTsa$TgC!ueb7IAE z9%ZWv%Kh2CmXPFI2*rKO%kdh04_m} zK)afD5Nw!HS-wAz?9*kz`@WTACxo%0=;;K5d`Mbf(%WnKJ?%^lR zVPo7JyW)jlO!m^|!t8o!4ad%@k?KXj5d5?GXEAS{DpcFZ#hWa)-Q_a5>^UM}wb?7l zC3?5`_?%xtd|{mbvXQ>BfM}OVWp{Aa-$GTX{+Z%TKaG`;UvA?s8DbZgE(%j^6mmYoltL0ZW5)Q0ZU>4>emOei}idT(KJ*Sl3et?4b@ zVnA42TPbHUbYXgH9>UXYp<;Ltz3n0}nd#E`{2l*NahNY6W7fVMhn5&3XV0WPnz`<` zX<(}lOqYm?o#2DNJX+$~`)V3zUVKl_nNc zRARX|*pg~zU)kkvPpyy72MPP{bfz|7j%_Yd#6PCNv)9^)fh~TFWONMedm1}yv6{y>{x{pz;xEJHr%UTyo9>bMN^3Di3fYBTOeY!&jUNqhb&yLmlf< zCi{5N@OH{270FU@>JJyVHb_iiIBU+VGlJ47feBuvGZ(`D7wa!j19g3$_+IVI(wP03 zjT%-RR(aBA)gi^Ff6v^9eL@0qj(p6N94sXAe&1dq*Pe?#HTCy{6mxU2Voc6fND0cQ z7bsTnDrpwg+aM)K9uqr?z^2$ytYlM!YuDja_RZOertn@`cqr!Iq<=AvLRxRQDKUGQ zg2eAl@l_hB7&<-~6Fo|$@PeW(hEVFVq*o1v!+4|rMU6Le>lW_}qL=QZL&~X{TedR2 zYhGA6_+2scX0Twvu1a;=oUMhl?^$h&veVcFqTuSdpXg2WpJG{NRay?V|CQAL@`s~2}hISuilog$10Y3*X}w!(4|j>Asfj685_I*n;K7p)0T`_ z21e*GOo7?3hOKWrj3s7fB7W$C^-LoJH%;8KcQ@{+&5mqcFwfU#6)nL4qtM*Ba0t5g z*23ZDSKMcknCu!TK1*SN%sN>FlY@4awjs1yq+469!ql1!0RF`m1`@hZWQ{9~xeJsm zBZL_$xaBG7q9}*qfJ(LcOX;Ui-EUKHCpzl);OGG7=$p6#7E7BX^Oj!=Lj*At0ZdN; z6Rcfm--4>sDZu-tVo_<_a)oQm?(F;tRivz`KJhJ)Gjlqm((@fBN)W|)C;COpW@~>D z@zApwr&yJ?a!3ddSg9&94k3FSijE^R3(MgGB)St(0V@Sg@zEhzyg;y-5bE(*232MQ zHE>fB1zys^m$&bc^}Y5yUD5 zn_*NcWdf@OtR^cqyk*YPy3OuABhXbnxAZwh3Nv*rWrS_{(@%L2rkWczxmV&MI393Z zAl$<9GJ1L8!X=6))9V(=P`-<71So;Y3h?Z)dTsAm{hs2;243k%-MUiM6q-bCp&~d( zo*b%F07T=3q?IhhGy;lzAP?1HvE-9WXegeTY6?Tc@!Gs%^6K*I@vaDsPYQ`B(Fa>) zqPpUcoQ|4Hr^|3YNfP(Ke2H)oT6{D_Qpxq?LlifIJcLkCk(e(=^5C!BoRcdfe5?Jd zz0h6fI)<>^VDG8sCMd*F6oIAMK*%?sfsKlh>YQ{-*@Z$y*0Pj z4O1uje~|A0jZ}EJ;rqeYVFq_3-2&pPVzT%VlkOf}Jt;C^SJoK?u(9B7I!E=qCmBbM zOGlx(FJ995uIhV2U3q)Wz4N#Bt>=g7ssX!A8>;_n^Z&(%2~z)a|NTtw+M)?*9V-9s z;ee{>C^tjc%vJBhwqB!+%=_uSE_~I<(=TXc311A^5n8a;1sml$$wBk21FHtBmm!7c z2)=hUWh*4nlgZLJPGj)Nfju!!z3R&|eD3iOAWEf=`CKat+Q^ok zF%3tQj1kj)hGuI-Z7%3Fk>N^`4LmZ4VxI>;j}5lUU5<*zgW+EFCvZPD!>RM^f}&n~ zZ)k^LC@Cvacc{Ian-vzE?$pt@UrM~LVztwP{O}zo1DR-2BXu)=dV}P$(eD-<_i-}wvO!%`2}V;ycpz9pi)_r&&YWT8Fc1Y{l86vMVn@#Md; zQBuq05f)w~CxL zZm6lLQ3)4Zn-k`hq6{9qOiX6wbO{M6hh*=DR zBTgksouAfhPU^5c5j!0qWgdKxs9oEJYZwDhiut{6nXh!u4ev! zDt7}QSbpm7x`V$_A-VbHfhm~w;i-FXufLv;!kdQXY-g+((m!9kllEeGWTYgyXH;T0 z)SjxZ?@Hu+I^jf&FdjYmq-{eMczVo#^4JKCs!!1;QS29erqHBeTsIH>$uIxw&aaPr zaUx>>ZO^aMZuYozZlUHkl|M^B2Dq>yRbx!(y2-4cY7c(-iw}eTUj2vn>({MxsO(Ga zJNto$RP@sA$J)-CGMna%{uA;v{he|Dofq`z@{@skJnK!NhOO`J8u|A9`25PZSHq{*yzkW-InP+Q{V$oIX}TPI-ZhI>O9VIJmi z%rcJaVpUZ?TTQE*G`Bf)l$OJNk^uB z8CkSjIefx2Z|e2CRnkR>l>=}sG;cguFq&X>2BeQF95E(}9 zE{w8v*C3p?C4_x`5@jWBO3L#}vD7Cx6MN802-%Pk{@k-jK!dG8Q&MNlyiNO8UUK+> z?F|Zz{n=i$cUS&wlSCPf+Xn)vNO|vh|46AvPd6& zl2p{G)M*8M%kS$*XxEuJqQIFs_01;s^dq+=6wx2Oj0|7>)7|n44yGCHFCSw z=yvFaWEUrU+M_&^4|ZtK{-n^W7N)H6G|Yd2=!>LZ5iHeoc2{F-N)hjyl+i2O2u|hKAGxU0wg22R1`D5Vc_7*>co77i!}v6sdI|-L%Al?=1eYRfrNSh&R{+2xN*DL1AhUS)HooJF~}pqyb@8TReEJdccN z6RKU*2p1b+_V7?m956r$@xZ?I0nK`%FoM%$_eeAppu)l$|EZvPr{huH2}iE^Rrq>W z>m@6;9J%%6zKiRQMv=oVDcTTzV%O32Tm^&`|32XJzG-}kw%lHSK=Iw^pft?(`m*E0 zG$0FvA#Eu8qAVKBy+K3Mz=o!!Yu2U0DW+tarf?4qDos#mJk0$@cI7QI=$MYTn} zd6g_6laI$oP1^fzWA*byiT}$+?bMPQ;j4-kiU-qlud-v+yQr)ej5+kwoZ9VbD2~Zb`xK7PMKL+ zqLb3*NDZDT@>wz;o0*no8OjaIrZjTS?pe3TDEZpLS!%TO4}j%((v&%?VvkmLg6vDl z=jqJa7D0B3$0QN+m%luJ9DYoC4E{RYcD(Izse?S^hcuw1WEeJ8K7EVFBkK7nl{~y7c>)asK)7d%Nw0J z26|lLASn~(+RehykBpb0+v|Q3+Og619KvV}`=|>ob~@lqRNSl4$k7inE=5Nf1pP5; zhfyq>B;zY4%f&K>Cc1j|(TJ9JGWpYty2y$f2E+H>!RHB$V4-MwmE)c}t3)0_U&RQg z(^6QPfT)#}62er{l&Sp9mn^%FfsQp{3sZmL94R-9L;efUq~tXO)mJ+^j||VX)Yj#7 zPNa5#89z(ER;ScC(@7s^hGZOfUkNi6V%s>Vb9~XA6$8cVEBL{+tIPA8r=X5%NwK`Z zVT!FtVU3jJhCzq&C^{I_p@a}nIR*|b`orYr2WT+e;SjM-9$bD@FBa3H+fao3c|a)?n9F4F@(J z{*R}m6ZX~G`-{98{Fr}){;@VDpKzBpdo1s-1JME_c;b{UKXl8NA&Pf3rYQmhZw^(T zpYr47q|mAHqCc;!c+MJ;JrX+GoYW1dh#dD}guBZZ-%qOb96IHp$hAv9R*YB&cYJCz z+oD5l7Dupf8S@V4aFV_WHE%Eai(f4fxZB|Nfbnl`r!1j3-!;f-6&;ZaqMP3DK45N z?Q?_YGRKQjtYy}eyd~#5clnu0BjlyQG1##|8cf;Dt2Sk5N$X4CpXE?2Ck=&Yg+?7+ zG~mNyxeQ8FHa&z_&(YHfEhNXAG& zm}C7*14jxJ77&$BMIflxhjD&z%-oa+N1_LO-zXcE#5gC4Q^ZN<5s%giq4c|S6~C8) z`UqMjACHiwN6N80J$;UqX7|f;x0uiN$rfj6 z(_NwURjp#na-HLSHo|FdwcfVfmVBb5h*HEQq7v+VYcnsZz++Jrx59ecEQIEK#bbN8 z-8O)|4*)B}CDWzXd~8Qv!+ARc{dw&h(~t2SjqG$LVNYt{JophaX|u zLSo=1HW0?U2CGo665?@bK+RX}mmKaywbtri>lwW-_B>Pb9qy%n z%3=}jClkv`L#0U_`q3&OJXH@0eB|wxC)aPUDd^;&m*yS2x|9!~QZ_2t@kQ(TVyg;S zI#Jg-v|ux$@y&*;(>1BS#fYh1kc z&cBQQS3rCsa~OX72~T_Vto9mMMGL%-gB!;3_?XhsDbeemd6#V{T4g9gav$A805-l) z60$-4eFU&kB*i)&=TH-*LC82S_8P0bYU3g2u;-yG)E5#KCx%xyL!lYh?zv$(e~gMw zn4n@)RCF3`oSr7Kl>+Z4U(O0Qf(QzGSDZ?B4I>1G#B_5b|OE)UK z=56_*5x0ZoNfI1Y*D*}Xhk?sqD5H3NBTa^=0(YOwl{Y>f1ogMXDwe7|#d!Uf>_UuBpY#o*R)c@4z`23Dc-G?#zLu4j(Qi#Ep1@`Rm=S z6gIs<-$=D3-cP$sCJZTp@K*q$p+UMH!8n0#A+D|!+49&06Jsj?J_=o$^y!6(O0le` zz~TZXO0wAETug<-zTto=v9jrXog zc2t5EPo1E#Pcn8f7P`gd;679i3Q)2YR1S7TXaQY0_S2^r!9W8TN(7fB>eA~M%1J!^9FCaNIsap^^dXn zm=Ig!?52`&E<{P9CV_Z_oW6zbq305&3z;o}(LvEILDz#0c#(py-z^I&Kbth+GAqF_ zL9(jh>Z*fF9;|CLoCC#7)a2mF zO0PC7R}_)pSx1vCQZj=*f|<%iGFqLd57C^kW_H!ko;^cVQ?{!lMDP}(#{J3j6Gb1u z%=c#|LXZY@%WZH`Y4&G<#%qv1impOuCI)%24O|MMRguetODu>>tzs=(>9pD-Fy4eH zQ=uBtywct|@6s9l#xRkP=UxN=~?0#PlNh6?#h-I6vQ)!!ezB?%8%0VS59Uu1oK+w4hY zWuPsaaX#NKG>rGsQED?|C-aPIKeK_hj?%;6Fqi6Hq zU>B*XStafF>XizY2Q2ruFHdP&p8U(>*9vJLSIS6?CfBzJUT7$+KW-XrVP))n75A&| zPu){E%@JzTZA|0rs|W}WEMHewv0)%c{kiYS6lzOz|J3GN2DRa~vnQGS{;?q%6#g9g zOIP9^^X=jlxoN6Hx9=O$7TlhG4&;VZp=!)saiOZ(O3Qp_&~aDSt{qx?HR_D(iC!se zu4jO2MAE_YwuNVZD<2NwzAWGs@L%wPhtq%CUbbHFHi1E!d%I-G{-XU$)~7KY#{+|o zqZ~Ub)-I@XsaS)ugWb_V#~q8Brq_yUMDu!%LXRJlm;9ciBEW`{u35e3@c@jV%K5hB z@zqLi!?m_G3D8uUl#-D_p@tzql~)!(fZmYY%9UBk!39reOq#m0HYGU!=Odec4)gl^ zwlUc|HsHANb)0{3Z0&<^FVXL&Ly3o-K@S7x?hPwug?WM3i}C-lziY&gGm*^pp8f78 zuh`?_kTJ8{(>T4S)9H~P@8KDr8`NG<8RaJe!var)pKuFvI{`MWWf8hl@KZn`71{oy zPhOi2YqpNxr{(E=^AjH&2?cr1zM@%a}@SQMx$N*RzlfTmz5YT0|KeMBHUQ z7=n-@NI@_WA!X+n5Cv6_WAjy@SHi@zdc+LMDSGJ4# zY%rYABl5BHtX}^bbc3c-7Re@Y>w@6;XB{I2ivS?QjF-VMgd_tcw|Zf&VTs;OL5NqV zFg+zEQ*<1rDW!^b08|j3hTt?U2N37XQ;nu^=Mm=>$*pJ@EL;k~q8Q0s>LtIP=yT!_NyKPH98DiwECw?PJP za&@vj!tnHY;J6p^V3Y%8+)8iX9goN6*>*McJtK zE1SFF4h7Bio<0BXo#6Ndr~Vt;xA)c|;=maq9K5ubd4c%QL0@*<=a*@mykvd(x!A9= zSae4~m$Nq${^LO7LfWOx2hN9>`7CTW&)%~2t&1f*BPAJ2P|)Yb%B(Dp5k6`80T|dE1HUF)2|Not!lUGgj5utdZ_1Q;Nr=@ zj~pKwYS6pQT7rH1NLD0|h0^YxdH;=3YGS~N(j@-1_}`LsRgF8I(pdLIAuEv#eOO`#6fce6lkU`?9CKb#6-2mMO<| z`Sp66)ZTO;PiHuX`iDyTE5y^#K9s|Ijz03YUtm~X_Uox!|?SW4V+olTJ_ib52Z)teFwE)?00F1ums5JKwMXr zIwxF^>YA)Av-?Cw`z=kfiQ9I~>k!zkHEHeWkyhZhHVAQSL`~-8+!MA!t?2==%;ZV% zQnLcV)$is)wm~Dy#KgCEw4@G&UEArMKhu=I^SJ|dUnlFPnrSwmgt+Vzefh0t7EQ$L zuE2mF_SJR4d7Ltkeq)xB!0 z!z+UKHZlnB{kiM<*9Ylcgr3mPHz{zrMPh}}IR-80pN%MR@OZkv?+~;HK01c* zE9&d*>}ExQGUl(e#n_R~W_ufw^>0fM)0<^<@cT{Ur=P^gkgtBzETWwy-N90QFn21? zDlVAQXT144=t*lnXdc)LO&Q^qhjKKT#Fs*jgp7w=T-K&%3ls_K6XM8yS|Q*YtG5Nt6eZYSNOo_6`|8szNtO3)w2ltt1xFh;x% zD?a|5ouHq9eV#|8WiR5?(v-B7wgn4QNR^}owux#tczJBx_HK_Abx;#sF($PF6!e=_ z0jv0aAi_bRFwt#o5VVj?H~@mF_ZrS@fOL`qOzt3l?t25CR%+*C`2v?|q|rC9K%BsQ z!=ROM{;Hje!3z?~!~YkHA8+K#JuCdOkH@d1IkWvXkG{m^gQLK5drz))qZM;!SzN*P zm7=Ps#N>iHmDilez2=nIymcr1eJjcfe3YiS{-X;CArWtLblfmFf)q}oZPnA=8sLWi zRpg0pS7x*YL^m7YZVhyO8ObXQn^qp0m$t%!aij+h4!>|gTASz>T=Qk|t;IJ#i?SWU z1*X|yVI~X_L&4!Ij6QkoF*ZTsv{^ETjwB(u*g!m)k^MCv&(-j_jwZX1U>8tc@LnL2 z<$MwWU%7#dI|5SazZkh;G^`*EsnX0mb@qe@fNHU#;%7-1UE~|K9}yGJ^ZzAWsw}iv zKw!+0>e3Dk zfoCHRAu5TN-a=GUQWNzAyhvA#_kr5h%MoI=Uyh$|zQ3NFb>r{9ml%2P=S(^q{!WjL zov?Kw_B3@>#-wD7mHc`m}&T*iiu_%}NF1fXqEtfUb?KNW7~ zRRHTD;-Rh33LxwysbCgR5Dy=QGND?zMy&=N(AGo5L)$-F*ieh(*Q(I%k_MPHkXA03Zkb^u41gk0oI0)-ni~`+6eXUtAxSUC%Fe ztzX=x8-ah&AQv+wS4Rtm{soY3Nb;p@Ycv@`KbzySKsQxWp(HY|XO%20!*vE$K04sO zc!NAqo0Kj3{v;hLG zXSNhq&>bMRO_MB00Y5dFF*_;|9nOop3+zLQ1Nr~uNusC308kqP4z{ljCs1CG5?QfIOTp)de*$92UUCW z{{h@NBgRaVNM^{vq=gh{@pllCni$5kG2$Gt0c{IoY+ytWLn1Xbf)&n8j?My1@UFZ= zzd?_z2uH7v!7B53ZR_p@;+6`a5#ETbOzG2X^MHf#D+%FonF94MEJph=ZBlFY&EQvB-XId(S;A=UR~QtnNB00 znI7&NxSLjhY|cg1doGWDU`Pt5pw&|kRFz2;&V{F~*b@kU{YcCwZz_Ob&QjEtl~fe= zh5D?Ggd17g+l~Y)3V{?F5I`rsg3l-Lvl@=om6^33Fe%$h`(&NlV86MQ#h{$(0%L zrBw-Q|65!JAMaYaRd$ulA5&Rj(D5Rb8u)oi(7NI0`B#=G6zNUp1WO|~oI7)Ein?H$ zaN+se3wNhPTE=Ek#7vr3ZdiNz9=!#Z%X`5r<)K*!YL~Uwt2hRmIdtt5>dk-3hQbuF z`?zek|G*^*S+5l8f`xdc&Xa(FVZ$~dCQRsX^w8OGPM8mjW_A{Q^#*u7y zK_L=NY;=B#v##v*L7t>1U7&u`_&CpE07+Dp>=e*0IJ zt&hyxI}stS{!0ul9`ed|+ke+vvSsP7L{w}52A)1$ol8{*nPn=I+0RSV+M~=A(>Kux zA)H&B5F%$^>XoNLQU9^qnS(AQElH~X?Qs3c*0wr^AqMC2PyW*S1obP^zX<+HO!+_||V9deB^Nv5!=1qU(;P!(|Ll(l5R(2PN;`!YBEWeF`^&np@w(c@ok-^pc7 zzVntUH;B^*x(K{~oA}FXQ)-&i{>l8&LcU4tNK{!Ia;>pQrnIYt=h6$1l`0VmvLKts zayP>j2|XhT>x7@k^gbSIGJk4XOeim9Mr<2Ol!1R#8Rq4saPOt2liE<|RH4*2y6~9; zec`tSm9OLGisW_MiJ94g!SpE3x;K7`!>^<39f{11?%3`$?>wpaBYRaJM*@!LmW;)=Wztr{V{b3rm_{d~FmSO+>-d&f@b9sJwa4w$iJ2v9-$EiXKxR zY{VpttFhM3@d&%ll^-dR1?IJmS;HNYf`mN-*ZzE0v*>2P&7FR?VV}HuwbgEZ492u6 z`aioeM#Y>kK7P1X0G4)S_FJ~rH+!G0LihU^=ub0lzT7wcrA0)ul>jsDaqSoK@ACu1r3n#mRmbb5 z=Pc|psr1OMYld&C(>|D?&O4g0`!7;0GpcNU^5B2hu7d<^;nl}tNngq)7vC96&0NI` zZ&pBzX(nI)Y%ok}YuC)f`xopbyxHaQrRjw^;*O3rT(_tlH}q4EHoYJmdJDIwli*wD z-tlv#hwrY!4S%jJY2>nDqnaCc&&*s2U2dt zd*+=;*(|7-*;P_hSI)|8O`l#>XHTxl_;CH|)$4^ZXT8pslm)=_BMS@gpd`Pl_8%H) zX9}|Khj-Nb=`jfH z3fX{7yTpii7aWrzfX8EytCOfcga)xdQ#^<;(9$s|hA7G}0wB}TQ5(_#1)>7V3Lqsw z!!i7}^OkffpkKc++EX&2qI!GeX89kQwSMuHb(@=7!U!{RD$`Ev-kqw&f@Q*`g;$u5 zTf)E{8pn0#r{kaZZ0tV2Xj*Q>#f}r(jWCmua_OlC4f29&Cx?K%L0G~9HLR`K21{&O z>ox9!I+r#T@egcD?acK$o;VAb%ar_w1U5+sU>Pbth}>XKlw zYhz)n|6>jPvT&Y;n4D$LRo4eJn}(FUWZ^F!9$!vv5=(lDn{G!_9fZk7m0*%FwEKt8 zKaf(MMoNjeRNN$K0=yC$k~;qC)i@PtESBD$p4k*+ni2nF3F3ao`ktX+s_)14e#OBJ z5L@98X>*H{mb4xJJyFaLJmx@#g+wvH=vna@TgWs&=T|mXFxkwD$?}N{H{Wh=*OA?m?!~Y{v@q zn~+K4FaO@Y9eexYq?xG}QG8dznibg&Q)!U9i*p!+h$dwHuCl#{Yrl*|eE4z)8vjor zq!-MUXRy!X&>dY4YoS?q`5s6VB585sTNBP?Q%GM*Dd(Cb*nEKd_@NSZLl##dnm-8B6KXZsHqU6u({b6G0=yGN@qA95-BFu2U+J*Z^lUW^I!maU0`K z{24iJ;^(gq^)J#nlFvK{Sw@qrJ6yUhX%FS?jN~ldJzn2`E^<~}fA6?aStPMvo37{# z1*C0J#oo!@Dc&V>n1HB^<=;gp9f_{tVXn#HuFarPE9_=%y}Byc%2V1>d<>aYrmPH~ zyzAiDF|EI&NEIkp2O{T=#9Kd|TK537o-s5PG)44H+ym=QeX_=n%#9+iiw-PO`8)18 zrD)%y(pMi^4+ajqOMFu$<+1qMo*rV}H2gc}K;D<6VcD9y$K?2qEa@W|)g4oCQgT#c zK~h1+z_!)W)oTvU(HO2qG$#Px{e)hpI;g^j$uqM%g=Y=)FD~|P321W*3wf9venSfW z)mIP46a`&whR=WWwMhCg+vn|FGBLsotuDIXBmFrf{hl-ScOS#s+Alvj-BiE-p&c}{ zTzbB`^G`Sen&D4Iy6?J6Z=53o%2lFm%7rK#6&FWGskqxzVg&o{ zx;-;dC@L)$!KnDFFr1`J-Tud3EMC`O(10Ba1;2LBisUxqR!ArWhmZ)Q4Oon*yd z^<5H-!RN|%pY4xY@t;Y%z;<0NbCxZwMdG5j$ol^|mlcWe_|1wi=g+!GHFup`^fRB= z^?m2xM@sx)%A&C95q6>G7f0!>u;%!3i_MB$FbPG1?!9d(^6Q z{ujJM+j0E5kEM22-_?N0nXS?K%8P!=@YCl=bN=@>e7ks6cdM%=Ed0T(X}273PHw4o z>(Zl&_!C|!aX894tH5GO;{w+c(_#8TXOz@)SK7~kR()9Nh6XF(=|508#1}VEMG}1m`768yNOSUB1HXdPh^ep&u6t?g!cU^`@h# zon$@y`I{7}>UVGN}6;+|V4~*8AQI(#P1o=asH8qh1|0ttwQb zJO5k3PpHn%iw<6IW2@q@a61ZN>mzhsGy;xFT7ccjF!r^b&iKa%js=SY-nLv0aNW-i z+TRUzdzenJRS~v;YQI*n1X^5lzvZVW*A3|C0D=ssI?Tzmg=N;>0Q~DZhQ}KPiTCi& z2>Yc$B!i>`&G$+Nrp-K4(uR>}y{yw$qIzi&dLY$WMuf7aP4=Onpo)#*RNB*FvtdaeIULX*m%LyK4rsx7c#zdLzl(hGO@$ zGx|pzP^;s#a}+0EKwCcVV101*wyv$NHIH3Q$kh#>Kfc!Z{HVcz>DV-$3}z9)!ziC4 zVI`%VWvz**%_CVXq{?A?kR!He|J_LAy6gixx(P3*{tn>z_hC?;jjuHNt|mbOM&J_g z>Jbn_4)D0O0{;%LKCHID3w~D%R{jZ6UM>@q_@LrLd`bq#K>y-@eI~Xo$~`mKn?!-0 zj7Pxf{(*lM%SN=J+7XArAOk~=rmc>Qh=>J7)}|)M;S9&(#Tkd*ItEoUcW}YRxdY(qo4eswMp_UTdb1)^awI1(0)D!DZL(V2gyf2c#Ey9k)&~K3IZbn z|0YNh9CBAnlG^T2XgumEkTLM)`<0W9iDV|aA59^_DozoWD^k&VtJ%O!KTTN1q~KZ@ zB|`PHU=;zwpt%HG1)B!EnZDlH+1|da#M?@jpc^jANr8C18z`>%pGJI4!ZuiEU+Q|T zn#oz8nB?X2qIbttfve(LD#?>Wf=HM`OX;S<(^L(MaJuu=rw8v_EVYGR*hZ`WYEfLf4 zy6d@)+IV#P>ub~)MXh?x9>QMZy5?L*yP9>N2JU?$wy4e38Db3^BX3u)8ST#d^UrnG zfNyU(dZS*aGwQxaJZ(Rj^JPjyabjpR0j&tRZdRcQ(V>aO4O714oNRw;5{wiTo?&jI zm(sT}&miO86jhNdPmL4$!&i`?*w95ThaFML{NrAo~#cPDF$WwTtp0k6(7mOYJ7@ zTDS$FhmoHa2=?QLk*hO^{JFXOxQySTHzNK(*d4!09#|fR2f(HAHB?S((H^cf?5mU; zp+4kCZi=RL@Fv_Ha6j^hm0>9K!%K97+(DpjR^xX*TXG~-gIvCvhF@yW5#H@?DR^^1 zCzQ6uN<|UV7$P+VTNoS2KiHUR;lGJ@kq*?1t5}p&Axp#hXx%`g31WmtU=Doxi-z9NaYcHSPRzPO6(^SEjRD)I+61>e6%SbKtgFg3%n> zKszKso6nCLY9y4aCuwNQ6$w_ec|d|OPm3@~rSa4@DWJB1nF=lcmZVL}0>#qADoITg z9V<=Gl%mX2!@Bt3TCot^kf1G>FE{l3Jgi4+4k-x^W@c@@b&nPM<;%w4nv1u#X5F?g zs7%8Ro`QHECnT3f_|DnPu|9-SJ|`$NOr((%wD(X*i7;AfwI;du=?^H-?8yvS9(nR$)2$m_~= z@x{lNLMS~VYLToL-vW0>!u1?wST0Yvl9(7!(;QnIQ>=pglWPLIykqU9Re_cnM_}TK zH|^CmXmp;>f446Ed~xk8p3Tc<)R%1*(8rbIs;$bcATP)ws8pjCrJ=)&OqVCaQzcoLhOkz0NhiW>;CM+X`ihR4EOi zK4}|}u2(N(EZEeXfK1fy3G4aSoh{^+tJkurcvPYFk8fxi-!RxXKF3EB$tHtG@F>A5 zWsHw4PJx~_uy7$vXH{nL>NE2h5k-M%?j1z?boP^Nrg-f7#dXx;%Kv7*m=>|1fC;%L zo|v++GVh?-lzwhc@wBr8?>8=qbr*UIQz<$eJTCI^cgL(yuVAZO4h0`}VROrw=*`T= z#iH@wB#~zY*ApGX!07zJU;9E`ZUl*Z-6d2M5{7T5nH)ZRj-RK8+~tW|VBizssK3yW zA|cxSsml=lJ^MW#92`wdI@2j1h}S0}My>uILGtUA~SvqfBv$rOD^=2$8z zQ4}OLs^4HUA5JWS3YmO!JG|4DvSXo5jTB{Y+Vs_d)?XddweNte6n_~ zjtJB%p2sTO`fFo^Q`%RDv`4~+vl0y+Zc)*0;Ow44X5n~weIMoq*WWQ-;Zg6a&|+_} zF;<>|5sgK3p^z#U%3BJa(02-$x+1!SHo;cM;~sw;7h|$Oe0w`CF8)51vjh9i$NC+b z9W@k0G>+2>7~o1NX1h3#I*+p2bE&xV^f9;FGRUNa3ij3X`QrJevuM$5)EMP`(mEq|$a$vTvQm$49*7R~>U8p&!DN-Y-oRPXPRH4GPLWdfX!;)nK(hbhy15G&P_Zw}+ zWPP+!s1PvqP28GpSVgj0ye9~w*CE@o=RQzh{vh{rH*wEPN3d#l^&`YKY+RITtLkV_ z02 zfTF^@rg^rHtqGh@Oc?#Y{=DT>Vn`yrFXR&Pg1cXoWK25cb-J;3jr#ETUB6})wy);H zN^s0v85~^M7F_X0-k`yYv9dDwYj9~`VCl5LGT?N8lp&>__xd@()}2c7Op^6`?#CZB_W34q63_6@O!rv?W(~gC80}sH;a_~B@UI1b z5U`4`JnCD00hxUpu(#wtkmCVH$-nRi485M?=Ddo+Ayl)myiL z?Jo|mpS&s#17cPLppNq)`LL?Qj~24q>=_JWBJ?f%Ad4%TUoaVlR+c2g1?HwwnA(G9 zhFMr{1hP^E9@F4n@*++E1M&3-^ND2(>6^b71wZD^pW{cYH=N1oFgyrf7-k2DqSt zW5cCZS*Y1H)FUe`++&Cov04_sb`h3z-RExwEUPVcjnC`68oy6`f?(Ib0(Sm8?7}FoeZP%-sE(!XudiDyDXb!mh2d~lFD9m!*szHR=MHIj&GL> zo3`$@SYQM}AHtSUIGYSJdBsRb`HvDzG@$%qCM2z;QCGkSC3@k2L5dSO@ak1{@SD1{ z$aP<0Q*R4|;3Tn%hD=S9?D!iD%UkVrF(A-$4C$ZbB}Rxol!&r-)2~#F5&3UBKVdpf zWqiIM^BCvn@?C`Dlx(hWh5rg6H#>#+p``!YL-yF`{zdrQQ7Y@Z`*#*~G}nbVw)ogQ z9~rXInr5?X-l!&G8E-ZCZE~U-A5}P1o;yjWi3t{MjH>c62=2ySnX#RCP1^>e1n`X4dA0AAg)zy)NnA8ZB?!$ZydC_`0^R!Nn zysRG1R#&ydp-u#CPGmLR#G;ipA5bcSoW8>UNc2Q`00V9tgZMvrDi2hmS{sg| zH!^<386$O|&X^1y8;~t0goR{YP;k%7N3eDi(NfQ74kaM&rsh5lDaxA}#Zsclp1@Nf z@anplJr&FV%zGL6TjvXD%uZ{g{dO{G!uk1Iz3+fagJ$QkoG_X_t93fZl>}XB+7<4J zQeDC$yH2<8*iP@cJQJRi6?)}Z=#&KWf{{H6hO$a{iz-9dOx3p*YA*PZnSUnSE^X#Q z$85=V4a`f~wbj?p95LHqU78=SD>D%*9&4x|vNh#R-k%$uuK6qYD4@GSvT-8Zqn`z1 zG~$*mE~=2{DqX&*%<8Aab21rrVYZoz36Azs$Sk*&yfWsx^OB*7HR{67mMMrlPA-=| zbxK2UV9Jj>K?jz7E<8ouMqrGEed9bvWzC6HZx$#U5sbPu{`mdf`v=w?SPWy7blj&X1-+|+yu?pD2JRqf6V8K?_#$=nz@{6UkFY$78FR#yS+F1k1A`^> z6?E*=ZLv#8yd~K~U|dR^h{Xu_({lcN$b@Yc&QUhsI#a}gpVZV=D0Q|@c&+EcN2m2B z?~gh(KZ|FRr;(bY@KxfN)$1?)Vb#PGdYe5>9f2g&!{g*VKTn_P_KJ_?DCJ{79Ffck zpydr5I_)7}xgVQ~Z6K6mvr)5ztIAArDlr^|3!s^P3EYeiU{G;oJLr>z##|pyes>X` z$3fwWG4#gqr-?oI0K&GExnU8rQ*dd3YkqA7Wx33ErAnV_1|tkBK_&aB<7M5XCDwk- z_#~qwL@ZL~Q|+DBeSlmh($u>;lzeKCe4w+;`&xtWQ5CnPFClejD@ICiJ_v@7pT+|e zP}CaZljfPW>rt!Q%@TRno|eyhqX=x8;c|WY`uDD$evkG|KjETq6H^o8h4Iq7SC6B3 z!i$Fvjl1xoUcV(>sUT*MC@10T%sX#d`&12(vSHYA)4ZdR>!gr8-L!Kdx869BSQOU= z=+=1LJV{h51r-gJ665F6hqoL0x_Y!tuF^|KVBQ6i2R{snDk3Z_iI$f*;{O~1HNhPd zEMxwUus&0C_;^^q=59DW5p9)NLTLinBzl5;Ea~c)a$@Ijz;|oFk0Ab%jcw*5X8w($ zC5Il36o7%$F{@wcp2R$TeJHEG)0++2*toU@^AlyBrgW__$~`8=TVs=scr!7JN*Nk$ zXq0*#{u1jFTfh=b_rzNk)_v2Ltx~$1qZC>XOqgS|PTf3c;o_{vFM002`k=?v;|%^H z`C^`-#@*utkL>cXK)EtRennt?sspd8dh3(%%t?P5$CW&1pOGE+D}+!!fb1v?igk%j zQzlDcu;DkB`6b9^r;lb*EHqp$WghZ&a=NQDk;#frO4eNT6Cv@kOS8pVO<05mOwal5 zl(+>J2Lu$iTo=_fy5RgkU`aq=aiE*jdBkMgTBS^a60qg?Uh8 z95`EAsj-iiv#{in7Z81dqrVV&h0`)-#`4Umsjv8qPwQFEIQj#~NY3J&lzLP>4l z4|SDyfg<-EyreAjwB~fOx8upx$%bS{jyfl?#1`}Zna#U+kLKuEmt^P{n9pxY!7jW| zv9^ve8J7GBT$)G7L-$U;rph42Psl?x@hWmj-rdqADa$FO5hdj{Zj!dhy81!8%yuWT zQ5xG?!5CqX7AQZA$gF?T5y{AebWL{W6PGB#-TD4g{amvPr*LE0dkL!L0Ms7fjvd^# zCEIoI;_g2sH$T6z_w#LF9ROg;%qnGnGGG@iP8ceaO1t<~X(_HLX${`~4Id?zuY`%( zeWB&4F4HvFfGVf(^?Tz9wq zX?l3gCV17XfD-z?&%0n<#pM6uP}k7seelMX09e%~M9n1q1~*~uK+9?Z9ILHzAsGIL ztEp$C!;9I})WtIx1fqPhyGswC`TLl(yaoMpEla%jhK>3!B=H2lr8Xg(h1(=sq9#6;2h4b;CE#Q z1r&oIRuMDZQWET5B%wO}X3z(fnRs=c8ogd9boI$LUL>ii9p=3Kw~c@4F;|>H*aeVT z1x{Tae;J)&FVmvu?3hy5kh#>5gLhoyT3VwPtFZlMe(qnte19M1MFa z<~GI$T%NHLQ}`8bWNi7X$B$o?yLkM0XZrsYxg;n>9od$_8KNcf8mY!#b7vv@auH=A zH@<>eS-!!41NfmG_Qpp0oB+&o*s+N0L7#Sx0kOfyQsnZK6h(i6M>g46rz<46TGF#^ zf*k%dyHIF**s8cCI%jaKp@P;+!yNKy6)-o&%^i3A_@qdjliva;_-{poB0NHAhQ$8N zCTfG?l;Y&)XUQpLb^pIjYq9n^1*mPuyt6E0bW=%E?Rs&{WrBWWYgD?I)arwCOi-i3Y4S9WGuld2z2`gK@>f|}fa{VwE) z11t9CTO}R9FX1N4gk#QrKEjsmZYYT@@<61^x)cCDmzj_w*@9p7so^(nmF%@N(M^an zw!qh1x-T4^hSR~wAJD@oG1G89xP9bc^b+m%w{Vd|1V>|JREl+Ua62>x9K|FDi$zq#UVu93yDc_Gp!<$I32fP@ zjbX&3r_$fC;b*@6Y>?AQ$y8 zS+-)_?0noR=DnM02VOU7eVatwGven`_1{;Ta{p2PMi>8^^wYyDlklY=_wTKDYhJeU z=l|Y=evRHv4_E0R_IO8Vn-gx%U8DMGHXL`B4vF;ORWA&=oD{=APz8ezY=`^ooXQ#D!{_S=2xrs|dmh$#H_3ap-Fa&y1OJIs3b8 zjS)A;3ueNCdzjjKxEBW{Z$`tr6vOe6T7F)ELHKV3<2y+CPjL)cb8~ z$z_XOxvrV~-O`B5+`y~$ct*a}Lg#DFCrKoZ{ps4gLpqL9j{{|@i;DG>`mRQRI9}j- z{s)Dy)^y{tp!I&Y;Ew}>TMJO*wR^cb$0{dttAx6iDS29kRDlz@T|in!J3;IKv*F@= z2o=^M4BU^hspb|PQM0GstfDd2ik;`GC@rpQDdDu0itc5%HK|zH>5}C22pMq{W@b>y z&fe2ZY3=8LR@T7Fa#3MdDrb;>uS~(bQ=-fj!N$TlUGRzfkZp4$Q3_ebW32{y>-omj zzbEEBegt{WH%5ELJ|veD5t!22$_z=x^5wHnDMF>N2n|^_r}~j!E4?Pi+uAe32Y+wm zSiFuUoZ&M4R7!DcWtA#g?^P_TXsmp8g>>z(wz!q~jW~Z#MZry+E?=Fb4|dvXXPZm( zP{V%KiwzBN7A(IPujXZmYI5r+!PeS%UK`(8cv9Mhs zZ_X9P3Q*!SmItSi_U62(cB#C9dy@E&bhx%JsAx%&Aa`fxX67~t{EunSB+1YFXm!}W zF6M1P9g)-g6^D?v5*05Bqw#YyS>B~{1Xd%x`YUc|@{i3j9Lw9%DG|3QK|honAFq_t zQ5kT*vMFOq+)8D!Ht1I*G+R)h5)Qcjbt8!5sO+^i(w&7wCs8cSkM5T7SZUFKc2B6}3=teA%R>cBxfeiqb0l@$-;d z<*=4Vq_svAZsw5^m^;>WaZ5mNoO8ij#db{9AAz~RYY?W7W*ty|zGmCsg+Se{WF741 zIhW2@h)REHwzulFY{(vge@!@D77Qh>`DSHr*fJ-XYRA)jZFQ? z*UVS}F(oZXNgB`o*95*6QG72WZ{5=(;eT*;DNB4}T0`WEfSOAXtWq9nG`1t>IL>*? zab-PBo!>BOHl15j%sbNO2`Qf9^;QEO|G51FW1{8(QEV5qxEjFRT9tt(y-~i^Rpuu= z=6)VUbwQCh=g;)vnVdb`noR76uYNc^G|rPB9XGBejFnRyjr|FeP`Oz9reh6W!C1#- z$2M9&m)_C+Ca6(8!0qL48-r;4kHL`2XbjH37)8Xs*fAtl^^Tz!YV8%v-p*GBn0RFt6}L6%iB$)ha9frB*qqEzNii0Yg_P^DNwS(0&b$BnQqJWO4OT zxq@-Hn|j_k;M(3mDKgoOS`Sy$sn)r=uWjB3<`6yT2Ly74esqUByWkp+I$;ljNsp5- zKu6}_cp#M16m&u=M28U!G(M&BaG0#9IOQVkT1o$L=^gd@04LlBBBP>3j}bH0H|6ep z#68Zq;sGGS|EA{N7#C7$W1SDeC{BLCnwtO1oO`b7rtSJ+oaSZS_T&6VJ@@jw-w#4C zf?_y9{#`DI8TLQgWYYB&Q--SPhH2T3>-j+##YvjwMOoEN+x5dZ&C9y&Rd!y3%lf?E z?+>(S$pIrMh7%-3Gc3moq9p%I74W-Q6UGm2@M1fz=eMslU=$~5mKSAJH*MDs<1{a; z^=7-qT4>%D5m(vZ89bVOqB1dVUZ_agt_vQC4-+cKt9;^RjOHabC}UBTwD0 z^^YkVrl6QfrRj!g+3XH?r^^EXAs9h1oFFNhVL4tP6p1BLud+`23Z+V|(dzUDqseTs z+UyRe%kA;{{6G*G0)@d5NE8}_#o-A=5}87!(HTq@o5SVt1wxTnB9+M%N|jop)#(jJ zli6am*&R-o+jArB&xZk*_Xp&R?ld!|lvO4#t+_tq1mz}}@L8hU~+pAe*E*y{sv1<9E7 z=LUu&-`5#w*Ln4gvTQN8ykU&)tR$W8^Ee|z-qIqx0OyQmAvRqWS|l86zalpb)mRgr zujwa@{E5vpe;P8rD_Z1n=i1@O48`x1)9^Em9y`8oByXVMgY(HGXr74Me7z=n))(4v zW6yb3z}CP6ErXS_hNiJsVAhw0QAMQ{4mn&1MP!z=;6SVCju&EW#WS$eai>^s`iYLy zvqoesSWzY-jIa_uNJTJ5!56aDfv+h*2dW^*znr*tdm`O;6;F8lCV2WiC)aMbF4td< z4)nPE_WVgn!12rb(G;@{6L)$am%?A*y>72evLxZ=zmFSD{yS4wF#PN_k^8?YY3!&> zztkcapXBSv38W;R7<|ob#xo;RCT-ryQdy6p%UHp;YI`e373J$bR{IeA5mY+7f14{WUh4}1XYa&cgM zFppUA&dqRit}J+Vj5|uGb&gqkx6f#U+bbCkPF`d%IAf4ya#Shq*vGv+Xm`#=ulCg}y@>f6Wp)?GseI&1%sdpM@QkyW2HLA4L$5l zq6>}dFCyfvyGO^b97pu$U)+!y$ks)wevf3BAVuVg)<;#QDXPg#%tO@p3A(oS{rkBI z#LoZuif#6)(WSl2=OiAm80X=bB67RDv7(-Uw8P2)tj&Iqg2zpW}j6;ECVH^t{GdQ1AJaUnHp}cv31zIXsBkNGq zUJb`u6TFb`6+E8%#LfXi#)=@d&0R(Ju9D!@)NWYzNlB&$IM6aJ*xR9P@2(!t7#l1o zq2~s~d8NHx8%P0GBao?qZAHI;u7?(tf&HC}j13Fa>XXqQwLP@~z+T5KxH61ZV|*@9 z)#BVJn{I`aHF{4NTO(y18hvj{r zXUg6Y$EnwSUM2tkUvFU)q(bjsjUu`+xC?DGlq%mt_Pq@*3!s;2RFn)B10|^R_T@3S zj~XPYsd%8BhEp%F;J<$iW+p)&1o(+%WPmVK8P?Off<~T|_f=MyjWUGVkFqKXy^}X6 z?!_;)?K6PtcJX2=Ct2%52ul*GE4)+qFCHQ8XGy&n+Er%T5%e?U^FbQu$+M4M=ib+t z2L!3y#I&>=DK?2gny**}Ibv1$cKv+58i{A9*k4Tz&NDTQ**FCT?dT^$j=|E)j@*0A z$mc*wlU`^yc7Z~XfC=Re%2TU!KR-^ClA4GEwpsZoS+;Tn%j*Jx=Sp|w7s+y(_`1wx zqMldC22O_UJ}5lFs8jHcomZx}J#RFZYYurR3(2I&oWWzDTl;ZSv=?Rc0A6u7UCF{p z=EmEktJW_tyejRLkGT=YsN`Yv?v!GkbUPpzya#s0i}HgnMewzE!1rEM(7lEa6{t16 zeG033d_0ubc9nbIMYTy;6au4GgbgZb)1c>Z6*Ij;R)wmnC-;`0k%j-HytuYSF8@yoJuB;~=C?s#y3h9dkjDAtawtZ%7Rb^we z@#>GeYO82fztGZpTCI%dGVoyhw2y_1i@~0RL2%+b-4{wmiDXE#j{6`Y>zQ;UXZ&0S z1(U~uHlv1yWyq}8szso@$kp!US8bY-Jle395AWgSW84x@YdLM7r|nKR0_$)93dwi~vXb1%p@LeTtDy z3WPL3023&LHl?N)(liZ&Crz1y;#&DIf z7`p{mX7I#GQ3pNI$$D^S@G5IfT~a3=rUrZ1JX2Zso_F26J@t|FL%2AEs|Rm*S6A=W zS8r;?`BON*<>;xg=`VK}FEFOTRP_-)kpQ;g=}$*H4bcbLPw84JwgTJNc`2d4RX_D{$s zP(F2f?9@c|So}XT_DP#DH8ednJNK7=anBaUKAmFB{06n1FI-$eUGo?J<>J36kBQ#k z(c-^n#1)kLR?W+g+~wcA!aQ;=|MSByznevNJRa z#Wa8MBA&a*=W&1G>Qmu)Q8((N=L^?LzZWkm3~3bgJsg_ zieGwG)aBG8-b3$N1Wb%x{B`MEmXq(jm@ixh^vJe}XUfW;K8(w+kbYTgH~J#S=;E)6 zZN@bP?Nm@6eHCR3ZI{=ad$=#&`F80Yg*G^C5_J~G5o1w)U$g;j74H@AD!#MWmQp** z-mxIdRn~?6JJ%J|wfZ?RXVfp|)Pu6(`32|wxL)W#vN{ssMq2xTYds-hPYdBHL18<7 zv3hV_Q~xW@Utsfq`qo8#(Oir#HZC?Vb}o)A?p(Ze@$};K;_Tv?#YYzB7oS-C(Bh{S ze`oRB;_okhd-3(f3yc4__~zoPcMCG z>CczGxAcRhpDg{u($ANEvFu*HX8F41+n3+7Jh%MN@<*0Gy8M;puP*<|^4FKYx%~a* zA1(j)Hle`0?^LukQP$S$mJTf4zBIn{!KF{2t*@mIcAAliEG@`IwSf9$mN zwdFU8Z9TNAtq-oeZ{^b~Us(C0Qd=>?|2zESfP)uT{heopzn56~-z)4D_G-o7pR&^5 z0{a&GGxj?B3-(?7{b<$S1$Ke`GydLUKNo**Gx_&RmM{EqZPlN_Q@ovb@^1RWVBXH2 zWS?X;Al5^GDdyw78ngHofuvU<9 zi`~H<7MOesyO$kdLG}>Hd4fI08d-=%S%l?S2m2WNDEkN)gfPp3F86`B_ppA}3sT<& zg5S;VVGn@joB`cvX0_}-FcBYON%kHv2RE>Hv+LO*b~8J`-pl-;Tmj|D90p@~emX6hEvaMh)KE>+U2e4W*Y$MyuM%i^>RCciK zpeMW8F1Cm5W!JK6*gm!&%*atT4rb&S*pw4sNv7GO?0xM0>?w8@xWf3~0RaD%+X$`& zd`h$Pmd_9lkqOYm7J)M<0j}7hDH9-!EyiU6tg*#LnE-Wc5%o|4{ISJOnFyyYj>rU< zWQ#jx0(7!P@HdnIr)=?%On_Lnc&ki+UAA~yCc@i`(=q{`+2X8BfNZvSMkc^GTYOk1 zKs#Hc=aB&SY;j&DtN^z7giKfqZ1F=fVO6ljPsxP!!4|<)Q^HDNi|1s*nqiAykO`}Y zEq+lZtRuGgoJ?3zZ1MMH!rEes-E$@*D zxRWjKl?hmsEng!O@F`oqP9|VhwhWk~1RTqjZQ?q5N7YR6us2(tk%=UbxVLd(yc>_dlnHc@tvnVpG<5Nzw2r}U@I@n1YUrxydo300=Du^nZO^g zmDgn=P67W;v!C;a__q{WxkWjrYU)At5v^JKp}tA~nEtjgY5W^w*&H+3YER zs_SRgChPsy-@1>u&v|^FL!Q62TkWUpW$!`n-}w^0Ip4B>$p5_m=Yi`3e;TX~{$9u( zx-Ik%;nDEfh!Gi#ycFFOeKh)VEE0Pt_QQBG{$e7Qc%iDf>I>C(R{yYOGMP-iRC}=Y zFY7kfJzMv7{eAVnNb)neYg3h=6_B$5Mkw71N+EVl+) zKi9Um?N8hL+n?(Qbxe0Qc0SOV?>gJ{x82F^-|K$6XQb!Fp0|3R?i=k7^xxF~T>no8 zMh9LQj14}M({e|0|1@-B=!Y9eHrbm-H{HGI{H6=Tsm-y?C$`vIUL3JUK0K1&dSdJA zqn)F-jn0g|i1E^(hFIXQ@de=c9?;(d;J11QxA6W<8z1P;G&M9D(O@Lj*FYEhig!vm zwISGG_73)E8jVQIbgnlwnnq(b)6{6x@<@!oted7DNk;Mukz_K$N0Aj*zj zXEObn%;?LOH=ER~Kq}zUlUXlMnR<(EcGGkD!*uKx7e?hV{{}zz20hoGnfJKDiAGh| z)y72FS}=M!C~zz#zV(=yv`T-E8xYd zFyEuZ1BDxXJW|JdM|giHR~tKd{|N7`;}IXvHX5c;#|LvGJQlCxBRt#5vnZG8;u#;0 z)pH{niS-WVI=P?wcpdMfvw{9B%D=s1X2*`1C+M(a@Q%U3J0|HcSk)OY6o169Ga1{6 z_!T42d5z1fyR8H6py9TXdbm3L9X04aV7Ya#3nzNga`RW5nowPS)Ts*fosCA!h*xp> z+-{#s@!}-9*9ryIgz63lRhQ-RhQm88H_n403wbXtsX>AZRgA;i&NzT);OmZo8U+m3 z^H}dzJ}6g28*el?TeE++>~I;zQPr&-)eYAU0io+Po^PJ>>qj+|^v_`_tkI@iaZ=DY z9n(>q8Z#O(+BgoFhkmpxR*QuhbCpJkFO)`Uuc?>6X<^NVH)4rZw*AsEN&`HK!;~%p z30jpK=pP&gvKYiTMf}{zY~f9f8G-=;0IQ}=HfUT`j~dkV%Qgrj<^1;l%B1W^=cr;48c=6&lpz(bTIHnFf zGq^~dXABHOEY4$t1UBixTox+{mk5t$RkRaWv7TpuU$aPrPz*CZ7{=;pio}$Me*J>( z)!e$GE4Ro@KAo~Um7pi8S|J}#j8xb4*Qvw4y+c?cnfgp^V|8Xe6X$=8M{L8ZoV#A$MhRn{M$$X+cC?Rkh*#;dD(+nyKgq(Sg@k3LNzS#Hmac ze`QVd0pyCk0J2OIl@PcBy@`VaP~-W(<4W8U5-l6r8}h_Oi|2iz{NwF){hRyi+MlJi z-on*Hyk%>#A)Z?{ZEcAsG&D3^r45gBw3V7WK73ZRPACY`zIo6oH%TlKgXiLeyt8Jo ze-H#J7Uc)>K(`AE$;jEWn!+QB#*xo=PfznVfIJT#Jjm};G)=+0xdh!?Kz)92ab4i{ zZU6^5OA=F9z;iE_6|J+zOnepUFAzDx1VrA3iv&}in;5k6d#j(1M;pW&f*H|jGl)D{i09o!@J^c2MJX@XwL$f%phOP{nwDfF#76Sc`-s zO2(siv=EWT_DBbyUfVqQ;cCJ*`F20P0Szf=rm@8c?<+xR%_WkrozdR=MPxIFN z-vW9it&n5g1S-BAtD&hlL}j@W=O%d^8X=5=kp*w&kPe{6oWPF}es)!Nz^8%XNLJ@x z#40+h-v4y`vd@gof#LIy`cvsd>QE6I2j~AH1`1-a|T~bb;~`S`g$#HoLTTdt>jc z?fihL?-%XaPwgsZr?1qLXVHbqN9gGJ|G59AE5b$2(miS6U2L1Njb|UjR-#2VGYU z=|Uki#J~p7>Kja#!8j2w6{M_O+IsJwftfslfjnv${My2Z(VFbm6k3!L*(`#M1TUrg z=SxFExB_^{DJJnnMLWuw$8vaGs~tR0c*FU18^N2XvEY2EvAfo72*F-OJBV{EFpc~Q z<8j_^98uLHV50)-w&OkJV^(wZ?MQ<{6&S@Uj>nF&zMfgPDQ64Ky|8XGNFF1`hR;Lq z+6?{XPLjvcl1P>a8u*&vYLfR(&-q(~UGfFo2O4+PS&#)$mY)z+d~Ney`V|L(bH(9F zx+V@kqZ}O^`2P<7g(GJ{Pg@coAWWF${CYf_Y4me(Fu)oMd8>aNcKw^6BI?J6iK=MY z?Z7fGYUN^9cS-npe@s(9xZR(3KZXNn;w9qx=|4mxsjaHIs8mSc>kL47Z_6cO z0w;;z=fT%T!PO2C<|7G%#Mpu!r^F2q$%PCr8Cc*ZlrYrZSj1?|^bhg_2cT&b!R1QWFoVv9p2R9|b18~A~o!+8n;1mnlwAT5_rSdpTOG7sgyD@HCExuD%C^SmEd zNI2=nz@fazQ29KtJKekxNn(r-%M%PCY9L)5llX#UmMvuYqn55UuZ7lRW2TP_IW9LC zi-Y(;tRXp!75b=LQaiz)YY~{ z6oY?XRU^)=YDEchL)>bQpbVc!SJ5pnmMQe}JSvM&m3e^GEt(efhT>Jtoz)3mrK)u* zR|34cvsMWyYR%H&Bgi(nzt@)8YUD5By<;4aAzT=SBJw# zD}LU)`^>HZE8?|O!#4MA>+Hh$t~0w^GVw@Fo$Yc*T80i!A08SyyhzVh{y#r-*T&sL zRW%{Y=XG`ZhVGiVYbbx#HoXydG?I+9_O}s3I z&%J|2k)Gm$vW#F7fT@(gb=rYn6-^$@_YRu{;6frdPfQ#&i zGLVJpQ;D>9-q@2kF}m@tp?0^=!a#e>?ZZBQ;`nG?-R5nk$53?DiX*I`!@I08-s~@zv=U6MonDr*xBOt4DS)T`tLx0`&G!;3D~<~ z1x3R_tm-%@75;;$3e*i0uC9wx`5k9H`gYCqyPV&f-2z5ZYpMqM$adXx*5x-f=l8Rg z04c7QRAj4Z5b%`4d)Gid-AWcGK(!R%9i&#`hH0^iUs-@OyiWckK8L#n} z795dkG)w6H<(lz>!ZiU$?LdE4Q4Sq4NG&JL6z+iNHeep4yjv2^<3j!|omUt+@*$4V z&!;s0xA}Gq zTzXC1e_Wb<)|z8sJU3(t^lBya$j{8xI1Sau|2WR#FQe zF|&T23kxBb}Zb2I99^S^K_$;fSZ1W)vIZ+dl`$=z+Lc*LsY@p?#?Bg|N6 zi9n!cITNMIu0XW|lnOQ}PK!4li<&XQwZO1h5R6Ws+z~ErV1c6`)cyaXdE8wUNOmXv z)$Y4mLSS^xNogIdlk)M12Z+-XarfV-q*SimSnWs2K-G<4SN-5bZ*=b82w8#G)ZJi3 z-GP8RYF*plkL70T+wsJ9S$aDv3ZcSn^7b~o2XhAg zmX-KMkoMJU-;9>^3^s}20MHoL3HlYS-~uB}<5t8*KkSG#-ZV>Hs0mcfRkC*78)~m} zIqkbXxgmey)jOhAAYeuBc(q_J83p`k@F43aFNJicl8b}-N;3&ira+q6w2zx{G31#n z^d&UJ^?XoZ*jR*2k%Gq>=!wC0GQxSVWlOdD@%`^hH{@zYGp5j=CT+`3vZl)6zhCWZy_S*}5a1 ze%}w!K+z6rsmT21zL7$c>KfA{Y5ea@hlVpFaOjXYbb(7-RlV>9h3<7VjyFNJ%B>pZ z`VdfUKzugZ7Y>3#Ljf8j`~35Sv2m~q8S{97)BkS7chEP#UpwLUoqIh=<>+vo{Gt5U z@-GX}#zH~K&HMA`dCKQLkv~lBg{~NU1j({NXh<5s@oW%Y3dB*sE5+d{%EX^+yeZre z?2Gmd^a-&x3$DS8HVwp)`tU#A$>G(|6g3TS=UJ1aT#|NkxW#7<`Xb*gNGJ3A_rsKQ zAk~ewoK1;;qp6g_4Lz0$>-D|$dLLNwns7LjO7S}ng2Qk`rTr1nhjW1dx_p2h#B-?+ z>v}3RmdIwR(t%h2|DQ`y|A?lQ`d15Viut&-S7y_IicXQ79?X)}SByQ$?m)cJ_+WoF zGeTNg)9B=t-RR%{#yRSNUvHL!->myLn5NsR@dsRHZ&+)4XUQPQN@1~S$wY7>1 zssnXUaVgMRhg8@5O|EKRL#58|9rChLRuc0l`Q3ToG=kGw!fBTui!Axam}FlirkGe0 z(!mhAB`iU_aTigZ%$gnFUu&un%hG+CS!#7w{9 z@zrTwIJWr0d+mtovrJ>5(X>(@iZsQ&s)ut0`WF>ArHEGw^VchMS`ygGuw?~aaZFfb z;?FikeZZ5A8JH`;LBrK#&3XKRsqacQHH6Y8H?=C=?1_84UQc5EPHhH#NY{4wEZzko zaECwc>o2VxiQ{X@>-Y+DxY|6t1&c;FtgYF~;Q`xq!exuYfEkIb-@L!>PdnvoSGwQj z@=SXGXsg#YagLWC$wt9T^#I6daRa+W3;B9DNzvj4ybYA)Gfiu@d?%K$+szXoI$mUL zJAzzLcPS0{tpZL0rV3%`6S~2hfI`;q*&Djn(_@^_bY1J~GLGxIWjskIdo5RJ4`rS- zz#%(4GU#mqZm!VNHCw%YD~JUJ-GH9%oA57zrGtZ!ravG1m9%5CW9U zo?r(@IQVhWZ-lXEp|_#(;8e^3Sq!X`l(hK)KfF$of$FLaSxC~=!DyY=W0?Ugl&boc z!o3|^+;*fsuebzuOZ`aGs2MV`lztQvAKk zZ@A>W7Bgxu2CFPHd69YHwnh$kUeC`8S&z%hXjed)-(4eg%>AJByWw#H4et8>cj1C0 zT4YqUZ@i?FRy)@zWcHzKw84@nV^)G9!;&c#p9lcNV6 z){|cOkbG`lBImtQ$)AvK@K;Z_Dx>^6BY7sK&BYzhAYjnoxjn1L(>s7#_WB`-yT8 zAeOaXP+RgQ?Jc^KuHA;q18}YWCwDwY&>d$ zFN69bo2yr{xxP4%JO62L&tY)jqwlVb7ITOD+pG3uc~rOEdq%sq{7Kj79(Tq!kmlJv zRa&g=hW3~;%)Ncrx7yL8kBvIN?>9E@kEOd>-T!4E*0rxX5~<$T6&vW!{}-cwYdUuA zeD{_u-8@X~H!uDgK8HJir^$vHhi^e0Yk&orVWFT&@H_0yaj=jXGY*jM!=cY?iuc9w z18WEb`g5i_4yqARZ54VOeO#;By0iZixAlK>^Tz(2k^Y^*Z;l<<+0PgBPnl*O_Dg=V zX?{xYK1~0*&z*boUFT@W$SQakh7@oOb}!tBT`9M+!{qP3K5okv;6tz&1So{J%H>YT zp^z~927np{hj|<#8nWn%^Gn7YnT6T%YQU&=fiMOgzLqepmKMuQjCSLnI1J&er3Kfo z09O*M;DC^#%5XSrnXZ7#v_=zw1f_1%!V#9C(t7b=hMECkJ75e~|R@7)H*PjbTG{t^B zwlii~m4{!H)O_W7{Lgs3s@oM02cyI>y2x#-*rx^fkJn>Q)dAXTgLXl6LA?U?h8L)4 zq)?K{X6J~ulP7r$D4o;?IV0N>ixwT4LE{IZkSz?rK!2JFl|RH^iPd+iF154%g=*Ok zQ}#@YgmTZCTmfECIGSr`Y_~d{hd8)B0xl7Y_C94`2 zqrq_8^r*#dKd+c|8#dILnh}h}g8HCesc$HZZ7P&(bcSt5OHC|jXr;1c<0Sp;3DaM9 zxwUZV9A^t-RTzf&>I-W_{G~Jgrr``rq2IqRF2HtJxUe3?O8|&P3IMQM5d%@^s#1Ac zgpF4OEgb+ZxB+zi66noJIUg`hdU@<3h^J}$06>J~eX?U=n?Vs6R(k{RBbR{mITd(J z3kG}%O)-7dkgFgARr^duOVkB5u*~Z2fbWxQu8)rw=URezClm*}1J$Y$z~ic&tkt@` zwu)KEZxs!4d_CNev*J1Gc#mPg6nv_<74pv;PneMmC8jjp2BCv47_fiG6}Q>nnK8K$uBjeKgFW_Xel0v| zhXY-Wf$&Ybxnbzhj@r6pGFp>v9{kKM^R-P+cGuQLlHq8&Idk-6rx7icy+>E#+_XgH zx^|mchcg#^U-5pNxs_WxBB&j%ABprpbxj!hnDiR!Yzys^T%YEwvCf3y6qX`DqO=gj zW7r2HEJp;EK-5>e(3Vw~cEB(WXf8u-Xi$Id{6b8?)vH}&8C6lcRUeXKy0n%Ss-%zu zo}*jkc({OHcG7;*chqk}#*mt+qnR!RIyr@wUrwm!L{^~dLW!##gMZ{Mt-fA!aidyQ z^~QkWR{Tx6s#gEHEN_THumVz{%MVP6`s8$72?P{fZ%Swu*Xwos=a!bpl(J3bMQA-< zy!blyWxRs*NK(cyVB;>@Us%2#b+FMyrN~zU%LjUSpd~?RvzhdW0&5zqRPjy)2+16* zFHqpi5x4AW;#IZ``Oj%tZ~^rnuY%`AmF-uWCLf(_?+9JcUKd&h0>}@(c;&|lJ4jk9`0$hdGGLWFSkF}bzOV=b={o1Mve^+9~*J; z^H(5$?W>7giNB$U6{FC;9bFBBem6Gf4~k}AIQv3(|zR=MABdomt3pj=Hq zyOtW@wi2bh>fz;fBIL3R?9_u++T{u*`q$D4oG+uC?{t_~;d+9%YbcgOCC+>2V^SR4 zqMz3P8}RzSq@4Om`Sbq?o_;0;40#khmGt)^xFM+71%A5#GX+dj+1GSOdTl{(0dm!1R zv3TMC;7G8LT}c{(9z$l3$vK8UkI2P{sZW+GoipuDKk@kw_ol>cG8 zp{wCrp_%6XhWO)}Hh!UdKIl8@^**lZ@!*U+N^J)8c{yq?Fh`SoP zy8D~s4N7M3BhAwZe?re^o@qAR*@HhD2DR;j+ z_;+?tt!OgO)Fy7n6XgUGEKuB3b_r_wCK!$)g#1j@WdMZdLj^t>;A^*qlWGd z`}j^3{vWRCy%4|!We?t6I?g_61Jv7>kj}X8Lnz~yPG0y zo7=3gXJ{zl8A|wlIjcVOy?9!$QL0*kyoS5Y?|Jl`rs_4Cs*D=pq%o{{Y{OkuwQ4L_ zAgCUyZ)>Z+^M=|)Y^e4V;qIykWK`#vo~943dOx`~HUzv0;X>xYW7BF<7YDNyA9K*VIV@RDx`B|1x_(vgi-+ z4J{dtV)K>|RUpIwyh+k={`$aL(I1{QvOZ4#QAJo<-5WDsZ|t$%fd*eopG&u0s^$vX z|J4qW3yr?z&rz;(Rh_F5imS1)$)#F(c@r2J8uUq4ZFqziPm1_md2j$sPA{(F4geb zVaj zkRyOA4xrE&l1eMvBL-F&FTni(QN#%$K!YO3u3+*I0~dA1n(zj;+0%bip%*;#|Ce<2 zC;tkQ1bQz0cxn7{&=i6%=S|Qfku6B}xrbI=0q|%LVT_c(L<0&Kg@`P4hh`H5Xz?GT zB%wA-MxnwVJw{edKrCzt(00n*4ZSh`rCXHV)0!c zMSCpxg>l{MlSq63O~fCm24iActAF^tRbF2_?zJ*CdLSL& zSk)1@Sus35qA+eBbT;GB#7uS8yWq3OL*zIWyg5?0(GNnr!KE3d%QF|S?O-(x(T0HS z4YW|Mrg)7C7RHJ3=U|yclq|hZNYJ!)(R)LP#TY6fzzkEY336mZhoqRf5;do^6<{qfpR;7C<>_!G55u|(|+cM`jCNDT%|e`Abho0?hTA_|;^ z`&qvd4Lqm2)tKfpk65S(F1a;&I{v*-y_LhJi6Kv7Xvh<`zzRj0+|ib*?jnyT7(Zfm zY>zfaFW8$!Ig|&_7Hqi75c%wm~6O4*rdi$e~S>Atk2UQqR zQ^bU7)sdQR=)sMy8Z6{!gI}+Y4y2WS!*2|@!c9sbs@8D}E6(DrYA~X9C@#ZmxRh2k z8c;J(nYwXOgYi=9RWN)|1R(WJdGz+fT=;~NZ! z$P$qe?rM0t2@nZwHAWS+VzU`}O=Fnrc^{m5Wj%`76^#ER9_YRgY?yU(d{ZJEtAh`z zUF}jgfi3&>dB7I-+3@#OE2fgD(>!WA;BK(TlC2~9#%xT9SpHBb9M!l|Ww*MgZR(8PjCh8dN4g|U{vaol5SP2GT)AOg?UMz5S!3{CM>o(!Xsf3$# zB^5@Ll|%C*N>g+=20I>Cg66vwGoxwmvNf-6!&}DSh*q@Oql}!F&x$bxK#pQeqmWx` z5#6n;B>hRyi9wztl$CCXH|Pxm4Q7GkC}x!0Noc?G%XZW_X~B)*0{jJT<-Y6lxA1T0 z5h^MrWzEC#=Wjma_ITW%vHc$+qvMDCPfnkoCw3OQcF-^S5o_d^z^exTBKE+w3%qKW z!p#i|CaiaXJ+iPQ7=!_c5x`Y&Q8bYT|BK|lYieq)*_Uj#?O4s11MPt?*Tg*D;q$6` zKIC^HOw0|*rl#Z#wN);cpU)@kL`@A2^=;W3lP?7VFC}lxw*Agan)XsSS5q5J7`07J zwMHUZTay#IuZ4=ZAn!qR#m{0DucCkOuqc-`VyoS}R^Km1Q6cuZSeMwuibF*_m8Rmh zl_t3Q7Q`8FOIYWCcPXjk{80Wf5mz3z>=yFHX|b*R2a9o6?n=>gcQPlAKGj!Av)m>fH32{Yk z4|lF0EE{Va-aXvN5#wHF&X%^EZ_RDSF1p;-ORw}E?Cm|6e_H$irb)-VAlgrU4)xfr zjp#}oT9z^=MiINsM8D*;!jGV!7ov+qFG-|;VBqvnh6s{-P{}ulrxuFLN^b1{Z6b!y zVOo2%pCjMR&y5nI@mXs}ViOT1i*e_&;LrCUmgnI$THciFUfsZW6Qb!k4F{SQ5K3|m zm0Rz;r~s_kjurX8d08Mm-oP(Bzg~X>5bBCSH zNpN{0CWg<8ct9-_QR>o}E8B{Tozv-}cUwc5GjYZK6UX67>_X1J9E`^sBThu2%Eb|O zw0wo7l9Su!3&s25MQks2Sc^jxqYq%4Cm0I22@~)+MY}EkR3WQrbW0X^KsIx)=+6ms zYH$8RDj>j*iS0yh(Nk`IKvP5x2YAF?#618gj?;2j?xh}{P}RK$!XTSXWZ+ z`Cay9_6_z|?8j@&PiYX)*;rIBqE4y*d#6DtRzII!Rp09KcUu4I@~bIG#qzLqHJ_q@ ziTr}9=btX^NI86^Z2o+y1a^sw9W8Xom*uZmNm+p-rv3xMrZ}vIUeP|$%FoID8&vMH zx$D-r`v+@WyL>I54bY3|AaJmZ85sb#(+azlur-5bkll*()`J6JD8O>Bv8Hc`(v&=drxx&SNW0Th=r{C>!cjopXcyQ#6f^23$ev zHiQF#aAH*ryakRts!onP!hhxL+D3^_`D+waH5Hc&f}i41ObdR!s?BQxP*fX{=PE0a zxZ`#HEBFyMz`tt~EX>fOrmx&#s1cxmDRw&>A#*2GF}mXl0|vY33sc-$EG(oZ$Xi@& zc$WhX#=Sq1<=vMVi#?XG_O%qOe?O5-B|l}<2cUCJ2E!3O4x9YDLP7KQH*^$SoZNm$ z96@KCcJz07p2Fa0ssV>+3`%iuyh@GV4XtqGJ=o*`GY~9+$he{G;vsC0`YXR*SFAu- zQB$FJ!H+PeBhqT5;GUJL_juLz&cgIY6(v&!Z!SPv4)|F3PLT@@NPPT?gS)=TtLRSs zykwdmzRaKv721T~!iWssQ7s?j0Xc+^Umjfe;M!2e6Y}u_{K$B$wTQ4VLc7{3Y?@&> zC3GtNdHp-vdR;`a8N!K~7 zHQ`D3&p(AQWbEqnb?$<TmJy#>U} zNjzc$kF%48C( zVqx)|Aw}qHrdXKNA-TaiPL>ECTn43(O%=uXPoZIV`Q7ohsgci>h~C_t z!CT{Q#3UJPUGr)`%p9p~w7EXBJBZK|cr|w$fjZCHmm{cN?cP>xxfQRgc|&$1cDqS= zrx1sL_CKbvOBeipMReY54nC0ZP{HKG5_4)&UHc-vvuU3qk;=7B_i zVxVjKN$F5>`+(a$P&?*a{E0XNrY<=6UMDWRF5Oz5tSD7@M(*eO2EP}6n&cHWLfi~- z`!c37`73qOMk7*S#j>!>695C(Kt%wflO(|cXkZ~Bog=v}5${tpyA+TwK|@XuY96pm zpZkE@XIdfz#@UR}{I(21fE;ZaZglA>*f;NlfhVQA8i$*@Z|w58q5;eAQEbV ztw7Y}>AEqJqyQfz@ms3xBBt(Nsxzo%h!n`bfk$h@p0qbsTO0GHJ)t_(-Q9I#cT07k zI^v5bp`SOCabEk4@7PE^m=i5b20@T+KDbk+aL$RdR>WHJER9U_Vy9d2JE7xas|rYe4D zj3~bIk03jJ9`PLLx5eq@zcxMJskT9BsK@@*<(YMjkBYk4n~dBYT#mICWi=F>+0JB?WH zBiIjs9k>;Ap`t}a1`M0lV2qTD3VR1&o;8a5owBQLApA1cpA5I&Pgq%gp`zV6%RVo8<+5n6_0MkYTmL?yqZm+J!r!;Wz>FOv6)B%$4 z5IVpQO0DYHuKD(_7r=IS71F8K)}&=Xbbc;f!@EVua&dTGKC0&wayK;8%fHSC;O~zQW!%O2x%{(F5{%KI;lP2GQuL?=Q$Im>);aL`5SB)MG2Y;ViVUGF zUU~a%Or7rHiRVrIFg=OGftK+i5h#X2HGi{sZAUTZj2&z%3^X7Ixn(Q-{r13b;6Z$4 z3E$e0eqfGrwxL3$g&--8iGdWj4MjTxsd9tazGzb#i6WcnNLf)>RzRk?!UMv0u%P-a zGgkCx=xN#yM`inDgx9@LLt%jMW9qg|M`ZbE;Yv#?l|P)KfBal3)q(<4nhH`GyZN9) zXPw{t|2TVg@$7!x94b{&sPrN$R9d*g*(fT`qvBM`sT5_X@=*~d{CV9h{3fPH69`vL zV@ok!ehj!gCw2|K2i(U5#`Q7wf3V+Ye+b^JT=nhrwV(+vnR0{`r(&=%H05J2qo)+= z8lbU{A~m2!v8zx_n=_JPn&jgc`#!`5#w5yjIbmgr^~h=qdlD7VJq-Av!jN28Jw}(_ zd7Xv}3SRmrM+*}-crm?AJWQ>;fPyqXBtQMBqC$R(Bf4cX;9VEre!(aK6+4^m!$55uAq}!pXwRnk zEBV7gw?8zK+Td%Oh8w0Qq7AFj=KQ~;&;Qm_x)Ct{dJ??PtBY<}XSxr@YSiH7E<{<3 z^T)$=R=#7KKf3iln10>(YR6)M?=eL z9UzCGx`zlfirK^KQvNqCDNB$2_WDc!@wDGTEab0>ZxZbh-=8WD6NapUgUmS&Y6X%4 z5+kFxkn13M4wAb9WOLeM2U)xzYOFKm0|9s3M(`ZHQ#TQvOaVhsRqwH&dDfB|Tm-rs z6Wz7jsv4{Ce?36BSQGYmO;|t;8XzkkuxxJWrez0ABZ$2rQ3Pazt-NI+NVQ=1x$JKt zCUy?gq>|^U>@PSTp(Zcke}U|!15B3iAv_w_>E4hXs0zh;`)|-(E)8)`Q{AeGpkntn z*2DvW_4;#DtghXiO>BVd^)~hB;BAKe)TlodBwSF==eCMnt@zem1)m$Hc>u`6;OgYc zxA$br)!wA@+FDYA7c^i6sijPLc^w$-j$<7-*3=5saoyh_98g&?5e)aJVs0h=2*R_4 zbeE%mOqk6pIqWPVslftTu#8H%j3V$r5+?n$6P~2t_`_d9RJHtD1tH=5{4eE~3tENr za=oIx*xcX0x4*wx+AR5q2&E>43Oh1-;6UM4Nf4fW3%6YxEFVvuA!?Lh$GySa49Ua{EATg zR0*xWg3|%Qnd_ds29M@uLRKS-`@=t*Y%XMGEMTY7@<$_Yd=^_w^BK6^hz zf4hJ$ABS6E1aW(ADM(5>Z#?U(iEdQ=!G@OMj%%wto~CGxHxSkaqcy&>zLqbX;BIeS zYEvLy+uTqY6h13vS1VF)0VPT0?-g^0i9edb`rzSh4$&c0mA6 zrL1B=Dd((8M^9Z)R~Ig?4Xky6_U`t8h|>|@x_fJ!Vt4$x*qUG1a_&|CTpA#x*?}%s ztkW{!{dg!E4T;blHFb406wKq!f)NiU2F=(njzz=X>V6X(@4ejW%)ys(b=NcH0=l$w z78LYr_juG5F)r!!_nbw#T0_5HPoIWVx~jALrM6}BDi!^zxh3B|P>~8eT#11S`UauR zq%{hO6FU(qXM63gRq7prm-NyfS+75i210h>npHjXLOcd~!JhdA{!Ogg4}sIC?*6k#pIUhg8tm2h(x&hcLUmF>fb`0cZ9zUii$Egynl3~x6z1o_w=Ra^m|8rTb? zm^Wx-Y{Ymof?gQP_6Ag6z@)sNqi#ir?irPQ~!)+<)fr?|6P z(5GveAs6iNuG?A<4jTcF*?AqsD!Z=J^aPCIgRQq=vwXlcl+kn_97f%WFSu3>mjCK% zpt&LaMM+P@NJCISfTSHz9U4&32UmO?Lwqv|J}%G%UGhN;=dwUm0tWD&uk#f4F~k4^ zW)2~D1`yIfk+X^ELhRtwBk}Q%jG*<~p7#2=b$6BGO?W=Ab^Aw-L>}E~S&v7RNWwb) z348+5*jZ@%*Ohku?_rC`0?Y_TDyyWK76B;{A_ulbytE!49C&)05sw=cFZqBc;Z>^c zwz&V9_#>hjBOl?>=;OA_WjpVE8eW{n&YcE4I-fpnB_bdB$ac}PMlq_bb|3ymDHaSD>n+Mj29qHx<1{Os5HzhJCy#TUSzVV}oNGGG>1ZYe_YV5SKt zq_czdR%C?xwcJc7ysf39!yv^>H)7dXsp13Ks&`;#?d!fz~=|%#x!q zD&GpF8rWnkbXveDCl6F1=y|Su6KRn@`B8+cN{1f-LTp4$91KJhdjsbiY$XyHR1|J& z!8(5jgx-izS7%g|9SBlcMWM36fz@R_;jk+kY_s)5q%Ru?Wcwls-EIqJT@}~4zj&ht zMjGKC3G0otTeb9Hb41dzsssISh38c%cN5omlRH&~=p;&ipxUyM2=&7h(xmHYu3B@Ez4nceh8wW}HB>qpI3!Ztl$=27gQ6(iuI0&q1iV z;i=a(%s*5ju4v4Ionx>`B?Z;A7dD{ ztG!-V()7}p+1b10EEe#72`|H6qNMy;t zE|CWuF`#SXfom({b(||k)e!+ZlJV|9P{SU#rkN&e5kl;z?sdBf&j=AUrxcT;-zv1mf{o%UABZ<+2uY~h>H_o6CI>Jf8gpbwES13zG?mVzKGoq>xg zH!KD+S=IBVKC$`6j2AveI`WOJiUA7ER-|6?J>VQ_($2P6UV z{)t8D`{qRk3R5aoha+aKe#;m2HjgyJ(HbVt=8@j~xxOadpWe~zGn)F&XSZjw z+pniXR(Aia2_z2uW8#@=nu}^=&Q&+{X|}EPHGSGCjYk$`mmPkw=##Mncw;r^T>vlV z8&<^dToHSef5{7h0A<)x@}j>7>zyJ7Xj`@bf#7p_BU?1_xjbK zM<4HS@&;@$$DOzzlZP9g5{6gv&8cM4;CKdg>SLeX*rI2RCxKPjKcuk8(Xtt#J%QZ&K>ABfcey0hlLXE@w4AnoV~tBXKr+~RKT;Wqa|_QPjid60*A zm`4zgKE~q+j9$g7u|qfsj9v$+FaQmbdT?ycIzt+Ia^=&o180dw4Gl z<^6ns58^8kLwqCO1j4)-4u2yMBS-l*zMb#jJNYiYoA2R!`89kWzn1Uk*YWH54g3JV zk>AAM#SikE`7Qk2{1CsD-^Op}ckuV{JNaGwFdySb_)$L2C-^aboS)z)`Q7{;KFLq< z(|n3g!|QN{&+<8bhTq5U=MV4)`9u6+{s@0Bf0Vxu``jMm@8=)jkMj@mC-`shC;5l? zhxteNQ~aa+WBlX%EdK<5ntzgiivK46H2(~LhJTjXW8>p96SK1&N2aFkDV`i1n;F-~ zP9L9nFgi9fGj)H**yLQt(UUVrCnq|_r|v&}>D9@JV{@@f%FdiTeqt_s$>lTC?ju-b z9kY{TvnMply6E+%#%Atu9XWGya{T1!9$_U-9JViHW24lul2bJbh-? zTf93xd1khBbMEA+iCI_SW)Pj4nCqCm_Y8hTFDkE44?-1XMC<((m(EOEM^B8+%yk?Y zo3TY(oMCZJWbK9=D(mRv$>}3gG?qsvr;gr3$I}x*9A_uSJC2S`&jC%Ls~#YgQxm7> zsHb)zKRz`#YdR+`=T}^q9-E!jj!sQKXwgBm(Q|ZWV*Dg#h+Z{*@}Y+wbmMWSWg6Y` zPMp4PVsdJFq66u)t8ivbJUAg|K}F7W>?G!w8X+??M^Bu*Z^A84&WxX&vPAai)VOnT z;(?cVuc(Jw9>DJU)Zh9-VOE_cXQJFEU3a z#!hw2-aj!mXBE#qB6nf}Q#TtFdCU|V)-i`mv+}OI;+A*ka9L(WiIBKDH+A~>84Q?s zG*Eu&{*$Ngk+sM&^38Nrqhg*DW2eVECQm+u337}4^w{*ojFX)}AN=wv4VHk-@^gaB zK-qmU=iaglXQu7a*~E+`PG$gcve4|&le4o^=#RKQJB=Hn$n1%+dnVKqq|8h5|QQNKGx zof@6HC&$hlKOyehGV2VrJfYIM$m)|5r>0I@lP8Z&bYRquBM1C(?HMCCh<&rF?}_BkhKfcJ3f5hXgN@tz5LdhE>XgtMSLxb$Ete`eNsmH*x|6SK6W zoqO(?iQ{PX1lFcGJBIO_dC*0_1W?-S*nJZ=CIF}igMlCS>?vA(G>A@CjElHx&7PjR z9}DH42}2gPW&xiaC&ng^X_WKewMXxHu;cX9+ywGd(@qQ2*)ykIvu9?eXHL#ec;-%= zIdx=KK$qp@0XPClI_34blW43pHv_axqvb)TXPkQ) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/webfonts/fa-regular-400.ttf b/webfonts/fa-regular-400.ttf new file mode 100644 index 0000000000000000000000000000000000000000..43406e854c2da65c8b265caef07f3c211ee88528 GIT binary patch literal 40416 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

  • 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 ar%ydPSvo&;Mx6Vc`yem#)3cKx*#8f=T~7=E literal 0 HcmV?d00001 diff --git a/webfonts/fa-regular-400.woff b/webfonts/fa-regular-400.woff new file mode 100644 index 0000000000000000000000000000000000000000..d49d4643ce50ed65a11a9a4cd9a4353eb6c90591 GIT binary patch literal 18156 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 aa%qA7`^mq)@91O0<%$)WS#WX!0002x)bfS^ literal 0 HcmV?d00001 diff --git a/webfonts/fa-solid-900.eot b/webfonts/fa-solid-900.eot new file mode 100644 index 0000000000000000000000000000000000000000..3968757e6c3dc45dd9d1eaa42b8c6ff9da2b7c80 GIT binary patch literal 168396 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 z
      *+p(%sOPN9uGKhs7fQl4H;KDK(e+etW-Y+Z{FxZQkWxyWCVrB(07$Ud8|0q=D zK?*RWyr*^e2iRn9usKM$SoHM3b>XaY5@SsxY#rV`po z(oIyBXCm#?G?G)qZKfp>G&3iNGs|f5igPJDJBy*mgw>WX{soWx<`f>CJ&~UGsoXS( zm^=||n#{X!gt$mD$2Lmiusn-Wh*?yrN~=$yiv?pTCj~fSDVMY1w`8Y&g5U=Y&n*Kr z({gl3(lG^gGD2LQMKq$biQ*+K+mNDm21j<}0DIu5+Hh4O>V1P-> zKy*lF60g}oS>~v{HcB}2nOOi*A~zlR%o6xC%rQ--a6@q=lPT)?>?GuBHj;B``5Zo2 zCt?5?8nd{VapnQ}&541eGcSe9)MZ{dBZyanL@zV#SJ?_VWL~%EAx&P#{YwxX()~sO zT>liXBAtmIvlX!7^#T~s+`J1zkXZrYjoaM?T%4LqNf6>PGc>ZgO4|#W%rwC|mW<8&iy!nDo0nC?RS(5+$v>)CYf=8{yq*&MlEv|=CYZ23EXW+E_vucqz~3ip@^C} z3?lGav497GAEPUi=~-V@hJ>!T&Ado>1g#?O1a~jXDRm;f=%SaU6qW0dX$yzDWe)u> zN0Kr+9Uz&MCt43i0TKt`5Up?=0!K#ynhQ`v0M}bsAP`FwgPD}*U6#5E3lLDq)}s4W z+EG}{t$+(To^cg&#MFaP&CL5i?$FDZ=F$?edaClvOMaCD=rjpXZ*{@)l0#;tNKmE- z5QAxuPf|~|N&qKi4Uijj7J#=NDfdp9{bYd3Tf}Y(&hsRMauk;GQeceUQ<6s#TkF

      1Q|(a4e9LE@slZn z{YVpSB>@l~om*N-%T@uO$hoEwxr$j_1eddb$`F(nK~`i|@UDCovtka*YIcsU02HmH zXEGSOB}^9VRV-!;n#?%mQBFKvB@J~dc%^V?Ap>wi z4-%mHZTJ;%Sjyn$!f{I8nsq`(Q=C&QsZ82&2O5%|cNM`SgL;(`QJG%JP8a9wsEwI7 zn=vQ>c*U_t0f~iV6Bp>Y0g_)Vfb6Gt%Uuh9bqP&@bp#x@`R}hO6ol z(vU0>Nw%`+Fw>aTGKEe!?xgvEaYZka~Ro@Kw=FOYEU4%UPhBfTdz4 zvKe(z&K4WJM?MY|Om0@AEEAj_6k#SOywgn6L^YFu(ks|?!5qtjQ_h1o xro7j@4ibuBDP=P$#kOObI4fEE3g{+@99Qz7SLd`_Q@{=OlSIk_TT0!n{|C9-@h1QP literal 0 HcmV?d00001 diff --git a/webfonts/fa-solid-900.svg b/webfonts/fa-solid-900.svg new file mode 100644 index 0000000..10cd5b0 --- /dev/null +++ b/webfonts/fa-solid-900.svg @@ -0,0 +1,2312 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/webfonts/fa-solid-900.ttf b/webfonts/fa-solid-900.ttf new file mode 100644 index 0000000000000000000000000000000000000000..a1da1bbb5cfe3dada307313edf776231171c80e9 GIT binary patch literal 168176 zcmeFadwf*Y_4mKlp8GYEnaNCUgvmWXAR!4!klQFIsHmubc#jqpD_TVAT^nz$*NPRD zD%xmm)z(_7)}r+ilq$CB7p-ln*VIdEtF<$e8A=ty^I2!jBmtz~KHukg{a()>zYOnL z=j^l3-uvw9+H3DK5EGG)ddWtubB|oKU*fv@3yHWJt_u%4vZZa-h9e%r`Smzo{FO6L zT5-w8*Z+(t@D|bJ=TBRH!Kr_3UEM}>a37h<-esqpv@~?{19I;G=v)Q|d(zQ~<0nDg zvNKnm|GSTdS`gj`h;;k%uYKhtTh+n1HtSxT?>O_M^HC97h-1xoU zkXe=>GM}yZ+BvJvn7!i;GG|m0)xSzeJNNJG$F<&_*`5D1*NDsLKQm;xz_nu2qgzfa znw}#cg2&$-sQ~XIxUTUS8Wab<& ze<1~zpS0>MDkr;jRj-de=H;iKb`rwZD-3^fmEpqVEV%L@uOVt6a&K+{TD?7h1y|~`HbI2rj z4smkl&f)8FERY6i9jD~}ojW9BOj5(Oj^+GI(6C0rG^F8)RP?^QKPz0M6KRs`xHc?D z`AZ=Tq(iTZpFNTAz;*q?;J;)yoEAOXp zAD&|fX||rniZ_2pi-68;9{J}a&v>)9lHxKqEfM_9OK3Q#`pdh>2H zk_IdN`Ex6sIF@iFemwi<@(jc0y`%2K^+Fo0xN(p8vyR1|K+15wj&ifE75s@rK3e%D zc~;2Vf}}!N$P2k{YY{hhOd8yYo8UK!%9Q4a4jz-E`cPRe0uxy*OGEg>c@!t z=wmBxD}K2Se^%U(iG2PhHB2k~-h7ynR?=fDT@r^N;XoGZ9`%p%Lj`w)4L^nZkw;&M zze1V}u32G{gel?WH@A=_v*F$b@eB8b_e_pnS{9KuO&zPkCZXu?%fTi@>cN0m9 zl@3Wy65#+Ve|kk0j-@OMap*l(xZ;=Ko`6h3N*KNQ>o~Xk^vk*Ax5YoLuyG8(Qtp}u z@S|zad*xWuHoDzd;h--OH_$t(4)*55f#zdflk!Nyf3E<)Ne#z}L)@qkpWZi|54cw7 zZwh%j{5*)mN_$f8wZf3F1U$#+FmV2P;oOqR{PRor{Z@KD&)=tGd%xwL&pY^qf0i)i z8I!nHC{Osa(m?tQyTp-C!*D+0K1tVbUiRkig|yt{xcDcF$wodpCE0+!b*4E%{orvp5&--rOitiU^tDXxSquMfaH<77q0ChrA(J;T`z=D zkn#+}Wk&h%CEYu5+?yxwF3+TlimO-CV1+mAU;N3vkd~YJDWs_ow^d#UQ_5~Mg*e2Y zm9}I)T|F8mLt1TB+y#>KNS~O` z7``T9;+l1i<3j(T&#mDhE&1}6IN_&X+(%@=?{FB_^?dpW{`w?tjmIPrR{{*6ED?r< zxcy^i&T4-Izj6+&wD(%~jeU_z$-c@@Nb5z zbji(-nAO1D?q7#k?}ej_?oFALBNa?VQYERfRAs6vH8V9Qb!h6?)CsAxQWvLsQ{PNo zle!^wQ|gw~+SFaCyHgLP9!|ZIdNuVf=;4HI(+HgX!XQWx6U|lb)2GoSu^2 zCp|MgCw)Nr;Pj#Cqthp(Pf1^qzB+w#`j+%<>F=iROh1%fpME6$%k+!sSJGS4Z=~Nz z|2h3hdRuxZ!x>k`mnqFuWhQ1iGgC7MW)969pIM$cFLPn$y37rk?__St+@85Bb8qJU z%ww6yGr!C{m3cPvO6Il9TbU0tf64qU^Y=_9vn}(l%+R1?&_7r;*fiKZc`$_f zWS_`Bo$b#)o86RsCHvd#o7s1>@8>+Zn{s#N?#bPk`&sVM+=kp!xnJdelY1riTJ8_I zH*#;~-p&0f_d)J2xsP+7=Dye#+7{VXwr%XT>TRvty0%TAdVE*~_w5qLgmP zuFl??FQpCHr}CxrGD_+9*>|$Pnc)TE9L|9XY-Lk*J-jgx6Nw{+M>3YtqPxnt;W`2+s8J?c7ScZ zZ9)EXgl!2v$JlyoD{ZT+&-u11ZCB&7#&)Z1o$W4LpY48IzwLS3X4@OKw`^Hk7Dgju zeVlgrxa}c(*dEP)V)i~rh~{M*kw`#k$Wd-=?_ z&$l0n&l3A_`1IJ9+E2AF$LB2jx%Tt(pNs96=0CmmUi-E7>+RpRKj`RlJnDGD(eHT0 zvBmMa;|<539iKWa|Qhq7Q}z>7qryG>1TXDt)*McSTmbzxrQ#M zukz*eV|p0%sn0xOp68o*J8v_;q9;uQpGYUrCA^3i@?t)cs%R`FXbg9m&&>_6jxM1_ z^A4}2A8>*;(c}D{X)&kJ6kf-7n6I0s%~gD#*#IlxIdmbdqOa3WP=Ajx$J1X;KTo6s z&3y9||AlWeubDH=g|sg{z-N+|H_#Bx;`zoFo&9{rkf7p@#YDd1M~0i%^-b+lICah1dXR0zfJqoWw5_q zVeT{c(`-7K?lIHpV!Fu8G{5K9%ql*`e87+KQ|71UA@d$TY~JUe^P~I-|BhQsr}>?E zlV+NqnDc2LnnBZOI!)!@@+$r#zhTazyJ<47)-}Gl#m-dF0GC^G|--EHv+$0rL#{uglB|GtV4g%8i3B;1vIZKjypn z9{xVxOKJKZ)l&oP&*fA>l{83M`a6A}?&V3mhHv5T@q^sYFYt?;GcHqQW|(i9Ys}qd zv&m8?b{M{g}K_?X+A`c`wx>gJLm}dDXphp(pGwl z5934lP(F^2<@Y(m|1t^m;#16lW`VihJZc^@e=+|uFPIn2ugy#5W%S$sWww}C&2P=? z<_~78`J;KmybbI5A#^kyL*JlF>2`XM9-)5PNdHAI(y!?^^b);Huh47sM|y+)MmxBX zo4K8*@jiSiU&7zwoB2EZBtOHy;a~GB{4)Q6-{lWEYl=*%sWB5wlNo2mn^rR!qst-Y z2(!|hZO$?0ng`6|=I`cHDxp%EK$ED2_M`c9ES*Hl>6`RJdW<&EFX$=SLcgVV=ub32 zpR|{54*~3K~;$n_*377F0uI475%pE+1J9#=E$TN5r&*UWU$NTbZp2Kr_e?EZc z@j-krpTu9`)A%g@8ehiW}JW-c(7V3hoZ={5J7ADSPTC(WNQGH%B#B!*eX z!E`7srnBg4w1Up2UV4?@=H!<~H-7`MLQ8dVlBt<2uCu7s>NW zB(<>H$sg9Hp#Lk36}S{8ZUVm!iHW0NIv_FY6L={kW`lzHDx^y>Z$V;JO5ix8M=@(4 zF*6j*t&lziqb{Y85`nIU3@GONkU_cQvH}f- zQj&Lo=0QrH0`7&B_<;Ei&uinQ-OX;sk0Pls+3xxKxd`Y*$Vvwa-{-2mQv>^BQWlHrb(3&ZAg+lVIS1Qn?DJA6upi@)o zn+iP)d5vNu&u&mmALLDnc?9xi#YldxQCO}^T7j%3rQ{g^Oa81=psiC%+7FOj4yn5o z(*P-P0O<0Rx?6!(PpR)KbP43W3NM2Efx=Qxf2gq3&HEJ011KeV3NRy})B_6U29)}d zLJ3HDen4X&A5^#tQrapopF=*R7|DvtqUJ7jX<|3goX9mi+#W!goNvq?oTm zzO0z1Azx9gCSp0sh z@NJMO#k>ZYR?L}@83nUDN)0NQ=TR!F&;yX$70mr8^)E%N!Ku#_%m*nYbp>E%NU0qP z&4TCQre|p z9!hDqLN7pi6uuS`=@!hlAbkp>PNgLdU`ik*O~Aw;B^>~>SxQT|fKbQMrHVNmvP|J| zkmU;h60$lDnLDP6B%7ES2}h37u*3VjSYNimWKtqMO2Ia$G+ozm?JoetTd zu;c;Sq<|ScrMnc&?J3=@V3tqmsS4)%l-@_d%%9RT6!JsPRA3FDbW(v`fYSRaunQhC4tfhDI|5^V1+-0JVb$=fzpR6usBe9fdbnDrKP+9tPqqw zLV-Pk(nl)v3FJZrHVR5FQs{S(ixngJeUxI*KGI7RBV~BBVm^aBR)Kwk(#I*XuPlAM zVkEp16eHpFC`Q7Q`U;GMcd}w6yss!m!dt4C??IlTz;Z(A%N3HeU7_#;kXI?@BFJwl zu&_{C@)5w+Lg}j&SY0SBWeH$^p|q4epf@3h|>KENxj;rF#3_SgbO$VDd7TkKuSFZ9E6m60J|WcR~V0+enDZJq&F)Z zhI~P}z~V*e z_Y{(L^S;8;m&pA9_Ap9+sL&ipX@>yGq_pHU;NL?^p8{YvqqMXW01FzWw<(l_+^)c? zM(KYku&+`2GX<75N`J0U4swSA>l>xNP+*6nw6u8ui=3#(7O>4xh84O3(yo~MARP)U zca(7|u;Eb#Wh20vM;Wg|_dxm-SokP|dN07%N10NEE`lsq%uL7%#ULLtl?uNGIYu$7 zAgdHU1+rQ($lpwj!jD1LD*O~=onn3pS+AIfAR83(9%Q4!sH>SK#k>!RF+t#;Ln2QF zMqihipfK7*2K|)4=({o#6^0I$X;(}qWQStJ&lClAOv=bLfPJr&K^+nd+GPfHOMsP= zGD!vYPRi`7!176%{S??hDI;Y7U=5|r9EBtdl(E3Sg*-rE$-}t{{}FPY!f!wxsKAm+ znL`xVR4IdcFVJMj!xdf$d4$4eLmsK{3dn^Dp98r_;U$oZ6_zlLQut^{xdwOvq?`jj z1~Lze-(wY)IFD1zk0Fm&jMSIq3M{>pku(9=d?_Po1+e~7M$!ae2d0eV1t6(QUsw2I z$a58zdUBq^QhzQ`U^%ADg$jwE>lFS7@&?6x4RW<&q}*;&jFj7V6g~m+7KH~PZ&zT6 zrp%oRY|@muOChOWeG2T>uP*Py}6 z6_T|5K;cP{C=Y?xKq9XNz6Ell!jk4+Df}QL>Wjerkf;v=qkavd+y$2FZ!3)Q7#vWH z3-Uw7NZv^LfSCdLnPR>P`Gtaa9%yi5tnE;Cwt`h2%I>dVy@#@M6|DSF_F#qH zgFIB>ddLNeymgX2QsL7fQPzTqLLR4>rI093!CVP>qJotq%ATZPO^LE7UjeI2ls#3! zIum7=DOho$ti%DZ_C(pQD%1mchJy7d$}U&1GDTTA2Uw$`>d$y+mP&|5Ak|{%7vjx&9=2b|WV({EKyJAp>a}LGenR8CX;F)tS#o)Pf zZpGlaa~=ijrj&~-^8Qh-RKZ#*<;oPSs#308!TKuYDio}=Qm#_Lnk(hTC|G@^T$O@# zSjvr6up&!2l#M|BkktxSX(?BuV7-=dwF*{lDTneCu!c)H^g9Apb1B!LU|pATjS5zH zDc7W6t(S7+6s-DEZoGo^U&>8Tuo6tUW(8})l$)p!$}BfYVF|lMVe#9la69B=g{MKb zDZCG)Tm$kxSgu3iOCVAI1pXFer@}Wwb}9TF$Zmz7gq*7IGmsK4V0m_l53uCPbcN-4 zXDBTBFjHZv53>}07c!|Z`hncO3TGkrQ%n)$Y{f`jn4=gepZygh`6qP+7|HLsijn-D zrx?la0~I5Ac93Eu&kk0Mq-DNhq`u`bN8tES#jJ!pOfhFeqOA(%9LU2Jb1tOZ1Iz=E zM=IuV$c2jeJLDn-tM!yytYF=qaz`mx!Kd631#9_~lX?%Zs!zFN6s+%4?pOsY{ggXS z!J0qij#seyPq`Bm>;s_Oi3)ZEP_9S8-T=zUHGo|Llsj3$egVpTMZwMi$}Lr}hk$aY zDA-LvxlvD_1BiZRkpclaN;_ zEafic2Y6pdY0rRXLtd@0w3}-bo(p-c!qSGWQ}_VL>lK~{d4s~zR=%yUw3QnbJ_&NQ z!e4>BN#WBVZ&p~!ZH>ZGZnr2b&w8uElJ?samgifmusq*)6_)sKS6I?}haztk=hi7K z>Ah3oA3}al;U7cxDf}bIyA}Q!{7U2Jayieg*AtfxpQnw`z zz<-8(P~lG?f1>c;As_`KV$hK|ZD!DLY9wFb6|Q z`vm4NNJ%#^iy(ig7-{!UDn{D(Q;LzYdqy#*LiQ_0%5kG&r0zef7^&CKDMsq`CdGUM z@>hzHdi{c8Bwsfx2KktKQ8AK#zgCQ->oBGQ~I{$10`^vRW~xLrzl6YRDGF zNSLjPxeZe80S5JM+cd@e9CEs1eu3v1`P+mPJ_+A$fLdi+hSxeO!RvU{<7y%&YOO0p zqZ>m8`Q0k77MoAV3;Q7l0i^WhuOEk9#W-#+ZdfV{!l3^+bs%QFSvwoHa|Z zlL_(EK8TGF2(uo?_1iJQKMuTv1?TAi*P0M+(>kJY^8l`oUqLhh{+rhlO+>sc2(x7? zQ7g_T`i5K)2U~>+hZ{86ihcV-fdp2=BP_iH^4ek+}B+#C0Ol*@OE|Y6h>v!2KYM@k@x7egdQ6ao{Bw z6{iEZpNhCnn*&w@+_wzZPY(f{pN{ap+Cy|kFVS+uwH#qCho3W%wzJ^xtQ67L<^!Z> z#a5!T*AlHPB{~Q9e;wD(Mcn5#ffYpON5P|5T*I{s?j^dg4)hUSbUw(!z>c(BvJ`wk zbm?lMZ?u9V_ahklcMx5^j_8Vc0O4GDCDB#gU^CG-5&yRqU^ChZqH7S}HE_GO z5~PT(L-^Mr%}+)T8l2jJdY5a%sxiEf<-;P1BA zNfw#tyYPEE!n0li~?7~aD_O&w+3X1`f%;;g#hxNd0-t3Ot|;n zR`5E}4;BDi`{AQR_rc$NIKDqg^Z?TH0K)qb+!UdT`E&q3k6lgliwB7|%)`bD-2X%Z;QW_3e-h_U;`&qF;7Ouq z5Y{uBi8ihxdKTB7?I(I}8AuWR3gP`~3(@m)K$hr*#q^+ZxHuy z-XeObm*{0Y+be#sf#|>LzzU)*2xm(lKp3y#+Hc|i_0>ebdx_}x>tHasm}qMP+)FaC zqCb8@^akAD#Q9r@=k0|=@8JG-k**Hxok}V~mh&n-4xB zwx17DSTuy2vj>ZW_yrKRA6yOPw-u}=_AUh*h<&)nH$d!P0Q!joa0_-r8Ah1J@EeA| zNFDfqxCH01N`U+0@L!5BOCKdJgWob-FJDDm0r!g6VQhlmO2k)*u*dWgS0SFUxRwYJ zSL42#_1J)QC2^gwiMYN4tOW?C0rxgs3^o&^kLD)$8J7UKHhv-T1cWi+QQ~H#rFl7k z`^4+PN5qqs61U6;Sz`3rJQ-=5+>e(#kcM^~w+pJB*$$Ozp<9NR-p-3+SpAgT%^*Nh~4{(De zU<2{oQsQ~tU@P%~i0`0v#0Re@p1*?lkR(7@ht4BD4EG!c{|ll3ZigfO!v~0u=pjCG zDKYwQUbq^hh!@)dt}o6KAGI9pAYOtnmLLsBKS+Emt{;oAj%x-8|U6Yj+(F@)WN zYd!FDQWCsQeDZPNQGjs2vK%1HrSQKL_niv=r{erH#D%KH%kC#WeF4}`{8gmojBWsb z%hwa1IfwYHW#A*?uOaRgD~QjY4z?1nTt$3N2l1*pEQln*7UFXe*Leu@yguUd-QaaB z0N|br;qM}(@gjtI@s-4v%m-QGOL6=Sq_r3K^j=SV*;3-mao^E8@qcR#@zn_HnpUuh_*#UIew(jDSl8{q&kiBYH#8G}dk%>*#y2AD)o@#l zIKPANZpQhV1Pt*>fM>aNKJjfhzil(|+CJj%_7LB`ocIoedk5lO*GqioQeyPg+}8v? zA-?-1;(Hz>{yx%q?<#OV@egqRL!|46xaYnkfV>~!p>O5~kggwrALE&Rybx?5eh~7( zwZuP}4sicN1eOs06!HEPas3qcuZR4Z9Xv|>Fv5IzJMklk`>`J4U#uYBFrWDGN&tUP zAk1G55I>1)PZ9Cc^N63h9*YTxXJa?TJ?j`=!{UjSg`FVu#0^&j+ z%`duP+_@6Qp4W+Ann(PyA0Yf!F2mZnz1{&nApRY~{e3I(A3`8Y zymb}H;w%4g9q}7*d!vu|%{qYl(LeKBuM@wGYwsYAcbfp*2d*am6WrcgNc?^?co0AR zG>7=ZO0bFeBe?$+?&zcWZ=11zglm7l9w2W%#eM%+ikHNr;9lbNbYiTQ@*wWby1^P^ z^v#@m5*sp+C)?oXp9p_D!rZ=<_+M*DCTRRQ(uqEqzwiUZF@$S7my;p+t*6aoFw-;G z6=-Z7;3G2jB@=an2g#Hy!v?ej=qD48g8ASjGNlN&6#mKv$dvbxsn{gHsYN!7 zBK^FP`>~SRDLXZ|t#bx)}(wYSAe_)&+;<%m{Bhx((Hl~GRO&~nl5E#(aj9SsfF20V{?0*#f9$oPn( zvXK)mN0Y~pyfbXH}zw}WC9JbXq$6mj<4^P-<1%l`7 z+4I3_!{R=e%O_qNR%_6aH*Fcc30ziF(jN-N-?zZ$v4#a3`t(DnT^va>k~y z^;J?^;~c|8xz3bgp!HeUne{_=DH3aCtl~6fnM5 zTpRRn!a>mEId9+_Cq+D$`h1cVKHsID$VuLkgvZq*{_vG3;R)g|=owm(NFc4yl6Jm{ z_riXF@*a!y&O%w2>{?z9tHx>#mb6B8JFm|_!?b*L=N^x1K;pyK(0cBZ!y&|tIm=H zJpa3y?cVvt&S%gMZ-k}(U|NVhh^NBlbiV9EV=D^_-78w7RG55c`z2?Mlkh6)Sgyhg zgKeF&*y_z~(nU)HZ7dwb3kQ3;3}5Oh_~E`l#OjG6<$K6dPj!XEdx@*W_k5_rR^f0Yt5|}3)+}c1S5?Cuo8{}xiuv@x1;D}TQAM|=lLT5)~>jROY zE!rdWsOa70ETLz~U9O=*J7lagm!Xeq#QQ*!$FOwP*G}nZ;a$hOY3MQ9I;XVjw+?%b zLS|Sa#c+31TNv|D!I0r-%rf#thCSC#X^)!~q2SVBw7D=4hPoGY_kvbr!_YYNdQFv; z7dvd-RzKe@Pd$9NUawAH-MqACc@&}OxY!@9Z0hcA5#w#8gQu5ENV8;~QNv&>BH>a1d? z%jxPIK8VGuno{>`aCYT zr+H7Wf%qt|4ma-__FU^Wmq$WCT{S4DezPC?1L+N@t6ee)ncWG^3d3?kO%cn0EM+qV zE_s!0CbYImjNv*KFO1UDxCHsGgSp;?TB$(<9t*g|N*2W3J+7W+Tfks*$iS$fvsBOT%$wdeO0TeZs$DL1G+M2`L zHny?bOl=z5=5<&uPdnq~jRlXKko(JF_Lk?}xpO<-9KITw%s4!6V?zh}uC}qLf%u9= z@whdpG}2V@=#AEsL~)_*#;aYfxGU=F>A_dr<+|DxtxzZDNh41EaCXI9;tL`QUytwM zBKj0s!~IyhveKaOOVn|VA8~iM;;}YdKstsKI*CMTV0xDrdhW6M4@x%2SC>xf#ExumSpiE&6lJ-Xc)_ho=FqjxMY7 z6=fiZU(<-kFl<53L=Pd|Gx}la_JiEzvO0t*9bJ=aYtU^Yo6zfTADJjT;v4I7+I_AC zPN&V|z%P`b(cT{%KR)OTyPQQ6CXFw0xx#bDdf{x0!((&8r{Ct}4I`6}kAfbr@dcdt zi2|SBi64qU=W#>G?+>}{#jbEP8g>=ipYwVuFz(wNPQMTSoB^No3o zba?2`@QqI#$!~8%olw!$iH@$J5uN0e7Oqh*V;R@^#M1F~Wo32aOB>5#ZkO9%H(}pU zB#;P1Li&jKtM_EoKjpJFK7p2%L^Ig$?7sLAT&RYi_-Y_@Y8MXT`qyT|1ijtG%PpwcyH2N@f&TQH4O=v@Qr z9!Uh(Ng`I-M<-(Uxa4t$AI;W|!Bz)^1}NtFY~L*|=SrJxrPE6I=r-|XPb}?P=JliU zu}gDMqjbn57l2H*i%>RWnreDmL3sKjVF8qt)aJT108g?nmmJzelr~$Vy z=#9?jy+tspboZ9bJ=3sD8ILU#s~A9r2i$xiME{dCj4t)PCt`HDBOi7t_gS!TJ2jX#WmJ3oZ|<_;^4Q9~b!)mg+aE2v2X z8ZVoF6P9f+@mq1=IX=XE+KMAGN^L-~VSpPpVPJrKMijz)a${~Jcj!-&Tpo+$@+JRG z90SO!yX84XG*(Ml#0;u9-`5w*Bxf(deDB}Ht-1n6+ZI^4VBwNpEwA@sb_#neYD8Wa zg&BY^%m$;b#V-7d21gxoY|OgOHc=ligDDTmi03j6F16RarODK?wrO`YDE`O)fUDxqz5wH7FIQs2-jEfRFEsN(0tXYqY~$Q0BrVlVRCI20}@Z znHeT;qMKlbhMBMU?r0c3sPC9E$uu?uS>}0|+TyCC(G}ksDh;*l*Mje0G+5etxEv+A z_UlUcTy-vARm>j>`Ny=4aoPQGPjSoPP$6VWb%P52Ew>!e=_`T#HF-GW&Y|xvs9Er& z+*94sQVkgk27lOcc&p{ol}L0|mqmQFzHnKr3ceAp+w1Vhi^nt};!h;t@<^|WCylN9 zwE1DXH&$YgeQk~%A>4(pfqkI}vn6XJ8HieKNZ!pf#3P|w>=I=#1VC0XXBu+!53uPb?zu!9G<;jT6yT9j);9B-5@Lef=thC-={cA@N4eSw;Z615ahNuUggC7AVU zp`*ogi5@x`isqCK^d~U3Nm;`VB()$vJj_05hR5#mI>YXXoox%-+7_O&u(YhGxZH0u zwo()HPjtA$nOVsM@H>?Va(4##-2LYVo9TRN^?+ zQ^ejovO3g(Ia(K10Y>RY5%jWRCgz!q#$Qrtw^x?4?Quit7{w|;4AVP;~l7-R#P+W0Qq`uXdoCCEjTr9jJLikUhf?K+##p|cz%mvr;dA>i`HEyVXTvyN^@_79n9tTg!2Ziv4dc&2HANl#kMyw-D zMIUtt9ffy`&&0duy{Nx!V*0ci|ke_;VO-62@)FGu|H#RsLtf~-qHoyQT zW-l0Mx-iF*nlqDO6vW&l7RQ9ks!F&=ax=&>W9h0w%fLsvIOlM$z;{+U?Ezmr(NxaSl%`9g}w+Q#vsW=b>-f++Ls0W)H_}d_J$+87*?!FK~rDp>R0l z31gC$KkBZkuC6k+G1b*$Y(2Jk*lrW=VY$^=6m`1SX$R7eGB1t#L(ZmHX=$v<8S+O< zt7;p?wc2gBsjJQIu7>MWXIZh=6OFR#evh}f%;$`r9xZmdT+ZU?P;cSr&XQ25q_)=j z?!gQv8Wq3S%6(2>S+({pVyBhH$-S82`tg=syX;=?ir3CEG6bO4?84A0s}NY#(^ZH@ zX_L~esLi`QZXI+Lv{%)fzV9jb*nboZ#!JiYF03sw*58J5Q;nz2ZJTOb&M|fuyF1)A z&lsoc7gHupm8sU$NmE{}stScpE^942acIC=uuI@Od%xR#KMa5Nsw$6n@x*qQ<9>&$ z14*~Tmj5(Bl^N1dPf{LqTipz@wQIX z6!{^&0{I~l`h)~90&bGwGarBiqCkfdV;MTwDyx5mv{^Ic&PH7VsA)Kfjm_rr1pJe1 zUQb88v)I;A9Ij&bB!9r;ve|60s&H|Kt=L)L;qhLCmgDvo*^J%cv%4L}*fBeHxa~fN z-Pnq}j*th=C6L~b!&?G(59D6Gy8_-wrQcKP@mJo_b!ZpLzv>(~G_5#g?6+x}a(41Rf)G!3H?2ukLA-GRdJE z$|JXVJhw&4`J9US`V|gG%n@+RoQbcPL*%aK+#9*oTkgFzQeVMTQ9ra7Z-v{eW?}u( zJJK0M%RsA$L9-}^N`W$u#;bQZ_4j+q!r?Mczu(80sOOLG>vNlMfRll+arb$vyt|$v z3UXL_PcQ5V@=K8|_`R`{(HBmJ`Y9FAs&P=zVUC{3jqzGX>z7@a(%2Pu)fQtkL5o%E zG}fh^uKWaf8fs^}V5E>N7B5WRF_SzsHJ*u8UaO<-owwS|+s$qBym{U0!=?7i#R9R~ zU)@mcUoD51+e^ciRl-`FTfv^#)Z>f&{^Db%$K4#Oi^b|5TOIlm*H~!v>RxViSHaQ( zBSukiaglWpsd5kfag=cb`67EI3iI+3`Gu^!#-NMtXunPu8g9%cD<5c$c%Bi9!>mMk zpmbnVNAOE2GFrFE zFB}wG^FhhN`r6`r9&I2`KdQZK2mz$~K{t8WuftJ?8? z@HAPwpIqGjfAoQJ6!z44D#8^W`6~}sgyqi@t`LVX_YU>`pP=QA|D6W!pXh!A+I_Wn z_m%tI&;O&<`ROC;*)X*g*11O=VvokoyuG&xbzlbCBoqj2_-KHx1|7m`UszRZXoL+| zv^3})Xr!H84fvU0s1~Aah?^5$pm6ZnmBkh1V=BulLt`R|nxjuXx+W1B6T&(E6_1Ik zQ+4EnD)b)SvG{ta%FFDl3gByDu%@E=u*HW}S5yZZ##YzYS64L@;Y6G&tAmY})7Zv@ zx2CpcthcUV+&SJvbzP08aa=Q{frV zgETZ28FUvo!b9OvWjY;~<3{J}`%gJ^e8XL{j^r_w-)Z(9()Dc3;#PadT{U-&J-CUh zDn`2X`pCh%k4=0iHabytVIb#cw1Q}#C#zEM%dN6x|><&`GyHvZDeDmZQPHXquB zdMtCA0n7vMmN!M}t7R)eTigk?Zg^&lfw%?=AO2bW+i)j`HY#&DwYydiAI-#Uw$Nlh z8d??!ggpU!$Y%4~y!I0+1HpXQB*9h{i_3!qDV_I45ogY z?L?R?A^dJT+^Sbw{t_kiL0DvPzZFU%SYMK`F5sD9Ys&X4E?A9WU1%?t$lzO(R>_HEGTEQ3j9QveDCk}74Tho^o20)S6-WJl5{s+4qXYx*R{8F)>cHq~t#1v$hIcnsQ))0`U{@MTth-J;Fq3~Tk_CFL!}o-V{FdIPqsoTh?%n#9Y{3i%#i=WQ&#th(h@uf1%8 z$F)Vbf5|qnks~D4>YJazIK2_SDAFpweBo&9lEvyq*a8|FfmqR{Q&aOtoYmG*kM3AB zH{_rT)}z{J%v^XZdu(xEcwRTALsf0zn;ZfB4-Cd(4$*_5D(JIenLEp-@UDD!Pyw9wrc&Qyx zN6J*U96&zZjj^-=J5CS5E*zAqwW%pzjZl`gR!1s!GwgQ|`-6-EQ%01>yuK*JqO*sFSk{0b8mEUj6r?CwHF#0$;Ksv4H92^zPRAF%ntXi#D);ARp#V)0tk zd23LzOlhz$)MB)6k54jP)}&I*S(Z7hVzv9snO19Rrwy$wvQMZLbD_sQ(H#sP?rFNN&RJL5d*j$<6P;)aI0H_b zZKBs(-O`5tZT1rEVhOoCr2v{?tGi~}{?lqZ$NR1;4NtB>1l9W-FunGmP^dAnet+8=pTn9#R7&~B{H@R%z0W2Zwr zU??l}NLF=jY|su1_T+{LyfJht*NT9H#sZ9xw@$b%14LV^hZ-+HJk92I+Q^f3q4_3bA^Y6~u*|JBX1$9o5 z2>^Cr!92OQQ|@=W?QWkdFgD=wVWk=C^B%9;pYXeUuwTN!h-?0YT(i5~mC+E!{$vuv z{ZKLlFSuc}7wdKjOm4TXS%HOykY9G}Y<7BM;gw%{n6%rR9=p?N_c(2^IJorK1?$5o z_XW|))z)8SbW2a(YvJ;4UNs0#Mgm@^BjEHD)i;#v?bsT3WX+-F}48+V>l4bJ|XIMMC(`G>q*P zn`?{B`P?x}{624)pD&hs>dGHj>+u|RqI5qCqSxONfJw;z^W}{w-^<(v?-R>h`(6Bh zA$MbD&?3L|S1&6lR;$q!X=&mG0|L|!RA{*j#k>j+;lySaVCe%V`tV@KW#br-O z6Rxh7?@dh=jcpB^=EQ^kKxNq>XZxdvFB(%5c`4XFwyqlnb_0*tp^RO|375z1o88>l zeY?w9UR*x5-*H*Zn35WFN7$qH4F0E!jhMk;49hQZV6a5e#Lm~&6~Sso(>XP^p#N%5 zkP}$UIByb8g0A(jswXb@Mf{$WFZ8TG?B`a0DY^^Hm1U1AAH+4g^;$xA9efa2yM~4beW4Ht(a$aK%HFuP|tHKSX zJ*D;0p`DRrxTtyAB;0~K0=UHzp2lMT?OrG9zV&r`+0myp7lpqFJoZ>1*4T)2qn^HP zl4zgSUP;MvtaoB6V2w+%=Ls*|Sj|<}h^%2sTus%qj)Nz8E`kv8sF+G3S(Me8H-OZ4R~xE^1tgVV&nEj?QYjL_Y|8aP-=H?bGhwN zpWASe?_IxT0<%kdw)E^c^lZ^%sD3YNXZ5@75i8m4Jf2@pb4Ixz(~}Ld4~yq{gC6Kj zL;ZIA2SXSsclr8a=zSSAQ0F!0odhuHf`E{0(;zqp2m55gMCwYsQ0ft&vz^^=GVIQK{MNvI=-G?~58@{jtG5m@F z_J8TiNwZfzr^8{pj&Io4CI_QUq#N`~k6yV#&!i36&=0?ZJ?(d6wWthzCPmQuVjTqS z92LNUl^1N`mDQD*Sa?ULfR3ORYbWUL;7MF(pu3*ZZg;w$cX(~bedh3(1KP3C@w4M> zUdQup=hi^Xl}x%~0hjZdpm%Gi=#SpuHBP?mG*{5z|GaXnO|WD6X$}V`)?!tp+XPP! zc+WV)8!(Lz`-*Lyc6+C-*!OUwHJz6Fs{OkQ+65*=jO2;VDmrSBX?G!2Y7gh3c1Kz0 zhJOsDZwQq++RQ&v$a{?V>{?qC?(Yv5t#u_*QV1!{1N0+kkNsAAoQYaiThizfomh1f z?c?f)yO2>A<6q{}v@S>_78Lr7p$i7&Fz+;X^rgO@l9C=w+2uOElGgXITXOiwa>q}E zr8shw_{Mjy!zxp!A-F&K-ehuXgt)SeaQS|F+-~YfhsrOiYu9WdcSQt){HfAlS z;N3i#4O(BYNlN``>&lO6=C~C#7%vLan{5t>Py2=*-MJYSH&Bk zEL4r>SOxc2l+;(?ZJ?&IaIv>OR)#lLT-KHGRUZc(?68NN#!(eH2+LnvV)fqQu;rto zzNDhQ;-E;C!#G2Bcnf}9HQq{s1f~7Hw4*+>p)t~{T9zRl8d2#B`x0ars)uPaE-K-F z^U@A)SzxKum{w>@s~mc(x3_Q9+c={RIce$at>^i#QpXt3-c{+X@|Td%nZPdlK>6YTO>*&IjB@o~aj4^%S{h%x><0XqdF$G>^EMT|F)hsX-_-^t{t= z0>9@y)$d$P+f#F{WJ8~e1cR>J6q%Yi~) z-jBK4M$FwRF#jR8rkJQ34VG;P%~ZN`t1ll}@52`De#?R}baQ=0QaUxXsNQ}UF|ks| z{gJ@H05+JTbAr2gs7PF`i+8GnS~^rx{*Rb?Z7VY0kSzwzf+cDU*I@es#`0N=P6abv ztE!?F$u7NiOhsgVf(;rmn{13~hYc931c9#L3{Rxo+u4Nu5m4~kn>xMa5zmZZS0EY* zbhlX7{%pCmbO$0kVfh`X>iAwD97>FtEwS($ib6J6qU`j|v0ToIWz$+~1YO_~PuxRCHp{2<)!!WXk&NV!tS9`LUX_7d)z!tIXk;iKgv_w+3k*CoT3Mm&uip#q9-|1`##e$2b)pgv&4K-H^N zi`&TT1Kj}hC$w|aeNnY#2NVVm=`HZq1u7`iEjTw$!IY-UB*Ve_3eSY{@e|tjffiF4 zo#1oYiySsrXj;UNEh9*j&F(KQ?PzIiijVVD)Ca>oZ4+nCo;`D7+dxs71KTOw_2H^e zq%ztQt!x}$))Mq!&CBg5^ArU_#TbqzxowfqnBrP@eZ@JBvP;It6Yc}tiTHR+Kb807 z<-G)5Nx-ihjM}FryEjK(nkg)j@8Zg2y*!VXwEv@Bb(IteCw5Z>nl0( zUcm-^yFWRy|16)+{oIRoZtdm3+9$eDYg+|I--i4)Ldj5!6#a`kIwv2s;;6};Qx=Wy z492HTiw8To|B%BM?lZHev$JRBJ_`>Yx?#%rXyxQ&a&l#KJhoptQI2ZI>VysJFz8ob zk-lF>N~{&jY}jfCVmgqKA4tDHG9Kl-n7q!o`}73qQ+0mC)D;(li|7)y!wNosd zBgc_wFXzw|@_$ZY1kV4qNxuIdgAMD2u_IsU@tYGd=$)2Q2fed1zH8=*jp=`}_9k$W zRrS4ipS$l>xAv{8tGc?XdYkT^>221Ynw4RIq1gvSXpv<^Aj2YpAU0~^s4t2E6^;05 z)I@mkCB)?gqlTLJVlaP`Of>(9lEgO8r{v}R6Y?~XBwF+T{?55ob*sB)oS4j1-+S(U z*5CQ9-xIFP+5hNu_SqIlc^e-^)D9Rwy>%HwaYZfb_it2b8`k88Cs|2XhY~>m@C?=D zOd&A@9u1B66RLQosQTCFJg-uGH%K98=X8$qJABS=V!okzKlJm}w#tKIJCU(Me|An) z#4ats@8VWCLn`o5z7&(ndzEu4_fkQTZ=ICo0v@?smfxd5Rl?41#MA2s1P@b7*Gfa@`bW48-B~!Znow z)u{#Ru!0rfl})m#AC{EXE5RG^np5%ro!c$qE@EV9oQbk$A&*aDoP}nL9mGnL zbOCt^>My~i368K%K}W=ANRa(od=@?GXqm`Ek&NaXO%zUaKU)%?Wm8?vMA`FwuUz=V zx&jItmL#EXTmnuXsv**g2fRLUp@EUQpFCL*RLw)K$%hb10#Xwom7+&Fyd%j2kON?d zqZiGvAD705a|rvkbvZq-YoZwSm6+m3ixayB(z0$N$U8SYUNX&SW^y9tsIr^z3R!N_ z%oe-^V!>^HVlopokNW21LMda~3>L$-BZrl0)=`;lW=ac_rjHmQ!-%AO z)6+E9ZxCDA@Lf&wOg|Md43%R|h&I><-O(WY^Ld;Sw-a&qJ#Hl8O!zK_b|6I>8U-!{ z=uw#8VJStq&^iN58hcxGOJQicD>XK8`E%z?QPcUk{#;gVy>D_`F0=rJb>4f3AH zzL3d|3~pKwA}-0R?~hnGmyFHtJb0WY(WE zf?WO4`8V<`Vplc-9HVFY)?qDGn`#*&(rCP0YL@y_%GO;;gI0YL%7t2f~ z%DY_Oceflzcug5L8yJA?NSVjlkpJpw=oud7^E}NlUDZM;)vLWz*T~iU7(-f6g^qY0 zX2z0iwZxIbmIZzoXR4dnw!Wdt$Ei!Q9YP9;^u(s z%H}JEoOTCHc>gjFAt0)wBwW+l09Z;_C~UEx}Ky<&e;7*#)Aezl@zy- zgmQ?}W%5fKg0JIdZj(U&`hRnABUQ|1M##ty!B-P;`H(o{sn28 zO9{{EH0bv-w=G^o^Jpm7nEj}GfKH!7Z4K74j6!lI)@MMh06gFe>3o|5#(RVAaDu``hqvQeV6+px32J%Fph*rAvx z3@*vF%!jq8_ONNOzATbR!Pth|Y14NSYb??;n0s+Q0qdli?Yr2XR;&9o-7TJZT0BFN z9Yz|(Sk>B(><)iV@LQ|kw+N3ikHG}3M&sNI3I~{UM}=*;)y6n^j?xZ5!OUb>3kYskAz?Fpe#R#7nFKr@Eae5_xOY2 zd+YK|H5!&@5k*g&FV_xCbp`ptO7QAl2C4Otv%NcD zvp&BKF`GRT7CuIi_%-$~trs;!mV1&G@yin>DfV^0l1UCQ7IhCEBvtJ#hAWxuosK6@ zO70zFTqi!(1=U(E#q6w}kEY9|Nk2MOW^5oCEg0-7?ze9nn_~7U(^?i%Q5#2VZFztf zRxSUB%0mhut`zLZZ6uHWJ4^SvDeem@rqfRH+)DVkh=1Wvg_0Odh^_pRBqJstF;G>^ zc4T#_K^P+=KR3l-69kuoH$_T=iJu#zxX}h1JOPC@`+p`Z!`&TI65c{o&Rd%{nFTqz z;3bsUZr31igR@+1ZnE;Bnr7@pVP=6`x0NF?h2e zpq%QQG_>`$cOK&^xh?5g!1@3;0l_bz*cd^zQ;M7%PRh!_bdiT&6sIp1J}T@5#M~Cj z18k|Wd|}c2C(JHOOxIa)W*}ZD#0O@ICE@bI8vV(M*p}96qmiriC)v(qzZe@$*bJL} zF2#n#%LvbEd)-f~l!cIvkUGW^Yc|q;E9$2kQuL8#>t*7gq$O+-c(uar^V7I`qSSzM zK#4A4Lw%O(95`-K1k%T`zP=GKx777O%{T>%LlmVmG}icDTn6I{wuZ)JSKW~G%YpJ4 zatR&|yurXO5IMjICgzE_;s}XWY_SDj1wbn`u>C50$_O$ts+$8@*K!jxLogw%Id~VdZ*9PXF?-qt;V0f$M zTPw%YezrIv%M<1MjL{q_V(Q%hbh=DeU$0<44FbmNpEj7&6IB1zK%X3tdMZTHuj;(B zC(G#gI{Oi6Nm?1<AEeued^S<*V58HIl6~0zD5q#&7!CcemXIbNc&^eNmMa&i8b_ zH3ST?{e(8S;TP8`ch?@1jVP?&Tzh>@CWY>R=dBs!5LsX9CPQZ%Yl<*_h>F5DCn&`? z&r^zTUZNCj*3{+P8A?WG5OT5WQ6BP18XGZ{uBqS?hz-%phqhw2exoe+V|VF1lsI>k zfxY6b%`Gbdn5BIFR$0CmH}*rth~({MAei7S)ZT&~%woLRSg&XpL=INeIl==0tP2_& z0T3h+z;Ty*E^$l>zzXy;R{EZ*%L_N}M4vQOT^fKUQhD-1@b%@(Hto4%&#q$&xboTW z8S2iP7i7Kl14A9Ya6n%r?!xWPdps_z&{B4>iC%Fc#IY z6J&5L&HkmTCyken8%cf0Fn%3qju4YtpHw~V&sB9)ji^r?KzbD3SP5MJ$2)bsihDi@ zuY+Mdbxc*iu14tUM-GU)ss1T1ZJuffLt+h2Ro}4qVdm<)>xG8cLrAv14V#6iOGI*= zMBhOydwc>q*f~xnKqnCp%2`72Cj!I-I6{yQ$tQ@&YuMcLfD=jkQ_)Ps87kc;NgiU3 z?(C1c{m=Hpz#5%h1&Miqh87uY*j-A}CA#h=mF%|ra4UquJ9kgRt=`za-H0bIoE$&W zx}B3G+E8&zsOKiyya~#G_L$&(@CUm9R=LaI`}``{s$L5Z=-0zybvJN19-y^60Vg*b zhi44JA}aIP``F``RI%}KtRkImALAxH_)Ft@JvqG#ND?^3F@@+6dXR; zHidbU%L_6`d+M1*!xmvKJC?y*A)sDuJXr1A*2PeYwbhCeyt;TBP> zP4FyPBiYL4&6Vtk#SeE(01!rvc5_SZPJGpK?B6iXD1HU@w6^A)q(sV<+^)Jb>4!)y zSm$#$rWXQfrdd4MzCe66mJ^7V5z9b^jZR0bD z#t2A+swF&thsdTftjN;qSm||=OzcRzlSqB#i86k_D$7dEvr!dBBAHAWr~?}h0+mKi zz`>(+nlaTtp+vc;-_)TwhqpYuxyy)j<5RR?Jwj4hmmL{Eho^#9h;bxovpoVXVI@{7 zu}zo)QT147;t<~=tvm>WdV?rlr@Vjrz#VryFsi8cQM-(fcenSc%4MV@Y<#3$Fi<=0 zdx17M2@SwL(6EQG()p9fal2c`yb(`=_YP+)OqCqd%}NTi}Jy8K$tYo4dkos$&%A)D_N$s0U2C>z>zimvnn z9tIo_B~#Oy@vI_!T2fN7B7IL%v^FW!gg;Wsg-FiHBF zBz>P+R)$OH#9(Dpt_}}&9Nu#M^_o>wq_m_I==}wrEW&9@9D0&GO6Nyq>7)L_%*=w% zq=SHt85jsQ5)NlI)6|Mr*%2VfND-S!6-rbv#f$OV#_w3m&(^lu` zwZZE}|7&8NrP!D;@P)$k0|0*N3Ket+YNAf`e%t?R*2hq|Z*=D$t@15qafrC zOf{Hh;+GKj(Q(ux9ihfbma+Xp?(}!zcEgI>vsX;*yXzfy?wh(|)`_tX`Ox}BZ`jR! z2)FFMAqpR4A1Xla;Emh%-? zaCdCX6=8#V7YB%U(Ke)OAabz9MffN#k{ObG*$bZ#j>B(zFA2ABOn|^RaVvLJV9W4& z%!T#V8R1C$(tBj(GTdH(06OtHE*A$rRn!MXWY83R(9ee_;_J?oOK>2fpVrqUFnJ0q zc)V@?JA<$7?3(Lq%hvjdC|rPc)C+p_t}`y!#4oHbed}>i{9Y`ira0Mpq+>N)+#tny z8ZkzxekM>WA#1@7&bXlGr#h|;>CWUYyfxV}8e)}NEoi>L;rmKO`YcVB*g)B}!kcv| zQQ$2%BeHf^f^MJ<`dyfomynCFORQWE_*)v67!Sk{hI^xR6pK4dsd@wL4u_U-=WKnf zp=eJLuk=Z$?Ih zGhJn;T1&iESFmmUv!tu%d@iNOR5~-RO}!724v$n7@Xiz4*Ec*0Xm`B zKi+LTD!{5F=M_lRv2=E5B9~!VSuV;SivZ~yIEp|QDDH|#wiw7R*+ zHvYK#E$TGKG!_yga-_+mN$LJfOCdC zeW{ZdJ;>b|@-!3V2Dee(kSC(A?L3{mmd^0)Gkl4cmtuLL&nBK9Z2(OT(U!91I! z9xcW!nucPx0BVAfO)g4xJtZ*Y*zne;b7cF%1huM$xP^l9Z|3kG@a>Psw$n33^mxlaSVBQ)vEwIIR={ch=QNR z4)eXKgs<)P@eun9=puo&sJ5VXylVne=;9(Cn^5F;KwJ9`IoRPu=L*k%3;mR2-8gy^ zcoD);1oy<(_iHQdKsjm9%tAGS(s88@#P%kFd`mncq0+h!QNQdMQT@^)mUwV&3&E|2 zOx3d8#@1mTjo?`?4R2+%t|EZ)EHj%(WKD~Y-IMGe*mFEG6G-qy>MX>HY6wxqSMb4I zpqpS!$=w8;ZjBZj3H(y#p!`R-!9)G%KW^d z4(3M{L$3K~;89Kc8Q1Sd55w`u@MZf5MnS(NRwF-vJOZZ0@v*)egW2py;Fnf&?;0 zF<=ntX?`RNT`CD-1FZu@J1Fk)AKgu>rzlni1MfenKJ_`|sa}JV4?vJo>VI-Bv52W; zDltz%pgYi1p%#&$>8eMw}lqtP;d~i;hvN znf5@Y-|*Fvh0yD=rj>EsDyhDK>$X{|8BQ_Vulribl2v0+dmt%EwL&qUlvo{@eUY^v z{*UAhK220M2f8ZHiD+sp4j^RLQ%u>`p|py~as( z>}uR|s-N-|-^dLEwZ>1{g9ch!XPz-=Cw(B-)bj=|mj-+_YUJwx@s1{~L3mWbr^z)3 z?L-veP_=>)RsDh4d@)~_q!jI#^szJL4om6a>p8Y_Xzv$yPmUJx3VWWO=kdCqW)Qq??ll5HJ z^9I~zaiAozO{TG17d0%f4w~1PgYh|S60?| zu`ClfDwqc18@|MORyd2b-^X1fc4HRj)_B%zami@O)!zIFNG=0fY72mAm+QK6T`k8- zxtj3T`VM>`S30rpeZ-=Xpoz+bvjTUV#g-HL4$Kfhn}k%+_XQPC?dC)p=u|(tWrb&aZt8*wGFmK#N7^k5hhpmLyYt4YOv7%0l zP47f0-c&oZjlmr2#WKelJEzAcRA6UCSRWW@{H90ZacIf2*|EdFJ#ynEG1JDdkjCe- zSqtbQlqbk%9ej-xJmz5`?#0)rVAYA~B=Xq_yX(k{A%KnlS;C9)!4=^nGAuesSXz4p zHzgzf*EVnxZ>D~Vj>x_LK(tHy5hS0kU%gbO-j3f+=kSzEb9?*Lg*>|BALRWOV z;gUP{s`evBL|20SH=$U*ZS-BUHlR8xVRntjCVFHWe@HSy19_jzn!ThluTuGKfu29 z+Pz9q60w$O6P-J{g*CSv{csDqFtJjY$#wzBn%{y=T;IJkKfkp5pSx}<+9d&Lh8iJ#i0K3Kz3kfBaTW2Y^GV*UvjszJ=ZDB=j9V z$2;jO2X-j(f&_{g9G>EY)Y4T=pofFA6l>tHMjN#BP&xh7Q`8*^z4Vyn-M<$LiU_b$ z23L~S3+XaDdJK0z!f!IXk-hqoCV2U_ZwGu}dUQJ!blhI%ghD#t*UC9vC=V#cLxgc~ z{d!pAv&D*6$4B;7YkMvmjG3~OlCemhok|T3#}k!I8t`e3oRz|)rS)r$ovQ7lr#+QU+yH3<<)we;7I&pKPpcM2x`w41--@IhKQwP4i|ju6Hq1 zD>GgcyD0!Is^z{7x8PWdS#g(;+zW^!*g7ExIF0DyC;{Ba#E!6yC7?Q=|xM*O}nyGPM35@ZgE; z!6~9$9c|Tln;LdVB)9%99_rYvt5eW&%CoutLDEKyAIQtMgjSHt`o0Z+Bl z6e6*Nj1Z3`@<9}ZYd?f#3yu>y&l6FywI9b~9zm>Cx8z>YkxG;$x8WZY3iqedXuQ{EpzI?-oRu&q2_UkZzvV6u`V1pyiSF6I?AsN)fHnO%aoiRaH7{ zDIy%4a=bj*`Y%p@|-d~YO0 zV=)zZFIG4lvn(787ud;@3_I#y&^P@7`qxSDjfK7vI5hB!#D|auNqDx<@)@;cI;q!Z zj@b;?ERl;3PNS6A5Y9zj&!cfGU*U$tZKQ28zb{Ele*53wUhSnGT5 z-}6g-eLCvpMSSbym`&VZ#&^zCj2-~f#V6}GFoK06Or0puc%)U00L zJP(_2kV><^eT{3~=(;yr?rSX9HgAkZj~$CfZ!~T9m#?_uYd7QH=>KBUC$JFt%S7Q>jCF^nx(N&5~vUN0S}Rv{0KjI{oG?BaTLbhKVS-cAH# z^E*6VB3Rpk)NtHh&5^3eSq1Y@TIX{TS50z&M7pVCEt1=u2}}LDqGS$c?#b%J#t!RR zxvT+(5(j$r9$ZkA)+fXW0CF!4tLCpm^Onutoh7|CZe!&#K)0zU=Or&0a?&gJR;lER&@5&`p9DXpg!Q+Z6pJY)BBu1hzA z$my%_+JY=!rC6<(6ugp$Q$L2cw`oWN^+GF;^s&GK1b|l1YB6!stVk4{JnChvpaNn6 zYfK^0jPf~-m@Usb6m8<%Pz!J3W+xm?2|@)3FxG(iX@!;0FZ4j~Og48P_~yIee{~6= zwN=~R{2jM`;Fd#m2%kdoSV!%WA{C~nd31BQ5wki;oN2YKV((aQffG+nnMlE_t5-01 z8SDxa;!lg%cl*F85g~pmXVL%@#CNZ-tz- z^)_s_-jf)foKE(ZXs5ggHBIw8=(Ww5-?OfA{^PZ!Xn+zJYMs@wbAU- z(odThgn$shw)JIIUL{j5HZOHU%>}kQKi)VAr>9dyU$J2@A+%q?mcr5Nr~By525q(? ze!ctpGpF{^OQ&e_Oy^nZyMixg=uZ*QZ_>f^FbPn_kQKjU&!-wgwSj3!uph6&qioeQ z#qN$PWNS&4OR@^jF-yKe`ex@6-60==3VE(U-(Ga%bE+aAk;r$Ccx|B*q&c<>PKTyL znie~A>sqDRDrN>CyJCG3+P&CXrb=hDCC4%Rnqr55{}NrordRJuQQ@F`J$hFZl(e1o zn(#st{)3pfJHuc;C4BeR-W5{HejElafHeU@1!l2OIzW~Kd{giF;GVE*y%P$`-e0!*{T)5tJ{?ai`=SA0;zycC*?R6Y1Cow+0eZqU!4ByL?#2VB^qrtX^TEXaih<{-}7YOLG%|GO~pX&a9$zD zanhp;SOw9A+t!T`LLNCrOt3$@4W9YVzIX&nV*)5wt0CYOJdRYFfy45|;4M8@)w;Mk zwB51Xk#7#jQPcGSk0Do7Pc8CMHU)T=!5OQ_FJTQ#c~I+IV)b%y$2i7bK+BuZhwnv6 z0?q^K9td_|X-S8umOIK8Qmt_P3i+N8+m9ydq=ZA|DIl?7h(9tl^$7OtldWi=Tt$$HA zp8#^a;K1BEpn0`BouXQ$IJlxe>JW39I^%>|G(<~tmNpQ!!wB+6R%C+sZ&K9oae_G z8?_u!mcNTm=8NNYda`hyY`=}3BO#yWY?84E3-)l|apLK@l@1*S22!}?2UCOa0nlm~ z37|^^z(5`o9eRin#SsT+c!?!7@uZ5SmjhEqJ3?UxcQxo`@%vy-3RY&QSem0*nK*Q( zQ7njB*ANl1kjM;XE#1ZnJOEGVoZcPJ46;b6IJO%)SEcnBZFi3qIi+Jw(7RIbPOQwp zc1Lx~(tYO1wj9;4?4J#Vb6hJYb3?4>66Wmog;rf)_VBqRTjyAde8cAo!Fv$$CSqpL zHOYM?*eFm7yIU|P?BYa!15QTN z&DnEXWQz!8No?I}L; z%fR2Cq^LfIsJ#jD!GY9Bavz2Ytx3(}ND$+PfkI>$swOfWLrbT(3&%?1mK4`Zes13f z%9BUlTvU=uE}gFXsYif25G#%?IM$wvU>7V=g+qR1*}~QXkmjnJ`)k)vmUk#e4_M~> zuIVk4wPBKXS?yP(hf9?!FZ84$C3Rnx(xKo$oSHuzr> zz+vA7stf#lx++F$2OblJY9}2j0%4Hvj(pC(S|6XE!=vyfQM3YZat3bPHdxuGOixv2 z94MBY{RvNT)B^n6(&h8u9-_~kw`Jz=TkAg*-TYX|zdkJ+#`fQXogAJg+T^@*&rx^i z>Qsg-6q(e$v81YCy+}_TEIhc~04~o1@k0y0+v$g0xos1o>j?SvC^QhaqI^@8&2^}4 zNT*Hip_r?=$`><2;P*!*nI?lauB!mb`dCQuY!YvT}c2#P?-XG;28Jj3ll145jpup(` zHdqWhL|xO`N$ElOJ;CiD3jAi9!cmWQAI(Os+NPQ{p1)X5WU~pGoJex6EI$^_ z_UFgxnxHXFX&>mq6kiby^C73Ez%?D;Q1UZD`WmMg5b{8RD7smqSk<1I5UY2$A8IBp|Z{2{Lxkh0kEW zEUwY1Ajy_I>zFD}$?7qpA*2Lc<|(m$q_{-%26P5w={RizSy##Thbdvq!Iyk)GZ{s$`MjkX14#t&}FdrO=?Ugk7?%?=ttgvQE zOu8o>$qZ*A>3fjo24JRVywWv#RC63Hs$Wy`GJ6r!c!fB=0!airOP9y6Jfji297$2n z9ZZ7?<(#e2u8Li7s|X5e*<_60{n1&8wUJvrN#(7zesszTe7tye6%CzwXBEg!RyvYKp6- zKK_7}u)*|WeZjBMF!&l=D6>b+nBk%pjVo@Vs(#g=qC0WA8h3PckT(GzC&=MRb_v%f z5#m%2lU`qQ%vQSNBs^x~k93s{7)&J^G1&0;bBxd@;kyX2qbhvTfeAsSZ1c;oS)}z! zo&8_WTk(dy(|sN-#?Ede3-TjRzH9$oi@%A}D;`}L#wBk2{o{A-TSV4r&SQH(d*S(6 zrP&SsCS(C23N!`_L?=lR3SALdtT!VhGp%duMkj}P4lWmL9w;Q~)aahbT>=75`z1+w zG)TTHx-g7oW3ad%z;p81L%)zJQ&v+FOLCKVe16+S14TH2s~Up;>#9=F%ye8+`Zcox zf~KnDSUW^rY`}W1>Oja)3#xu_blkuio6d(Hr zx>(Eq+6e`|r6)ANYsk=V2)@8W4b;)D&^=*nh@gj5T0YZPrR|26i?vFzoMyaimdobo z2A?*f<#f6Xto5jEM_d1W-PdX8LN@Mu26WPZU8lQ-lN=8U85f0oMuP9Cb9{+g|B$y< z>ojx`j{v_biWX{fGSAppJVE49)P00TLO7z5raLaugyP^aNAsDa7mM*Ib(GSV6=eX% z%(UFMA+d|T*CJ*#%x*^H zN_tMOYbiERibSuz;4oZahIVcQpMFH5rTI)+eVtQnZ-}HEOp_Gd_<~RKBDE8(ReZ9#aF{mxc3rv4;a^VY#&*4M{@A$4c{}m`;6B`ZVrMEAK)Gy>1?2~fHteb@Ef0eLRSL%aNHPh2xi%l!~Q zs{m8tF`vQo(57o`O4vUBnTus047x-V0~;Py`*Na?_W#s(rW`NUYQCJYyyg-w?3&H; znqz(l==3HhKMiazKi$XEPx)!Q%|EPWNjA*1K0%Gboid;5q!0+b?i>gZuOrfpK?6!M z0{>4F5&?aoOYWwX)#eFKh(iiVeY+35@xohxzw#N?HI>#+;8me-Yb;!_{ia8w-X*u@ zBPMGqeqrwX`-=-UzH>a|*dl#pIZ>sDM$zLBT0s$n+bRU!XGl=r`?sr;!vC+9&WG>v7O|j(7XqZb6MEteq{>a2zIO%vw@i~ zg~gJwU}*_aj1JZ?6E?cmN1KLa;Ma6wTqHjh6Ln1Sk}Kpj45ai5@v}6W0wb(auK?@| z|8;oZ0Y4KEUh_Chh!S+i{50qwrx`>nrPA_L<_*J!>l$}Qr}hon##Ey*W!QuJrlNP# z+2J>2rj|FQppj1rDsJ;O#4fB~SuCI!ZGLASSZLEUpjMwJ$%UT}lXww`D!RoNl$Z>akkwAtE8HTW@YZr7IaL{B-AkcvrjdW4q)`9RC|c(K<} z&v63ZoW(#7{&>|>_46hmu}vt`NO9FIOQXcwHYg1&PNnRCiixuGFAdo8m@;6*^H@VY z{+&*FN~KVV?kcrb>Y3Mc9zsG>uFBSC?PxR=jefsfq@K2^pl$d{cUjb6H$jCy+DK+QX^%ofNf^&M8eLROH>pqXWIF^ zZRYOo6e(1oRtwsiA>Ke$;5HuxQjeWQoY0P>Wn`BN=bxXqjjUZbQoz~Q2c;t&XOpi5 zZ$QUM$XS zUXPYz5P}BjcnBUE%u_1f4&CS(kSp+F;I0he&B;lqr}aq}m~0+Gp)F=(sbB?b($i_j zkYh4T8?qM}HRZS5fM}29-T`}<-o?E+pr{N|FF{N0+M0$*!rC(6MR91%8K!AqX$c>`K_-LxK?+~HbQVgEp*~idJ1>p60F!u21kj2l?*5m2R6v=SC>?E zNl$R|+G67GL{5af+|CQ36l|Cmu&t=i3sHyUkA*S#76O$V%88MfBzUah%WGU_A_AXMr8U~G||moOh_ zt|K%-?-gp@vyJw)qBLCwUIm6R-)uON|1sX* zUoRBCce-zwK>cok^fSESXpIV!`O8zovOIhYf1c% zwd*U^b`U^6?m7st`$hgcgcJGQkY+r>2fFXcOm-AU$4sIso4i;yc82rpDqi4Bh?;s` z!qMR5gEp;y6Lu12OFG4KK@w-Knu)}6>`WKn@7$?F8QLyFFcJ~~tv^29p%v#)mum=a zP^E1iCy4-cUdQbdtki5?eU24IOT8=xRM*s3sSjb(Y<%-<_0lD%E$&dqtLfP#dYCrE z&+#~E=y*;2kjHI~}T1KdgjS-%45hWmQUSlPsxnkiK+H zN~G8HaXtwM4?$)4E=4^68b5xgsvLZ3Z5I#GdFtcvy*W$&Mu-CHxKq&`HmB3gQId^% zX(O~Qb||?~zxx2Hm6vlXx2*+9)Md9Hspv-u$PMJ5x&%5=o0;AM-Uc_e~41hFAz+cLeo{sfLQ;y=QZht&7o`_a*9@C;1^PYH# zq?u04w+*Ff4`Fp^tjwiEUdw=;6p=HhMf4my#kuoO#fDhYPQbNB2jIM)pDTIbM^&}I ztVU$hiYB$li@bNf0t2ALbeTbj3oO+f5)BA2-EysC!GQ{@0mHa=`24=> zMcn*1)(@cB;q)-n%>%@qUQ!IPThe+qP-Bui@I~K=NHbzYr}0 zxn0xkN&N;I7Dy>8o$5nX!g!|7b1g34%tN6Pur@st=P!|3c)mvUj+AHB=5<(ndh6*7 zy`N+V@*5)V6+9y50v>D~9C8jenMy+`D;BB%5hF}Gh+G@@{%skoKv4tOQ4JP0;GV#e znZi*OM^#DJvWlLN7?v&6)P6|HkhRo^{`!pu!5yadl%lH2#F%55_NyrQlxC{x^?CEc z8Xesok!`@E??&d#%A76HzVy2A1(`r6i&J>qVne+(9>Bl3Bcm|K;7j$|emZvAEy?GsgpC!M5 zI&#a$t&k02r9ETz*pJU8OFuZbJP0O)Z07TzLRUeuePiD{fLZm)zTd$--yN0Z&L{}f zGa=wV*h6{GBOnbC!_+%btk*uRxxO}{VRp^+pQ+7Sb3Yag=PFbz&_dc(g9e#617lD7 zOzVz7&5AoVO2JW8ECqtushc{!(XHKcY&k)9C&X5;0KI2O&}epp>|f=~AsxelEaneZM!4@#1)9}R+;paxU)6sXSUtwksIc}y@(kgCuB ziDPUvTuh{&2c;t1GK%pb-{dIdy@TMK?(TaZ`XvO<6fs0-U2sR_W(zM^oWUxcbPSUO z9T6WCT<2bo;d3>({9}P4au>tGmqn@j^n{e206l~A3wYYi+=vDZDmkWl66i0Ne!#CU zNMOV8TL2GZc~VgVbe8VQ1CnPKCv#X#(2n~Omfo5ggycb>_!@KA!iQj1iYFM{y7?LS zA@^(2%_*z^s`_R$R&CUPqUk1K&|+-M6@Mi8aa&S7_#`tnUcGbo>~#mL@P5LIgZ*1C z8l8D{QB6dZKk}^CzYakJmT|{jmUn4kB7gotE2`M$g%>4Dtdu@1FGaFEP$#GEevhjic6lcbLZyEHs5dAif^UsW&{&*%1+!q zvy-vfc~@^qS`p98)DLaLB4C@L#sQ=cVGKcPKwE8v4j9;SBsCzO08K-26hY%qgFr(r z-1r_8qoWj@U+`Z+W#y^{~`Z!tXw59IYLCP*Zj^|uvs8x1k?{J8v|8inKiJgMo5$i zCD|g!-4M25n2cN3vgY#}2{rO7Er17*M;@|CZH`TYE%lW!zx6RPS3(IyQw20Y7=Hq3 zh3k!}raCc1aJ1YtUAxLkNZG8EFpt)zcP&h99;ua*i9`}rvUwOy6^}&N63{dE>b7;q z9hR-{1$JiAFXjr_TrQt0#u7pF9BQd;uOpdtA4dcw@8DbdZbz=T*Hy401Tuj@?-^cFP%fQP*D;ynM$FSm+?<@N zCsTNeeIruzcI?jNB87~T0HVKG0Ck0NQ#-FSfyqd`OS->b1DMWIaN?FB1f2qtMRt_W= zA}nnXT-m+DD@G2mSHn7PDw<=vNqAnCQ4FK?5S8gVK*VB&4Q<5qe;AADCG@kOK&SOT zkf(mZm#jy-N)myA4g!d-lojY8QQe<=1D|P6(Mydtct$kp^2hBme7iy!0} zibP2?GlYdARJW&nqb(~p(Uz@b+e0Z<7j(eU?3HAs8axQ0w z3W=4*N}_PU9skIK5kKS5W-EvX27T*)-Mr(j?2C zpiTa*aL+pgFS@tp+vm2a0JR)>ZRwIrxL78FTHc^)n%a7I=uFhdzXv(3rFJG9I3NA% zbto0h_H`&MKng_uuJGSYturJ+cBBX?QlNEG>~FAA7yUhxvB1j2Gxqe*qh;8PuO{zcSTMw7-7lJE%(###JBuLp<(h zO@Oelnvy#{%!XK)A$-XGsmWb4%#*frS|qKe?R;y6yg`H?$ck08)*N!(@*A(AYjZbz*o#KJT>VZlj@k8vYPDa#`oN(}b5&D! z<5RIQ>@_E=NVcowl1az!uRKIoUU#LDFBNnzk`qIkh7!&7g3buP$_a2E;F$!IK~WkV zibCE%;9DW=Q;D=rY*{Gq_A_w7#_tQ8XEp@TSdi(ZRRvuC>`z8hx`4 z7#$2=?4Vu6ZgV0%4~7H|RCP$yaQni^uv6+(Znux{7w>`#yoGutx;s}huBaA^jbgES zg;9H@c;rYiFNv@{ANf< z>m;8A^+l}bPO)Q4V~4LiJeEzT0nLfTXH~2;9=@GFd7ChGEs7nFYY}m9k-i2{7S^Ly zb(93eAGG;p5c9yZbL~Q=GYEf~?pd$&1D8N)=_pFAkigiO88T|Q6~NokVx`qWY4UX6 zim-tRYJSBf3U2n4+Cp+bev+p55*8z+$RfTNX`z2ymd8rp$?sj}{0!xtu;SYq4KSq8 zRY51&MuI>;2_FirOGw|r{)L=0)jLsBwAjv@b?&sO4qu`{7jw61PKcd$$*@M3;>Lse zzobyBcz}C@K8V$m;1sIS1Gqnr2lx&T1b4idfc!Pi$2OpYm0>%uF(0LgmLg8AUIFS? z1%Yc=wlAekva$@1BZNhQBCzjYbJKyT1FipkaQWf`H{J9AH2deV%sUy@jep>#7je{F zp?{^HNHX~K-AdJ(7FanMZ^Za~aDaaP0m1UKSO;&W+%h z1M-v2aTRs^BuX#>-^D%f)$E%lS$Vcntq|P>)2->8`39|S&-p~MY0d|m0>^g2eou>t ze6ApuF<2nWl;ZA6lQl=JnW17PmCvU##i1E%+=Wh@t%4%A{u?dXh!}b=n!WGJY}B(2 z2WPHcapO%lzOs@?49)nFp&`g*LrH`q2tBMDPYUs4vlWlD_DAB@Uv!o>@V9k&fuhIU-S--IH+c$VI=px?v9jU=S2Cdm;Km$ZypO8s2OTI0b2EjW~ zD^zF$B2D5p&XUg7gUC!gSdo?z#z{iPLyCvisY0_$A%R%&Koe?Rq@{&TYN}NAqlhwB z5pM3q29)~9$d38L^E*aH>dHXO(;QsUw5VS#rPNK*!0bSEVlRTVWO?sI6-TXivtpu} zEDjy2u+7C}72j7XhlZZ|T&zDPYxL3xUasH;A9iv%=fn6GH)_#)H5oU3&M*!R%na-r zuh++SA#u>SG@kEIR$aH6?9azXT$k#a_!5Eh>u?Xwo_Q=uMjKRts3+3xkR*+B_;Ke# zaPfSd7&N!=#YdgtF4P_|*3=82j}KoI*U@dkI-~?H;EcSFe%DTF{MNT#i24bJJXL2hF;9JwION@YP1jJ(0d|@JaKld}nVT^6fl7o~#$aT&k})EVgSCed zPmE<14GI1mlBLKI_$F$y1UHxgLkCq*fIx35`&{UG&NtPVq5ucq1>kDi9vWKD$Ao9n6G!Abi4Xp~_PJF_R z1JEU}d0J7Gwb4l%Q6J&@+yfov8V*mZY;Mm*f!BpVkw9%>1s@)+B<7;vD&{IZ9n>qY zO;M|830`|a2Sqm(oe@t_1&1p12wELxd6?$Gr&?Ii(2(P*z97$CJ2x;eEkk!m7bRF} zKdfR2W-J{589t?0x&jx_x-4ZR*}>RmFdn1l$QYN78m`Tk4ZK~$>(Ql5a}#cft9}G; zw`#H}VLgN+GH`FCck6h&>O#_29Z9w{^hqouq`DHUgjnhujv#tpp9#7q;6guL162d>rK6AHMvP8~ zcb7O*+ox1!V>FO+d=pp5^D8mO!t9&^-&I$4qYs`-S z)uvgFhVfZ1?pUgwc9rPPcEa}JjZm70>f;2^aZ}ub5agyU#d0P) zsl-LyB&WBhe+r`eHuiQP6OxZs6+r+1nI9m6O2DQ>Waj{9I#VYqF^^>zYAQ&uE(D(0 zx^zeDZ`0}4-#UOanDQ9}EoQw^g>%-cG}~0vA4NS>tz#l@{)7&k3iXhxiPlx`r_t32B0+Ny-hUXH^mF z%3!uYlW^IR&d)#djO(h7n)lcy3hHWo-Oc0BWeM}Y#P8o zfB#;b>c^#DnA9U>LfL{& zHw|}YvYf$$($-=L_vUoq=G@+QWKV7g6ZgQWJ49lB!*JunfLS&SA<7+^!oNmmgR69Y z8aE8XEj=El9Qok^;JC%ksZB9NuNzygJ&xWRuhfOoN zFV(wg{X-_1%9)PL#q3-vnc?G~)S8`z2!TX0*6}AT~nfSDPgEJA3+ghHC&+3(MAOd_roISI;7;D@?heD=5GO1hL}y7 z;33$r?Sb$DBQ6L!9uQ1yPy?YNeOJwSx};=^zLH>?d@$;Le0?+Bd{D-!eTpCTGK!>o zITh45R4x!O1aG*$nvWcm6~r18{&sESd^HB!!NEu#%l)}JQye!+#vZc8lFV`va%mbe z-hN0KH-o+-uLwTI_(3=wk$4fQ20JGF(&px2N|oULF+T?t9HIOyNHz531+XIn;I)a( zuFdO{nCZav&2dMP8dh+_Sfy1-@xx=7&Dn>~^S%C2FKRQb^=C*IM|c{diVJB#pS=Cp z#R#g)lzR`Kg9i!eK@?)2+5UFYlG3>FLb|at3HELL^=T!hMj0z4VF~xWk)jtp1i#VM zAbq}~vOXyq@k`mfRlWGw?UTCNdsx;G3NxeHHcJEU?cJT!t8l)W26RPCNxvR3-Fm82 zTu2dp4)>Kje00Id^!62ss-ty#siS~wAru1~9C3UEy0<~U33Zb4qH4=Zxva>xx~M%N zcA7Z3w7$E9`^N80L4r_+hp|x*q*M;}vN*lEwx9HtqYAt4C2PxpM%^+XiL%fn52O&N z*5@`LRr3_W*}a1RMd-m$!Tz!mfeUG*0@gIAF#{`P1MFAJ$?`|nm+CFJ1O9&PJJimj z;o?52mJ|i*QB%%V6itr$;7lu7*=+sm+LHcj?+s9_iU+AJXY_4xdHesmTd|K zNPE1r#}9fTbwO6OvDg}5MVOqlKDpJrnt%_FO-dpMdV?p^I_p>t`KS)Q3nW5alDXq1d(! zjNH5BY{d?gm$Z5x??WIEf`QXHSJ_*MZ7bxhXDa*yrc<*m^h>!qT$NemSD;p%snsr8 zQ+dn~HjHP^Uij~t_@^0WER%_uMp>YD-m?Og9itRf#C{ZtcB+Lx(rn5rMfnf)Q1NSU4o)+roP79K` zVoorn0h182+=wqeg=PZR-)W|Q>2jqDf=>;ZE#iWcu7w)IFfZ*erGnnA%`b5=z4Ov~ zyUzxcJVdg44L`45Pp8A=xX1Eyx^FEF4rndL#YxtSc?>&puMK(nXB>;wb~>(HwV!qW zQUle;ai1RDAl3TJ1}D2Wu81f3;~Q+CbM8F8K}yUo0@o&t^Bf?Hb<3cyDf8N6fxdC> z_jk*@L9XK6B5!n+h045fk~O-;-uMo#w_SydPU{^`qt!#P5#-Mx%GU-_BO#si3f%D{ zNWmAO*~ZWyho$3i(H3x*+=dh+d*CnjoBATR4#2DsN(MH8J;0}n5sp)pg4-$70;3O} zf#6WnDwoShWy3vB!SIs)CemIP2stKwF%U;R?e>hEPw!0Gc5+ubC#TtajjZ`A%-vY$}2<5fxSdAF4-Fg4WyAV^THaXVo)a`O+EdM%Z2U^gT@Y0UWu6YUZp> zCe8lr=DF`oA0(f`Rqn4)!z7PbKmr1WR}NPyp})30=iA4mre({`$j7ym)B3dKmDAtH zx?(9Pb{@=Efe`9B$L-QRg*4Wbbl|lF@FH{Cw5xe|IqB!YWuNe%VJU-*Mw&PJ3=NQt z_Go#bXrfVrh9~V7`;eb8AVanPN@h8)T5pEE;49I*oLAGVk@2s3#?NG;zx_?xzVKVL z{XgTb8ZUdFvaDqE&Sd%n(G2oI{#qx|2REUfVKrNqjo|wjI;3|CXX0@`ZNM03!1U}L zFovp8{el53>(S6+_RAi8;aK{mv|l2NU+EP26`lHYEE*Y#|6bPYcaNL4@10Q8MIY;> zf-k4Iij&ZMkze0SF!Q}iHh2HSwHRF2b-yB}_sBR-8$%8de)b-pGK3MT$j zZ-&fGKPdD7zzjQTNT)o<*Nvi*Z2Gx##D;#ZDj*vOh!d4#Jiw);s)hRp|8W9E+7NUM z^hIhR{GTSRH;0hMYQ21@(lu(h4z#Y+myg}(vKR)0Rv(ULP^li(t`l(wigm*&_*vLG z%=gFgEdZRftG6K9)NymMc3XO%ZZ}D& zZv|z6^}HYYi!}eC!h`k@##3G_ZpcAz|wWKO1JU{x3SB|UhI7`roetwv?!x`Gr<~2+752Or3U=@AmNy;54)kYL0Aapc+ z3Hl0R+GPvKGByje%6h-C=Fg8Dk9yY2mS;>EYrB55`Kythmq+oCy#eGONMd3RAdK%h;n&OEK45J@#SsUE z+MbcTYm0i$zU7^{TGWk`yYIXB@h!1vIf9<|Y`TnlSl?E- z%og8NH~am`NiAo;8_(^m<-mnR?>_;M1AjQIbE30a-0XHwfY{0T>+>zq|GEn z9JL>W>UK}V8R0QOvuGXD9m+)4`J%xH-3{_jlN^Woq`CHwja*7LYA~O=s;687k1F+OR{YzR63yAuaDZ}E?Y75AHu<*i zzQc4hxCqOcp_6ZqKk z|0iKh7J|s%2@c@)|NDEds=DWpkE}hadiCm6^{aRM?qiec53~T6AY%r;Z7{M27ny}O z#6GS}Qv4gDNBxMGr&?$T-ziMoB{JU55s^h%TWbOT8;LG`!4q@7(H~%^giPUPaXJAG zD-)r^g7c#;x7+nmr+(C`WX&4c!E60}=Ko-X1pEjDTmC!q~> z1xT>2 zC+j5$GP#z)&BS6wx&FTUIb#rluL$Q%jNaD)xS*(qujYMw=jZmoZY7`@bIs-E94|?G z=H^$*DWvj+c^b9EfnPGmK;h2a*xA_ibIm#YiSq6{3j=#D*c1Y8k5#(1`Qm+q5xjw0F|BE-c916=DK7>tXG(Vg%XbM3iy*nE3P{4UNeYB`#g0)8oJ?)+9eZeLl1)q-{UhJlev0e}8oRd(GoV$i zZc^8$&NimbVZJFvPdsi|NN$%R6?oR|WPa$X2Q<-3b-4*x5Qjth1=831yKhXCrm+R@wf%5^MeuH-^ z?6c736Bor%idKZWnj+iL>&1@{7LOtJ8+RlgI-x|=^jo98&@;yjoN#`y*IORzO@>`9!nQ}_h)h8E96=d4 zs;aF>%r4z|Q0pbPylajEFW_I647Q^`F9kN{3%$ zz~$SiM@abFm(rqmimBC!i>|q7B9)lZU_SRzs4ph-1BcQDJSt~z=rP3*a>?| z)c4#+b?5GPyZ;tX^eggHGX79-q5H6srkGd_tRKoYxCK6jmpb0<_^{)X*zsL4B<8gn zDi9(S`=e%wYu(^?{%U^Yb$Z@reYuSe@xMZ1M+_O>8Ge=DKAGJ#-?NYby zed~XM|61p3n=}=BtPP%vY-qTo%d(Wg&a#K28!AAE38dOJy z!@RfU^>hZr9&2zUB2ijc&whtZTA4HoYj+T1079vwJh}&*5MkVRKc5mhe8Dc=j8a3J zx37_=&nmk%TLj7oMHQeR^81K1*oWW(4{C^GZa*bL8}REE0(Boz5oF4~37MXG@xt1* zWi2yv&j}iV;@>aA;^Y{tXW#F*AA3$n4FOlV%!oz>Oc)gEXQ_t^g*|kZ-@*DQ59@d1 zt6kgKkJ+b?2@s*XnVgEIVNf8-=}7u|tGurMk5_LEMu&+oVTceL?mS?IIYc}ztVA67 zVe?{V1I(Q%)A&Dt@fS)l+|LDkxV0#?mL*ImQlkT#};1ZJ=UI9{|W<0NQ` za%kASu>qP&H3B;?apg^b6Kr4&0PxOGb)d7Vt7TPRcW8C5r|i2r5?UcdtbJ{lSPy4l z=1yCpmoM?(VXaa7{afwQ2kg?#-B-3K>D7nrJKffteh_kN(t@uaXE@csJ}PPxQG9@l zF#p}oC<)Tc6p%Gf>tM$E+C4L~n>Hr}`S7{u>SU&tIi0C7gct;+zz>TzhC(+kuDd=^ zSuB?qD}qkva`Zv$L8LWd772IuuFQzVAs5LYp4_<0DOF$8l>swo}8K`6^Fe+qYBm{j}5E6F7s^avpRm^$Uc*Y$5U~DR82Ff_IX-+WC#>+gl&kU6Qj9)zLQ{ z+g);jDQ$p=W36VhSF61uI=Jf9!bx3EhBYq(qzA8yZaOrq$5r%`;)sM{1wI8FdOjlA zJH$=_jRFeQjNF)iH5k1CW?Lf<NgUi7Zr1u>}2PwiL zSrK4WIYBuHahIHjuoEIoeqg6N_FBkv?vLm5WBL3!taTLLKKIVyfKUm1S@G}&Y#-eo z%XeN}J}T3F84i$Qovd=6hhn1-k^PUAf6R{YI90Nfhl;6y&j%?GpyTTD^wB(9#jLkz z2m<4IcFMXyc&ALKE!=dQ)UE2hI2`S)?@2%q{2M`OL#4 z`g_>pzl(nFE`O`lXyE-S;L{HwYyB*j^-!#C_`Ha0Mgr;M*UE9o5(w~EB!#^0nz91- z-iL0AcMlxlG^7G6w7W@waEg-oibTG~C%V;XU5f|IGIV7Il3D;&5nM9 zu&?Pi67Z3T!d$B@*f&Mt7BtHb0HJg&;Q~BvctoOngie0Xof{n=@=DKsASDUhqxEGd0NHpi3L)rKujEQ$?<kqA_{`m*lf=Ld0dL_|_aobW*X zhkO6aJmZ3$G$X5sxqglfL03>D*)J5hWHZ6%T4)4_qZ1`@=R1Y%gHYFKa9vt)!txvE z!gh%4dFf%C0nl>@{f6Y=9)3VzIJ+$N%af3^iFh}=k%{0kbb{*+V<3t7HozXG-C(hU z!1u)YpqA0l+x5agzjz-mXNm;+fL;3Esv4v))ez3TGe&*wVm(mtKe zplO9C{D4{;EZ!ptU*s*VUNiH1&Df*EsY%xCXg; zKtXn2|5{3Kc#TiIayw4vS+Q9%up$E1TI;95Nd+glV}YuRIPu3_9C&yMGC80y6SLTY zSh?7qF!Cn_tKGcEQuYRTVtEbn#3~mh&*g*tPT3iZMuP||ha)cf2g89tc&F{KMa_Dl z<&Sz@m6T8W(-J&ybRBwQ3Bi2~7{SP1#?k@Ei=B~At!WH+16=kr`we1Ug|Y8u;K6VW zr~nd%1D@FWd7dYgET@o>JI=-a0uul;kp~ZvEbE4VpyawCfWHqPEOPdMLV*37vp=BA zN+uYNz`#sbE(`^=KZ0MfZ*sz?yMq?Wm>y63F34KA4Bprs8>Z0UXbK$8XmA1m!NO+U zry1^wdkhYIk`V|?axQeCqOh2n532rtZ`>bB$RlGGLW&-FSg0uf+ba*+qqY@03>1wu zYai`^mleYb?q`ph@t46f72TMRleb4rZSdj4Xz(-fF_#- zoFj?+m;_`(6V8pv$nf44F2<(ncA3)}Q&5@ALuoNnvAQ1z5h69D{7lxhw3t6M6ip5# z3)3T9g$XM`evSvvKR+ZX(A~phY8fyX(a`o*q{6#hT!4a`57vq&Nl0T58hv8i&PLWB8^nW}d1* zAxG(`uoO)4AJMoicx^Mt#5>dKhXrgbPHH^v9L!l|j`%snW%9{LtMxo#6P9?pY@o5U zMK*GVyhTFvNND(tg{-2u%Whd^Kj=KqNM}0M(9{438Ukv!8&Q{rumwI9!3#VdpCZ9s z)1`)j!I0`gQBr(JjqFC#9DV`b|u6DqYLH!jCE(zEUhf599@8 zGq?_q^ngS{5Rm3^DFJ~kL(HA&RXxz-*?G0YK$?aAwXc-=M2snzWRfdLSo44E%{ zkWoL@btU;0_tfoiZ0&J+y}Yucb22J;OG=Gwk@$C^lZa>El0c>Jv09ydLskQjk`N*xp6_=Q*M@n4Vw z6a{^8F_^a-vjPx*tlQJxH4^1HN7nY!7IfJ$*Wl7&FA2>j^{k4uemB>ynSOM#cL_Ww zIwFppGh)Uybj#W+UjaS-bx_7x;zz^WOMp;1K?5@Uf}I;c05r0M>b3P1o}akgKkP{qGo*1IePRt$LzOXyMzU0ye$I%X9hmJrXIFz3ota_3zcQTkym!e6hb9Cgy#ijGO zy~Y!;*Z2lBlDp9(jz__p1DnDW2;G1q26aY4ClG~zcLfKeD4fBOwmAO+ilB!k$hgLS z5*!M6W8U0oa-=+VaU=+2ATb!h6*jN#{HhNYb-wE|~&JKsg%4ED~Rcp3l9qhojz%I@820%0=juo++J+H0c^ByV|% zy?nIRLl>9f6;?K5B8IU`<-Oiy?**>74g5JTv59#Rn42(6LK#6iQ< zW46(z4AP`BD?{3^l~oG8;$%G{nHw9y%#PGUP)aS$&7Itl2{s}TUd2-Uq8DPkjo18& zS}x5oA8*$AanCbcj)n1D#&}YsfV~(~Vt{P+U6}aOsDgR~Eye#gEz#i1i(SGuO%Yl_ z8XPVG1NjMM1jtCAYYFxnu<5^7)jpzoB)8uPz{-U)`ffcMF#L$Ou76}aPn$YBoyDGw zWOO(W5s?NCOQ$4-6GPAO{op!f`NzO4x$VKy!B=6(iD-rdpzb1 zch)XF1s3BPk)u@TK^*A6AJKM562BGp+>ogOU~R4ou=Cm5h4o^TsLeKrk6M4dR)O%} zU{+p$W%-&D^LNuYY*xxa3If_!sC(FPdO;!HTywfNN1soJH*8X(_3H#|TjjQ^8E|>G zINsycnOwYa&b-2+bLde543d5()(bBu^ajBjg*?YK8of^;yy# zPU8_Y!dvPyFp|cC;BSL}0SP`t;Pvo2;r)7H|N3j$<7bL&$l$r78U(Y5^R@^XBEkYu z5*J+uCFM(nP^|^Ltm5(PRuRSy$zL^pK-Cdb&xv?!9T6nN54DF2qGqkW?Vz^c?Zvw?7&6BR>OTzA3sBj{jl99SL|fux%d0?NmSJGMsWy zmk>WrR~ZsJxZP+MQNo^(#|OQ{`CSFV%BDq{Bf#^YV~#$`V^E8%eUwGl)&yA+YL1hJ7Q5{}RL^JVwFU zem2TZBnJ0huy-(F|Ju7wKx4AH4{yUC^rO}%5}br%o-Hxjpv4e%>!Q8X5;)_Hh2M47Lp3Q zZ+7Mb8=rh|!|Qp!aCl0*3o;~=h$WhX`UK#HZnCYN?@~9|ShpL`Z+sce+bX{C5$YH6 z#rIHo^d91yVpB&qJjYTS-_C7jzY6{F*AR&T@Sp?=0ub30P4S3&NC+4qyEhR`PsZvJ zR0WU4NemgBye9-0nVJBhUI8R0s4Q(6-hbYuL)95)ME4?P#PDEoAfah}m)76y4XjkE zUkycmW8E6so6sH)hg4s3Aejt>h9coasJ2>OO5DTqy70Icgj6^ZupDg z;6JGf^LvfX@7i~F4!Tp;TsS6LZZx!->5gR3OighhRp07t}c;T}Kl3TrPlrt@O-H z8vock&BDk<$fn)-ZNs25yUF;(at! z8v1-{a54}#eUajU$we*Y6~W49%Uky)2PSgD`6xFrklfdFoe@#XO&nzX&e?utlb3J$ zR$7NL?Q@pHIyB(@gOym1avz-;XJM_Jk+>#U_7MF;YjrsW33e=)^><^dS29(Qm5>E# z+WSA5SJnI{W!4jC{roDiu4;J}jm+N#e4#kyCCU&5`GOs9zZYo}2D3?oVjWg$QQ_wa zlxvX^?AODF?-Lw|o#e`lyL`qlV&L(b#`7l|pP*|Mjo4kd&u$zsAXtZpopa;Hh~n$K ziLRGdayhzEMht$3#s_QfS&8D3Q!XpuM9O5fg9X79hU3AC%C`fop~_hESmy0^o82JR z`~J@F)2e1IEaT2I4c2O~9UZ!GvCDMslR-JhzH0gb3}EDa$p7GsVS53j^6(x);c5~W zaX9+SPG4D>aI%1>er@Hv7F$T2myVV^dH0(XB@Q*jCE=@EpG|+Na&6rcV9p6Nc_N*T z4tPAr;Z7S@)k`9DA8KH0{29idyeki3`~h^J53%fZ;3|W7A5fE-_{aha#6DBA3Xf|* zD}p>~vJyE4^*+Fk9MYX?uvQ$h7D#L&D1*cKOR>z^qPX9em;ExY%I1~o_7YmhCgAj| zX{_y6gA=jJF2v|Z?NG4>=REb0s&!VyZfMc{ketubCB0@~zObeteW&#DukmfG>>|)0 zkozM?3Q$3h&Wv^`<-davv)<#40KiKNucDg9Y!UV&NX8Oed7m-*GW++}Ba!<4{h2-^ z!z&Yhbxu(_KTDu5yT<>r4%u1)?gj8%sAdsb4NdVtI$ITW3Ek-=bGMyw{wboLurVvK zCn0}Dlz=({+1RWCl}zG`sPHa!AlYnILQqPeHle`&_ugNqLs7YTNA`(sey`6+@!ltW z=ne#eJ|H>R9;AA{@cnid3C3Y8?}9%$@1wb5>_xiC+7aX@RuQ-Pk*!6<-oht82tA&h zLBR7+&ngM|6hp}S&AAL1Sw7moz75 zUE!PdZKNA(%Ef=j=3oE^H=@Tq%tjNj@se#HfUunrnOJX$uG$BDQA9%dkspEjL9 z0P+L^hq7&N*7czN@bHIq{mri7hxOnJmoxIiCri^BLPsKCq&8hb3}}5^)5dj1Hbg}G ztpYZ$0OFCaVF})14$!YX+Xj23sKWYmn2}%^D}l?Q=9vg|Vv9;`x(sN81g0dUi8WaR zqM;QSDK}d!)-dg38{FbEz;c|b1)W+WhztT(6mzV}snc36S0h7E*35LC0Go*7i4BeE zIeZ7opw`CL>y;m`iJP}pw^)E~6qX2U@g{=7Xcl!p&P7Vt zt7K8l2ZYkAVQe-u>FLTpgb>{o3NFS1Ay_o7cC)Od%DuOGJNX0T$Y!bpp1}(qUeAW0 zOa3^eTU#!tHr}FbqO2LKe&X8Ken*!;wYm=Jw=kON>8v?!Uujb+I69;@+IpCg^4ip& zmeAZ`&2isNf-O;S@O|Ln_h83@3ljFUaN~poK0kwC@(7JT16yA4Z(~dsQ>f65^^%w1 zK=@MI8}@}lKBLjp>E#M5oCGODi}Y^dJJ9q|}iAMY;MllmomalG)Ky&DVB8dzgHbh28Bo zl2t-a*5!61ke$pFD?O&hGxo@ekVBx1NUIlTLOZGOMYp<4T6kem?(Idl$)!q4YIfl0}u4KBE*D|?6M2)eJ};Ce@S zNPzkjq};w-j{6RZBYByPeh4o~I=xC~izrA1$ys4c*-{%057AIm*L_OCIdR?y#${!$+A|>CVOgop^~`sLF!YA` zrVl2`$N$yLZaS5L&}*1Vbn$ghU(ft`AWd_CVYa>^0#`gP$9X-Ic}nPnpMJHOYR*-8 zcX5D7{IyMu;GF><+rU<2YYj{O^#YqN$t0w*Dtrog#EGbgOu#M7OdqD{a>)k&qV=C7xBYQP0A!@l$` ztj!77$j&3D-2on%++31m1;Fh>C)UID`ucg9!B>JEg>^J6w(Ou9@gkPO3?Fu=&)419$`L@FgO!~&bLiQ^g}V1vmd!@q>!)k zb>yk6uDChNoOsaP8fr28g|;FRbSLLKo1 zK(g&sKL38x%m3Y*^u%ULi4ccig755USb>q4mfT!S4wWohKnQWlU4)#%ljf!;@JD=X z6s{6P{My$uLLF>@$LN|*>n!qB9rPiZi%0Qjkb|nqs4tWZou&TSZk&S^RbC>n&JUe4 zRAd2IW3OOfT6}ll*!cmf@Gb^l3E7PZZLpO^csYM4MQt~|;pg>h4@>r?SifRS4a}~H z7;~Y+F=67W;H&!EmU<8c6y+OYCeTXhV|j3R0ziQ8YMWZErUsX-W$FwLoff{hMi-sa zbUbAqq}od$AEg!&))9zUCTy0Y1CMhOFrVfFY>pnUV@HABYZ{3MOqhQchxuvJZ^5^A z4Ze`EI=IeLlk=5zGft7W>F2nP{$i#dfY|te4v^|t($&2b8UY8hOXwGSgGWDKRnONw zop0W32Ts5;1)O-2J&!)X4^yQOixB2vfzpzsc-CebC6=B)K7hxz&D9s{s44^tC877qA1w=y#qRO=zRj>8Z=sXV>At4 zK#!J7N8h->t7v>}7;(Pi4UXH;3uu44Bo4VM3soFp*?18>q)U!+Vde*$U^0G1dpMoX z!gjn)p(E`41C|#l{{$b)!!K#NZW^T_KO0z32uCHPoylK7DuGeARz}SdP1&xaHN5f@Tz^kux!L}7li`V=Bd{{)qHXc)puQLxIFBCcnrPsLp^TVWH|7? zKD>OIXSRz52}P0`dK)W6tukWGrUIR|%MSX_*cdwbzQpq&bLU*X z&M8%X@kP82(I@ER*BszqxaOK)qOwXYao~226t`UDiWZ#HFlZivVpux%&WDv72Xj0W zDAZ`M@3ePiUBq8VOq*Qy1)ZM|fc?&S@1s+FN@30<82Sr;Nta(ZPY}_ICa-@3r>2|y zxUP<-j%18&9vg$!$1ZMJl?h>JI@FSAd6g$5dB(xid{34`iuyid zyZ!*om_n{tAQB8l0x_=ddG+`f>%L|~e2aDWE2h#9C<{`;ZXk=(tJFC<{8_is_?BJ! zjsHw+i%ZwUwh(eql3NFeldpr!;hsLQbU`O)Dq#vQM7mRQwjsull)o^{_=7?$?NcHp zBU@-}-OK(e78>5MEtCux$S;fZc>}q5U+zBH7b?3l+TzeyW6ogj4OHqg!DKcT3D3xp zXnpdQ^dO}hG-Y!niSTot)YfDO0@~a+SPRzL5a8O5M9K;L6;9hWVZ#MWu5^j68gzh^ zs>B+oN1z-W4zwunE85`954pK2SY_x`ehJ%u#{P=uP$kdk?a=BFXUxs_;i*I6)wzI! ztovmPGusTOU5Hz^p4oqk-x~=HSC5ZJQg9%1ml8|q^2K}3eF8rX(TAC->CNKGJh4Cb z-@Jcu$CiTUfu+o2;+ux3!c>zCKq=rTzf&I0M529v8=K!c;`hhC9BUwf#YbQ^ z0?UvSGJ`hw%l^Kq|GTNFeaX*@>d*HbIvDC(I@I_5SRgPmKOg(^I2+v&djR>?V`%Y! z;?|VM14CK=_tNLhq)w^4_Ea_!3$Xx7b~?<0Jji>Ih7c9)y}yY#Y4y zK^LcySJ@u{zZKALll!v7y6|?gC4wfnV-Nm#WdF$Ueqp8zFXx;H&%suP&%I>-@Nq&K z>}W@rB_V_*ZgX0}l7kjFcLvg|R}w0(5B^C+Do`X~6ckHcq3E9o^*GpO61CTA*mb1l z>bB^t)@V6n4MSqmqK!rC)Zla&(TOUuJ`ycWv9)$UZwU{f@YF0BB0)m}yFUVqMNC|U zlD1SZL2(G6iq7>CLd1^&QBQ&qbhKASSck#;7<*qu@sEY zl<#(x;)DNDN_Scm0-LoV7imJXi@zq9c=N;e`Uc~$1uO(V$P@WEx+b zCQUle!nW$0xCx?AgzOjFy3S+2V}G^s@q2x)!+N%m)eqC0AIC%!`S`WtJUa)OV&2|_ zhsQ1ilZ)p;i1~v-^0YhU^0BuGI`hS+`CHqlnlm6UJU^1XJfmB?H4lo}?%nydXvZv?y#qC;}Lfah9~a z8%v)-F5V?T+~RU_@Io z{HcJe;tKiawhRvM8y?*9>v%X6@dYvoSi<`P+atknA`|dMLg6@0XX2sgxX&YwcLe<7 zqk(Xcj-eZpE?tqmM5TIVWw>xSoz12%cp5ij>1Z6MDDs=`i;nw)@n|}RQzCK>PJvKh z6c^zDjk#?bXi(H9`fMKCds^iEvTXu;YzEoCF8HdxEv+rS&aYt;_*MapuZurun+$%F z-MQf7Evf~N=T3t0igI1-LEB*Pn|!X@k_4OmB>iq32nK=1$wq~C0XdYC86w$y(;4Gl zDIfBy^Xe7cMg^igMY=-$BfpwI_Sav&`deAXCUS+(s{TJxufQEn6)<)M+WU_jd-mz8 zznm`iPcXSX zx4vr)1DjD|{?7CMkGo(ijaKT%{a2{*!0)tT)+mVmWx-;SDQxhmlYwDl$mh%5D9jKz z=IFyPwHF$H>0T!?plrPdS`0~jQx@JIabA?-TCR8Tv$1=(PzmqAYX z6Q6Gs9Ur^x-p=>KQowy98{A*ujU;LN$UWEaX3x-b6lh4ob9gLm1o6x$Vx8P}S?BvV zx&u;}4Sv3`9RWzF&BzC?<*l%6L1T;DKxD@s#237YxZ<#7<_&6<YQbTzjDRgZ8Iy;0`b&Q^qPmj_6>*tNUp(PS*SY_evG5+l4HJ!Lm;4Ej zq(>?RSCddk(^aTMHKcC#FZr{c^Dp-Xq=@&5h=1aoXxN)qV8N01hNI_9_#>D5B2vI} z#rdA>MYm9F0?(ch#`QOl6@3Hnz{71Qhq+ZOjEsd)5n|xFjh1_@C~ff~r743?3ZZMb zq%6ZD+SD9o#VEb7p=Kb5xQ3mNYMz46ho~#sYFE{0`VDTZVeOO$(!i7lu@QwF0P?N7 z_*%$g9hkE}i8Pd4#>#<6ucyq-VeYlTLLmrKXG@5BlX7+b#pR+ivcj>jsDD5-`&G1ccT)s6O&;lM@asTq5Rn5yXm&YcTXB-RJi=X>LO^0lU^cea)`xi}AaaDSzLb!> z`u@GUw=RX*RS(zTLTwz^0|=j|I2VF_orhtD(`(bSxZqT9GoT+gT=Ce@cK4BYF6=vR zN%ygYq~m>lb+R|-_^tJ1#U(6U5KP`Fm74#;y26>v3vRe4? zu7SFp$5mbOGZpFxrQZ(?Ma)m9F9dGP#|R@ z#l+y9ufx~g1Z0pdnBMbRPdmz{PG9-PMl2SK??Ar#2F5cdxtw!;|D4k$tg zj)Dg-)Z>^TNph<0tFn#)-!R}qS1B~S>c@D!GG#qU>i*ru_I2aX;cP-G`8(?{PjilbAWC>|}6 zKQR;&sa+{@X;uhbgTL#5H+O(e$l=1YFe1aou74i~cVg|apV`YO{f2pau`!?io}1pZ zeTR$vfxTe1UY=giWNTIJ*#4%Q-lHSBs0=v!q|^W|+YKG>QPPLN!V)w(=P2o9#wa#r z0mNN`m+XxKW^r-b;OPwzN+JUrT2!Xu*dm}|>mPO;7B<4O0aM_^DJ*F!j!ZTEQAYX_;_x-XaBUexT-1GWn;08KL|5MhaxF?=r zD*%cBasZY5w7Lvf8M#1``_DVKjt0;!|2U0&KX}D=Wva}WblY862Y!lVvtEN*f}}|$ zmzGL-T;d=o8t0ge2fvk;h3JI~U0(XqrSKBV4VSClY!%!z z7!LosqLRbs8>+L*agxBlbnRD-u@=l z*rglN#PwEYp&TNzR&{mw`U%Ob?cFtT2eduYQPrFegfhT~% z%U@w%$2!1f9c5(*SA&G4LA00I$9nCH5f&{30pe*Rm+R5PYv4IZ z@yXY9AL}Zs!E48(Q!^B=!`!-7rcCC5RHG(z@qu&ejrzF|d>g++C95HWOW3;%$_MKv zhn;-vnEU8fp|K8#dwl&`<3YG+&3F)ZZ7VncU}$jGB#3}6rY8)|0Zm2x(K%JSoKz-u zaSe<8)Ae_GL#$bhpM?|2zi}N-)Lu(hdYKUzcH153DXztazuCMqB*$EZ9+AfjCQo|4 zMs24&9teP>#`avWl@na&cY?;dTRgMw+PuYOFHb_AK(yT~c>U`@M#CwBxXeky@L2SK z7!*Z{uE;+X3ke`(4DxDWIS)}P?GEx#5dN#cxfR+hrga)1AodZpA!AEB>;!W=_j@&f zTQCSB@eT8%vI+t9{_;4<;gMpqcbceHVUxg%gJ)t`hPp;M=FTtm+){ zGRM~9Q$xhvF!IAf0$$L}bm{OoftZH;PPowo_mo6~l1(%FKxKjaAemjo67I9F`}{*$ zU#y&hcUskH_{Z}ILKyR9hx|wkJ(Ok3*`Z?RA2=5u{(`QYi{^4sMbpj^mmGc&J<%p@iT!1p zeAuSnW%az2rk<-V>Up}fuIFa==1O+&N^|QvC*%P_M@@F1n^?4M9x{Bhj18X=IRRcV zPs64O8VHuI!XESy($|o?7iTT$EuVEz_oh~Z*J?rE?y1lncAtx zxf46VEQ+n(c2uAZrr1(ZSlUDWi!RoQct>t*+Mt|b!Ro{QBto8o&6B*)Qh>7)wYkOH z?zw$&u4Y8lfTC!*fzbnRI5;|x(-bA3Mz7*xbADhSD%`k@Lf_uDd)o~~r)nUDubS99 zIC^k&^x#(>y@<4WhD51!puHn(d+);D@k6?_O+Z)rbxS{F7H5KaWa?Q9;L&Uy z5}2{FuJEKZo&Nz*vjd{$c4LiIfo)(w`Bxy)<%dp=03>Uk+|-~z&{8}f3?I*KqV2AB zyr*Pa;;pxG&b^H+6W-Q)wED>Qi8MC6>&(IJ7tn85F_=fuKbWOhU8eD)d47(^&#IC3 zsRYOi8V=Z;tj5G#TC!iD1V||?>78DmIb!PSW9GmSZyj0x(ImU7sVG)Vy(B`7XI^YDY@;HT_#=d$-? zK#fku-a&V+8?ei*AIEkM<(p`AEGHw8H*xD?_ET6M!X2B&y~&Q*o4n3o+ev!N6V zJ>TOOoQi;1mU#QT}Zl0@WgN@ZywqoCEnYU2E za%TIMKe$|LG`e>Ln0jN#{ zL34n7fI~Znv4YJa246IUZh>x?3I}dgfR>Wx_aklq;A6xImR#5S2l|JTSyc|p&f;u1 zqRB{csT>^{$>cMYct({W2h|5=i?FPg)sfVWq8D*zpoWdQ-C9EP_)^eGJnU2upG!{1 zD(QU2?R6rASH|OZCXgD2Zl?nDiwM{?B1^8$AHzG4>8^xRS6n{B7f2%!s?URWxse1N z@xQ{caLSKN3A{f@|4w>9L37Fu4VpkdBG|-1f%8}|G(mBwXX_xl;R`kePfLDHet8sw z0o#TChwe67Y`38S=Z8*?i!gfJsuz)8H%a0aEM zE5zw^UG=5h;lgY&oKBb1={6x2@#wLjKL=cy0ZGv zGUMqN>B%y=A(-&{9awW@?+<>RQ=#1tpw-1ixSMR1TzIiRHqqMpNFX$CpkXp6RPrw^pmHorsO1aUKt)Twb3q=Jyy#XdcK^ zT?CArZkN;JcLhO}4V4Omo%;s24C0UaP56=QES`c_&LH8(5@0y~r{zuo^my8LFvonT zG2Hz?-ejx3`oGM0mGYI_J`$g_7X0x{NU7vHkHNRBEtg zxkuQ7vYkm)QocA0Vtn>y3MD!GMaAU($rr!@+NqCpy2QN@k;|n$AUZ@)N2?5k^o=}>1Pvs3Op72AK`HaE zc$b}~-bB`Prt{3kI^y?GyGeJ}R`E6P9QyVMr0qrWVlR=+2)Huxz$HZlcc_j72|)*D zQE!BwxZ;J#0m5LQ3G8m;2Kx_9TSBn_I6Y(*)4v= ziPT$F5x&@e1yMD{o^AP(3oHbqHjpps2@;c?GSi^+-zXBTN>(C+1 z0G3w)Le2+&bLH2*X` z-^A>xDkiascRcR$I+KT8aTq*kN^<)ox(=kBsfw@{m1033aN@Dqz6j&z^@ zXCsOvMe*7ZJX=Fjt0lN!EFr;FZF~>M{Q|FyV->)K3Mzk!Gsq_zs?RYjQl10~q?F)O z2(?oqfv<8tFl|p7C0`!ToFI_H1<}TG&Hn9qA=jdszTFMZ+ zQZAt(FncOq#T%k)eBX;$%o;3#AbBbwgesWLSiBb(YY^QMt>4}H0)&Djr2_mVvhk?z zhh4n;Va=Tas!7kDV}K}%yL_n;&6n``e$hAQX>`%-fA>ae?rMA}p76PzCrG>RLT`fW zw4RlS|ILDmcZ5k2)CV;vN1vKgs8}k*YXa^}L-|V(lj~PV+C%I1-cx$md*e(aiJWhK zL(XK=N4#PEl>RoVzd0PfnO`yKK~3_yF4W7Tmye7LCRK!2zHGSSI^yz5+JjoGkKYbl z8JNaDvyR4$fqt!k9YS{b1#Uo}{VyW8j1--w%Bo#;AWc~U%hl2rj z)cPsnyM80Ro81jtG@_1dtvKoKVf=`%=jNMO+dS7^ETRH5&zQ<^g30C{2FMef1cYeP zo!0_>UaM(tEvi+YF!TU?#au7IY7N(Jt#d{NfPDiI-`|uhFz?Q0>;V;V;3& zn6}BY!}PL9O#6~3pn=`yS-v+gW@OLuB>NiRvq4rCbqn%TR2nQuG>}l96A&aN0M&t> z!`jRY2kAt7=-qnAdHE9Caqj+)Nx94N%JiW^6l!YC71_Bn=F*0ttjhiexc@zdr06kc zMwPVdj=t~k1;3|+LeBY1%JD{KzuW0^V^6#H2Vx_I&d(sd$~a>jmZF1uSPPhsa!fi( zGKK0eef(y)mPsc0Jj{v+x<*L@kNrSp5^@m!s6*UVp0OLiOJv*qvfsE`MoKaKyV~%} z_iLfxH;~w4HzFo{BN*zmnL^+M0!0M&fKGM+w%$&|Ifj46C~H8as;H_G2R3L2`mRPq zU+2|*EF&w5JVFj+?{;f7s;p^ljIWNh(&jl(35haISa?v3&o!$dFL3HEpa}K;yIJ^ z3Kj=u0}BMh57F=}W%nV;5^450(`M`S*ndc_Sj?N+S0Ak$_r;xXl=5EXf)-V7Kwauf z#64GgeGC01#%=*U1w$hC1(MFPQg)lqbIcQu1r#@$N|NTj%Ii}nopIms%Gm6_q%ZbX zVF7`@67BIMhwtQn+@LWBYs)Pn1#?1*MJ~7GEHRgbI5ln?B3lAkl{dlnm``-SV5Lc8 z*Gy(YNoW>FM@dJ>t9~3!vlw0BK4hw$?^NfKp-hrDH0xTpku7Ei6Vxo%!1Ji+&y$9d z)F$|A&s7tHXkxaa2kQ`)0xE19IWqxb(*qf>Ds-=UqnyAfTna`9;`_FG35*5mp zE9xNkv^QV<#w`nGRjqb#=_*uW331+W6}BUfUx`fLBKebCXO2H?X*Xz;*o>JYIWd1>u~Fkrv8nlLN=V^l$X^IL|E>J)jf!( z%w<$$k2gfLG+>~m{o1T#3jwiyk#E@|p*Jl7Ut4n572#IZd*mJs3>oPgxn8*>FAqKp z8$z<{4X#spYM<9K?zo$-u zp|z+pOV?Jkq??{(DQAk)` z3dXli=LfXCE*gw{jLr|MmHs23*FP((7b4Q*?`%0=ouT@9n0-RWf=$M^UYZx-IE}mV zCuG0#K56e9uL~l0iGaaRvtPjWo3d{4Oe8!eTMV`;oTGu($t-cZIE@p0c7{TP?KJ^( z9YP!u(KxMp6tQh*9rE0Zh0gxYN_ zGL)^Zg>C4;X+bcQplmSM^oPwy_*)xh$AipVc->}g3}mQfx7EO zO5j88($K3kK-(QpaCpW&Wz~CDkS=J&*Wz&*T5S=UCx?EuG z)`jkXcH#DBr*((hJ>$;0?}!a=XYJpc6H88AH8Xmk6vTs1d$)$Lc! zjRah{K3Uqne|w1^n8VIq(s?#R+>a|T!kf-rwPoKNaYM|Bfbr%NYx`OR#dyH#tKH!q zz&=ZS2Bz)x_8*`G-Ga~zQZlRf8oy=jL-hP>{Vw8J#T;ZHOQv|c+%y3mHKxP`v^q8g zml~FASwC2L_8*&!nwHTzr@KBt>c&|>i^%O=_Z~q>+MoEnDLb4;3*3D zq0{P4G+PLVjjLQ`*HuP1+*+Zpro&WsqI0>xN&tU3Y$jTB7Oz4+4)93=c;-GzG~QYP zu@8|NQ(oLa!{ ziy)LL;6AaM*q-1#fkP~soHV0OY3>Bl!JS_nNk){2(I1T+*!CV@SUaJ&JMAe|iDq@x zc)K+aE@v=^Eb)Fs9dYerKL7qjk5@~S2M3Q0=GZ>STkh2&f4he@;Ebb&EHrniQqftoo^f*<7iA)srMUIu8e zhJwgEN^Hji4q|Mume-m&Kokm$`6B240M<`J+e*H5%klhUIOXHQzYewlxM{G&NurUc z41d4lRA$ZmZBVlRAf8{POUl5Dy9{}I_*(vR(0t@WoW*EBVMzaTwiI(nWqqHwB-ht@iaG9dx$Zn~ zFCy;x?)QePbfX&f-tSY3-o1rL6j?4@zWG!>pPJ{zXoSU&mK6n-2cVHnny3vf^-9O} zj+^iu!sdfd+8VY9B{0eBruRAnYke9hWnu5Oq=*YC>xj2wZ(%>J7 zln-R?AY^CZGD%;fAh~Iw5tJage>;~0;rdyG8NitxPHv5=F@LhWb+kA=dZ3b@nK(Q) zRUF+~PWoeNbZhe5iJ5$bm6MW`+re-{yFp z2<}5kNDCq_N{@7a)mEDz^p^T798-C!Yp2GXowNl$yY9q%p!$ z7{?Yd8FYxRDRLZ4Ly%*>pXfCe`$+JSP&D7jCOx94+g)x8{mW~5M*VFQ!Dra1huACkbX#kaoOkTyw!lm(Dn2? zd-r+?7Y4r@q@&*{`P`lV&&f)<_kq*y(5UX_UFR`iy^ebwA9XzB_&vwx(QV7A1{tC1gh!ErD+tXUv4gX* z_=NCmgb|Kd4lwBxLRMSyXW#0&kXeoGTbn#}_V+-tDSpd-+%B*Wd4`{s3(^mv+6(R*e>rh7-PKpb6+sEyy+mA@m1|qJ);!k~R}FD8Tbd^}_bCm( z7tykZ`aNU0&R?_1%Fc2msJlbF{*d@FZOy47u6Q?mJY@>{V^(h3(yUzD#Jn<3*i;ld zl41*z9Ry{wBndy+YIM13a@--%+XH}MpNC*6J)k#iUBH$sF5PjDFV?x32*sQUWOLr| zOKmXR1QqXZHi>RS=`FjKe)j1gM1`xsG$srUdv6Wqn$0r;ex7M|PFbZU$H%|Kx@Eg)BYOv?Y!d{ywkYVDhGcYvSXCQnRHax z(&V&NA62`lbq;e?`xX}|hcfjqFyk0#Kf_Sf?hT=iSuGiyXSwEm&rP29HxyUZ2(uqP~qmB7E~uA)2WlKpYl$b)cu4tmPJ zWyrpS>uTj4{QP$L815#FMW=R|Cl;)^_?*2AyX3n-Lt)NHZwe4?&m4)&hzKU=Orv2+ z2TX~cfY(F)M#Mhu?Kt@9{@T!poI>M6M!=t~fwF#qhdSGlaMEgk1Fk$$Wf zGfuTl`0%eM{TY3+kZBg28?Nnci4ND-T@MI(0ap0ixkU~?z*gL<-n`i0qAh+Hc#w7n z9nO26N_4ofbCQbeD314a61+_H0&l&HJ$V<&cu3QRH48LAOP44bTVl(<3D!OkE`f+6 z1tBnmAYJ*`p1EA}sqV2%qT-9HsbX3gQUbb%2GEn6)Du}2aLewXoL9YmpW+$IT#j2H zU~=VD{4?QrJp9FAn2+;#`MPJxA>Xy^_4|D}h|)0lm~Sh75y_)WnfkG zw?gzwb2yc^+n78;PaAuN*0;fKKE)Tv5-qePUSvJx&MCfw#SLD6nzuPk)!kwvK-U3& ztEafqQ|>9ArJB|#=F*bIXMl+zJ6I!$*Z8I(+cKeCfIAU64sEAh1)>&~IWyeA&RK?Y z9?9dKJ>vMkl8WV`#JsZMEqmZe@|)PgE)u~9wcz;lIF6dQ;W69wO6I?x9URPRvKoxV zf~x$MR3?+sf{GrA#Ui>Ayj4_dqS3nVh=PU$+@BGSCxUUXNi;ai_9#M}6^Ne2cYvT5 zU)Hr^dRpiL9`+!ptE~X>JHKo7-f4YLkL9o#0j+P1GUN)g+nV_qYsa0UVZ!Ta&A8hd zkfLQFuyN#jM%q+-Jb-NveaC65U-mfnj;yKk5a0H>bpuQL!^!tI>3%6EU_W-rEMoFN za}I!7!NQK#d*yjDclfC@Cs~5WyYYRkT&>XB2(z&$ag$gfT)Z;Inuc~~GlmQo*!VnX z@t!;OB0IqVb58~?oH{gKqy_%|cTH|X<$Do^f;oc-6hDw~qo~14NGYDs47}uw`SAUB z?CCVncH3m<-v-*bL*v{<`(2drVB1&xZl_aD^qVL18-?tHbOjV!?n-1ACv36?vdV-X zO(e|$Trcp}Y(OA@Iho0a$DoTp>l0nIqIg1jTa8$II$VI5*Esuq{R6x(_UTTG1OW)> z37Y%VsiWa2ug|B0FyTkbY|MVPX+|SGfxzH~)4iSExjmRQBD=~kK7s|(#3lcdi8Lrx z1m3pXV3M~Kb64~k?!;8Z%xA$6vF_EHXI1>O&8XQ=$kv;hg2_dLp z{q8LL3Y@}Rm+ansi7TMGUE?#5MTU);kZgoQa%^EI5(z|{S@6eMX9OXncP_-_P#AWo zGiasiGvh9|y6NLCn5?dO91_q?9(R9C55vy2SWHUpa8T0vRpb^{`$vtC(=aYA?rmrh z*vXZ*6Is8#4BNVh*4SIT6spmXG1{-Hp|IMoNx@Cu;RD~-9@bkr?SCuCa^b>{Lw< zmaABQA48y+&KNdfA&NoS?h8jdpLm<={++jnZ&0rfHskJ(yW`E^^#S({;atw;1o^`c z?6V%f-}8<4ibQ1ZS!u2;*P1UomY10W#btsulq>H!_TRbP`3UIKCBPZM-_L>?Htp@W zES8gX2!(`tBHxLTf$#;a3@k8vw;V+^?%k!s?9XlEV2&8@BVSNdm-D2qpLDv6%w)Xt?WU|m zsb!z4T`emyvv`*8Lx0T=;G$(xRDgy>`dVT}{xjdFZumYn^ZGuJohQB!ae(oK|9^FF z0^itC-+_B(^xo5bSdwMSvMpP-s+TGkYv24q>vbLp2@;aMxYzUA* zfG%e#;n+YAu0l9U38xc6o0cnW1EehwmqH7aBb*Hsl>hfP^PVJoodeo_{{R23_1?_9 zdGF1e<9E&PU=yM1pX(Qr|D(r2OOf3`Me~015e%A?l#YD5Q?L+ep_)AQnBHwz+8oj?pE3xB z>=~LVWWG+u{*X8)AfR4FO7Ng)P#dNpp782lq8Z8>4*< z0h^6E;e)Nw+cI!tz@Zz$@VVK8!?GJ{tOVH6FbtcaI;g?g8EaM^c53WDqoHs^bfB-b z!+=+uR+!^CJhmRUKkW4CPN->2&^*EVHw_r9_5FX+2VLu2jhf_l!|&S%<+uGWb;7qR zAfnm{m^&ExVRjeI9jW<>DIi5GI*Zgy9tf=~lZWtjqOjQcq*}fY^=d+D}OuK6zy=2vq_Cjv3W3zkQ zN@zqG5@i>$N#wXkIJ%ov-q#g{F(LD9$EK{V=AYP ztXrMsbcKJp$KgEq9ca7snntv$6dqxzDSbr%K)K}%$`v#(iI3>l%^o}G4cYv9&#-^c z+2T9W)D3T~4z9guP0)(xq4_r6LKS|OHRC3z0{2(J+H%vE_V$$M2oQ)sdSzt8nU+U zE0PsjIkL+Qt9vUtCnHu#Wh~aD%ExKUVaY$1e}?@<I4HC;vdbN zc~YSxCKY1|ALMJOEP5cbb+O}K)dnlRLj@vi_>@$yjg{g!9#d%A4M~U#XqPnEFJP<%9S4(6I+?m z9mS%>*=l)$oj&LegngRczjLh35ec{t%KlmP1h>QRIpB77_Qm2Y{jSELmT+)u4|4~g zZckqyN0>$lk5=K}`vKs|Bw9{W4RknO3RNf=F^ou)M97f9R$~+n^%96094`s;P@`k+weWy?=nyn5 zUOVS#4BZyE`vBYXLV}5e-#^9hF|^ZWzMWVyImKDrf!Dm&<71ASo4BXZbq8WGS&w`T z*bf~b3b&CDEA}lsLwXtn_@OWH5!a_gme3r*qEVb4@okpbk!0scbpea#uDf8*9v2?{ zE=i%?rF)PQ`sT%jqepEXh>>mL*jowrzV#TK-EBv-k*6s)zmpGO-@64F5(Zbkk~m1o zxWW|~);bgGzW5GTqlY)$>|j36YxnDs2z$TPrS7nOn!$J**iIIhyM0n;Z|xOo&P8_I-b8=k*lHtDf6G@&QmH zvY%_8OWI6|f+EW|%yin!F)3xp2I#?`b<%^KpOqQ*`Z7t(HT7gfI;=jK)&S||JqVdC zyiQ;iz-lW(hH6*|@Z~{V6ri6uhG;vjkIE=3)9FYn2VcGifDofzQ6puaiFUGp51t}Y z`}z0$uwMRO?&8 z2GY^31NEc=0w@rH{(|`{88$+BWIH@{m*uWFvwQEJGMqZXklTr0r&8?4jZYb;by#Ik ze_6i4;N$FE-(VJ93zM)~KVU6YC)%}gw{q3JwtDtw;AfufD|Vv27z8OtgGUOeW|;J{ zML&n72`lYcA#nUT?sM*wnx=!7ZjtVMZl%GGZ69a`g$r_{wf#Q1nJ5ouqz3Dbk!yDv ziE3$wqZ2--Vlbv{9hrI){8rfBq$Z*un?3$wtalGqQxdI&Q~_H*gloXFs{LAtB~h{$ zo+l-}hAV7h6l=ihNyS*33t7?U6SJy6K9`71*&%0X|MORE8_P@ z%I~IC&H$n~c#Bnj0`Kmm{-NzjQ+R>h9MU@)mvUS40GU$m0guD)K#Ks^9e#GfykWN+ z^U*yi8>{#E>a8EMrS|-xZDs}r&7Y$W_?*B*p*<1B2UBcQ=u-sINwlCWPEZ5BBC&*O z7uL>(yuT(I3j2@pr0j^ZIG$gVhE0@>$D|A9-r$RNnAN(Ild#TY3zF|l9$a%JB#BSezOv+r3eNgGL!`uFZ zC+G>rLhe9!z#WPOPr@?UXl{%8e9^XMBVu#72e%DGqXXLpzp7N*S0}0GCh-@F+3j!; zPnzM>?ymwq{W;IGJ=W+=u&Eqitm(@5!Hz3 zm&%0Ld5OzjUBmI45tpYo(GqTU7%2qG8Q6PxVA%QQW{*EuA8YM!>Vt+O)wAPZZ@=ek zm5KJd+}>bQi__h}=|REaShS;aqNQQd?eaA=x?LgI4WqoZyCKxpzNftrV`0hCiJl=J zD~)wuuUjJ-R|KZ{Mg&H$$v~|%U8$&}So+VxdXHF~xT*CbZ`-tt;5In+YCX%%_jrw~ z>}M=fOdGlKFum21Iih6bo~EqQ4z$;**APnL{!gY-sYCeDzp8+L*$tDOSgJh$&$2Gg z0|9v5MiOV0??}P+he~2GRU?+_2*8IPx!n$Iys2X_hGIA8EiD|U-~GYzRp&mp9gVP_ z`)6qW5AmZbAFbXSbn4z{u)QDhXBB)?tzP4D=Mj~^{1UmG?fab=eMEFov2z3@@3=XkIq-9AMDD->8^xd7u$9(T2K zcgH@sRxUrH3){Yq-JM;#;;Zr9oln9|7?B=0JX}qh9B}yuCXWlDc~dI7Rk&PYYc$ow z>SPq5AC=+-X1L zakxedW5ng~9I`vP-xhK0G<>!uEv7xUYPVHwmEy7C?ZYv7U?1LV$BwGu_Z+Z$n8u=x ze%-J4JEBN?><2u4qtm9@_j)|ft=d!Y+i96Nb%CBYU!>rTqK$qZcms!<|6hPNtN(lO zhSsE|b3uFmpsd&J{Tr61X+^Vn+|rk++4BFel9=R`O3XIUQxM41@*5AUqR%SD7t^j0 z)7qp-NPovEy*&*;`(Tu)d&CG;v>zrZ1h4@E;s~e*5@;hn3RHiE;~U3b_ZYc_d;G-5 z4K{#R?YJIsGcIC}I({QHkHGjrVUg678z%7Y^d~e~{KwZhofnm#bbQ6pEWHDlA!&jO z0;SIUF;rCR4wL3~HVs=M8Bb#zbe|N~0{W8ZRtavQi;RUNccUfG3f>6PFr{o@Ds!Oa z>r%BqdL09S2TN)l#z{(Q_Gw{9oCUjRYVo%;ndwOLE%mxF6YQ`z1ZN^c!Q+0{AqTtP z5B}8`@CSVM*3L~*^(JV8mB!ZXm4gI(zx|aGuDx8yf02kfhxu`jjWyUBx;tzQHivhI z%Ri+JBT}r_?yNmZI2-Vh<8Sqo1(Rm9Tx;Fk4jJ=A-EB0!|I^Nq0%)QZz)#CnY0=n9 z>2=dm3>U=d`QN{j%Gp&92Eyyd{FWaG{a%t5T4@9+u_LV7bL<`H`J$6O+INWmP$NSV za8mLk)%>?XQ3$|)QwH!W*kDT^JOJiki7=-KJA&r~njzBHf>7O~;~I)Uwv(<43FwIk zLL_VIdZmUsx{VbZcg1&J?`68S18!ejhv#;$b2(N1nshw%w3XPdhRFHbZJI;dal=@x z3o7!b*00*m8$fO(1#!y?*o9SkZ%R6tWz~bh`M5BEZrz4t3jQhm{Q|1iEuX5 zU8Mf@-@!VZn2_x$D-rd8KZsr1xhZuN@JYATI$u@v4k$N8v_AvaXlm0v? zcOd2dtjHHynT9(vUeq{SsAw-{OY#i#%<$AY2+HmN?PkcS>Xi3Z&`j{TjukCE< zb)CU#fQjLocD-n*x1|NO+FG^D*E=q4NnDF6W4bX1uhG$#`lD3q_;#sZtmrZ2J+v9p z4@qIJlg*pRB4{CvN6M2#burLnvGQ-u;va%-o;|x>Y+pV-IRU~K2aGMzVyn`glI(9` zW6D6q*1iK1RiRCoc@W7?lpo0r!s|8$9#S~*orYHa7|lU;1o4npVU$>DPdTpe>Vmwy zosM|Dgag(0KmFS`d)wwOp#5{2uP?!#gco+R6)y-7%94->yAl-tAS?y0*c}JxA;3el zBbIA-S2yJ-=m#t$&-NS|)HT7#6NWx`C{H1)aXwC^tf85Ld@x}~`6!oFv=2l8iNhN` zt4r+d7SN9C-kZ2j9%Y{GkEwtk|A;#g>BFv0W)zS*$TEnB+z&cDgk25twtNs=(^VK3 zx!Xz{BYgxB5WvWw;UXZK0R>05RR^jvV&t{nNGS70GNJ-VB`Ave6$*&Ok0LxzGHLTU z*e4*%OC}N9=cvms1U5e~s2^4Xn^33k?~OQ?9Eqkqr26IZ>l%tZf&JD2JE!2{4J_?5ul{Ot$ zOykSYkoPxV*!&Q+%4~<)qbA=;l1eq%SuLUTxRvCJ1{xpV-DM5vnxaYB$)B|$PQq<- zyP>De&VX?*XBBv1rtj#rw#x^hqAlx4d`>Q^2&_mOp(mt_LdjFNV+VBhT&Zfre6=NI z-IxbPQw(@e3CAkpFD0%rXjV!s7h=aM(k|l>CMAVsDUNuW^vgpnEf~cMF7Vl$wjrDF zL*O2nfD}CdO_5CtcRLK2_{sys5}PEiP~*V*k6>O8<551Ftzkll06aaOJ%SA6A2wWS z*k{9AoZurW{P4Zf=P>OP%iZjX#j><5A^wyQJN9}^SKB@n>sH$0CYq&@2mL|eF2rke2FjJwL`Aur3%psKv3k|1|y@)Co$HYjF5OQUD|eKeEe zghl04-42_|hzu5AP06eG!DN>x+&DJNDzzJ_b|XEZnyNmFU=ZmctV$SE?fWZXYjz84 zF=fx!;$EruVS>MP9(2_>)b!uj#!>mbuBo0@J%^sQy2t9)O2<`t-s)1Tpwgq(E!4AR zj02vDzAa0c5XMMe#(_HSW0fA37p|e~Bb$^xMwK_*3tWM@Og4}A0AF@ujh-u|R|aVo zAfrjm_=C{8gKvp9zZq^NkbKZ!E7+xcgan3c*y;VigN8wNr1#u|LxX|qp-;!@A{`Wd zdYm5w|Cb`4gh6u`g;*Du!;y&06s(xrje)8=w9#!EM4yO$gi0oe1a709NdlC91rnj5 zKi)x|M4;X17_nS!-vjk zNww`*zE;zfhBR7Ue(%$Mv<0IX#zEn-eON&o8g8QZ3hN~*kXngfz*R~VYt>^tt2EAZ zI9y46OBGOQ&2@Ix>pV-9*B#1FR>eh`-0|1 zp~X64uF3XV)0w`sE&r%mEaBd{-=7221IB^3kafKf*&z4dXg9fWtKQhqOB;K! zYr`m$*&-2E)~M6Iw$;N_R?}4<^*U$i>v4!z`w~g3^h=e#yt8_p-BBs6^uPC^>P_sf zN-zC-lhk#UvcYN>er&Ts%t5Po-bw&MfsepG|0m#I@Bwg=NzgFo!>7{o>Tbr2gKhG* zaU(f8wgr%fgica@Q*l5fQyQTH1mU2~>?H9Udl|GSaUE+NS}M2$%e-47egfK`xH1Zv z$2eW^GU$35f>|qYiG2E)~2{W+S$20S6^?7>)q``sf07?>F(&fkqOU0 zJ>#)>kll0ejTePmY;mKx@v{9hUHwMfR$u-GT>_7UTIctU2>Bz72@#Sxpn!lF&ZNs1qJT(C)|_CgYL`A9@7R@K9lJWnrrz&_-W5@?0;bMhNdWXT;{*%}&z#&s~fIzGwbL$!@-L$g4lMnRdf zNovyPJJG}hzGb-UPlw|ho7X;coMuuDpTAn1#31i zo`~m3;+bytjo2m4gCk0?w>7m@DLK?6t~DULy>_Nt@3q_6`yzU5aH|puj%0s!^f$JI5Sb%zUZ^832EvJ`?sg(bw4K>qiKYw`0Bw46 zJ-h1(LQQn|2mG)l^h-pbWev`N)0gNA3+=0#(WWDMad*_)7Yqyp9Z_#2;SATqByTw6 zIrsZETG3Z_rA&8OAg=HQMgpeB>W{ECX^=?*hO`~z|1q3Ku%T4NNLy9&*fxZ#ckxV9 z!i6ufd32{+k0!zcBHj@?F93I(p_WF(SGS=LoSx?T<~8+k^o6FI9(HFvS|4^MBHpMY zI1mW-d86G3%B;5;_*xO}OCS`FvwNqp&xwFM4|6=&9&Yaf(T0vhE5ISp&KSkZ0T~C#+@WJ*&}tr0c4Mcd zGm0~@5TvQ#B?fdd=zwHv18zj>NU)=g@h(4sWUL!Y9K_z1OC zTG=?L*;|l;y5!Gh91cWtcg)N<5Vzey=XLqjrzyAU(Xasake%meAzSZ-R(z6%o$N$# zAj=kTIiPtOu%aZ%(*=x5tGY|)x82R^U3+~|=n6F1f<2!A2Ct3ZUJeXhI^4cHQvPw! zdBUalbVaUh9^C46xx5p5Ut>jW-=Pwxhc6qBH2fpkD3JcpD*E8FfHr6k>`JK>6fLR} z>rpmOS%w3V6Y)>-+%Hlyd`O1rH)9WkD2m#7f~{-P&mjN67$K|@=>vz1+DIJ(*7ZbM=omJ{ zJO(h>TkA!*{kY~rn3r}NqOKp;->Oc!Dx8dt*N1G(W%Rzd*KjdgsD8Y53VnLmhA{3u zJvi8gg}2>23srnP7KyexJi>vKXIEwhHv!MQl zq;4n4v@84*MUDbBSmUG^kOnUXq(K?{YK#Oe)~m|kBV{s`3HD!u4$p{G@)_|s1|5n= zH;=2QPftjm-OMWu-_ze4bV!NVan$!*?x)%1SI5ge6BFd$xKbc@hbO6v80>~t*+cAa ziMGa;4E8p#_<%g+Jd=w+PAxKjuzb!~X~H^iE&NIQ){fp`1O;i)gyGR=67i0$cEcTL z)$JZT4}|@Q*V7PduyqK3IKWY+w+7sBX*U9#ikN6Y;lb>j2s-Q|9f(QPbMW#V9WIZ@ zdAFy&-gCDTDs>$@Er6Lovo z>~1*sK>QPo4JN}7PeibQ)HsXf3~Ut3$NbBMo*1zMh*5)?#S=bUO||p)(t`zsM5~2E(2g*>w$0)p2~OFI>Ov zO1u5aZS`T_OEulDAyzHaY84Dvl{iyH`#gjZNsNJ$sJd!NkkGqwklNz%`d$QuHg`~x z=OozaiC8BT*jJ&y-Wj96u2#q48xA{KyKrF@myk{x^kQ|;oJ5+X^iIYUnE6IAT zrlBR#pm7>aVt-vqID|C_?9pQw^T6@M6$yU`){@xe2nPMSZa=0OKHVP-DocfszhU1N z#IiE9PHD)Xl3VsQTYRuh9+Nt2TA*gkU!Bka@2+J zu04qBN)I%XuA?J;iR0#*%d3`Bjp`HHlTeH~lU6;GA{31k72Xvs^Dl_X3ha*wnq>1^$yOY=<{WDt7Ti&n$BAq`iP z4&gQmhFduDFd5g#5J_(7uTl71Hm@PNl(N?`Jr$ZKwh(iAgSuhpL9dg>V5Iy>A`jUi zq%R;ay!LblIY-GCp8Br3XZRwaly;Irk+7S$_U$1S3;r?~10$g^sH&XPw9)d%gVAV^ z9YzQyfGDuO7jcD3u%H!N}p)C_8m|2YTzWb{Lt@!{7cq z_^tNK;PtQLavW~;*E{U4GcLO$U^s7edM~&deweSp4;C4Dcqq9BzpL#*Z)1zk2!{=? z$KT||))~k4IS|I2kovStx-3vJ$JPA2qK3D8;y>J(dO+=@9mzb)1T_K?{zi1 zJoerc;3e54(fT8wCx{L=PAa*UB_dqQ00l?j<2@XJLk&W_<6T4z1K0#AFlH-v8IKt{ zqw^(Adz&uN4bEPK7~X$|om&rsTk4nd{V5Qf=HB@cT;GYh_v4=Mjs6=#+^v5aE+jws zJk%Y;JqxLQs14PR2?gcR|H|%z__-lSHSex_eccc0et{XHP!q^wlHZz+|0+-tlwLz* zL>(2JgxAY9mLRvQCcp*zZpnj*@Hf?!WK=9#p1Z)cSAcNMe(yF*k!c8`RLnY(DpxV! z|Md%?{ulIIc)26$yTuc{&yb!(jX=Y}iw`y&kViNIbClnG>B##u1Wwkp2!c6+0hcrz zL&#JZqH|g_^(p>@}bJ!`3D|!Fd;~oF=h{C>z$=(a}mjnVFoJSo=L% zy2<-ZU5w+;@o64(mW_JE>KYsR%2Vk*^J!oj0S_LR{sxH3*aK~yiwRyS8l1p_+|LEq zD0xR<<`Kf+Qox|5OGQJV;<69B6_}e94IRF?GuRAMuri3{q4r>h%heHVAL4()fjW7; z;rQ(%5V>Jzzo<@3bn9CG4HO^=h5xuSh}&@UeeFY}aWm9z$3ODSY=?0Bs;H^GOjV=7 zHLbs*%}jhC?W^7k&zAH}h*kB>YpjMzh04tOoVn)6Ba%gr00%0yGC7Bb7u6g->j_Fu zVJl;;qr0*6*`Z2mtD4J~yv>9j3682G?xgF%IZ=0b}vSy_f}qm5f@PmmP3rR;*QJm}wd@jl;Y z5e|BXaO*qlP&FY#QlEW?=0TB-O-_cR(eNZJ$O}+;i`mdpIddEi*sy9SgcFjwI**i@ zF!lv0&6bu(7W@0d4T&I0iN@7&+@EbrG2-FV$~Hy*Na_|0+aSA(9>ho%R0W@uN#{;J=` zZ>pLBPyP-`IH^=otbp#H^}gE5P#loXUFlGBBfI8MBmNzNsP#O}#uMDB?+yfZ>rNzX z+IhO?VZ5mN%IA{0{yE<9%=HuxB=um(4`LlNAtg8(U~M&j2_F+B2U@vXkjIMSzXib? z3;hC60+aVN9nbzJN;=7tg;WN`+A-BkVFLwsTe0$47B|=Ti=hwd0Cl5c-$tNg-Ay!O z8;Bf`jCkufs5VT}ZDZTIMPi&b&E$Nt$hYEb^99NCUy{N<$g0qbB7ZmiTt;mk8NXI|Ysq5Qx zorOHnpeH8NotoX)o$4DL>`U#2bJ2Uy_dppQ0#f(b*%#_*Eb2+-ruaDGySIWqMwC4= zDc(dt0u;DuIbuz=D=`YONwkr&c7E?bi|%ylub@Lq&yk)Ob@R(*uD`GRJ$9Dz(wcjB zch3cXQSI2jNcQyfyssvIq_-Q&f;2#Mpnhk-a}=lfezGkG=}5F+1&n|;+zTRCN(u1| zN**j#aLL4bko{l9v_^X#AYUNZkExL?t#1ms1Eb9)qQTJ=Ojg6xeR=d@TGQ}fkw|Yl zbj$vOw;Vb*tabl|O;f0~W||BfP4=5nt)X+-A*`s@$#(f1>L;ReR6J`pINfga))e|n zb&V2du5(^$)QUBsrK~o~5sVmC<-kc^a&?LROeQeL2}wv>zVU6?LL;y0#6J8>I;Wk!{L{XwHSyg%MplHAXKS_nBp4ZmkN(p=Lkt_v_QvR zxQwmv+!WhtxZp+oj2TG`k;i(fzG=5tg}MXu+}7}v+qSQ>AqGjjrt3z~O>rUIuqW3w zxHXJ5bndgcxyu710}3Gw;{}f!{Y8A@8e;L?3k~MJx(W1^6be>$ebmTe4AC0`z^?{r zcXuhyv0Wk|@;51e>{q@O(m&X5epiU^BIe9-s00WGwRCU!g%H+YEohyv_L^W5 zegPpl@qRG+)c7?Vf9203R)nMBv?mflt0bkoi8$uWu zPV|G+fCloGTd$aQNvSO@4RS2W)Lv92{2q$Hcx5!H+!`a(u$5s$EY))K=&n$xC8c(P zQsKVc;S`3*k6$XhyAK&`BRNqo6xwz4DC)sC1T^%@=POM;cE1toTYnwZE4O}KAZb3b zXZ_pCw~&S(?w6W=cwQAokv+?ZqV?9BUBQhIDfVta05bLjK_rNA*_kK%cJ)hzz}~}` zpV!++h>5}w#@?cWFR#wE_V=~=i6!^<9`5Zs+&d?w=<@I;gmn%K(?P-?KufImSI#j130i7vf>0z={&A2h;Ex zkJIrc*tx#R;q+YN{SpKj!}RrcwMULe+Ob{we7E0?zX|h%C{9hNkLpeDa(eA~s*8i2 zG(YX$DLd7LKOlKRyRE%Cl1FvYUR?$1ZQP}kLq`-ulHd08_Ff3|wqD}C6PxGjcIeLU z+}nu}d*PGLPX!MgJCNKnl(jbIc4}OUYMxi4hBFky+K@O+_L&>jYIR)-;wlIiNl0%V zN)Oy56$mllwaEiV>G0>{iHj5C*dM~{&W2(gyUv;ya5e7tLwm+glgE!5_)aO`koGtv zw;qxH$8{xQq@_5jL&HW} z^G={5Tn^0{h_|xVKQ`7cl};;(YiOd&NZG^k0dDsj+S>GsN6@)o-N3ZPLe7zkPbmo| zbXdV85j?VDa#Eke>-hMy_d3{a$ZaaZ8)eb4R^6F#BWPy>&p+KH`8usOCY0i~GD zb}3G;7OU0WHH;1__tEI|A#oaRf96v*RCS8WY~ob{Tj~xb9D5`=xAsECC$FkIDFprgl!@|>TABFb`Nxt>Kqv@zpFFe+z!Y6 zti3sorGPap`|31c2-&S|1HX>Qcok1HgDhfg@l_{5Ll_Q2L0_+%yx4WC?PT^ubrLt} zw%s=DKDnVxV$+|f_qb~M^7=&2WVM&qs?+<8bj!tbfZ~VV)6K08ZM^s`)owQ1|6;VC zd_-JYcM9!CV8Lxf@A^O{KxzWImtxn^*}!Ir4q+S-3Hu9k3on_m*KbjxGq4~Y-&0Z?d011D;FGlU~Ao&$Oz#_i@Y}ut@v3Y0C-wvC*elPeB{AUlknn!|v9;=M_ip z>ITy7JJM%twwzqfBUgnRU$e&!lh#)piFO;ZW=P_uH7QG@HQ!Him}hFAlqx~>)G{qM zK`~UV!XSmA%Q47Sr5p%?q}I_B_Kw3H_O`J$fZ=#3);9JLFfTBQy2cjii`ZJ4gJJf; zP^@(nx5)Z9VEv84JJCjgx~c9q|&!~YT25I#lYK9~D| zR}Qrol2XI*=}_p?IKSwon^@QG1VAZ(XkvHQPuVV`$-Y-}IJCX?CS%MWYmrkj(GrVr zua^(nY;ej54dE)xph(d>iC60yg~jd$kkCE04kTzKW+#kcq8^gfkjR@f4kTGLVb|bx zs0wDA95s-Ey)zD(Wt?FC8V)y3fQLNohl#T_O?`p2>THe=lbCY28pxDHno{tu7VCJc2#5jC&VJJY9V!tg(As)@fgKNT$jucE0IX6D0cxzM#%|n{9DB6I~ zYi9kGN>}f(Sf`=K1>|YAU`sL zK=II1Ua&&4&`hWik*WppQy6W!!=`N zjiADmgck`X$^FB6NyluqGEAv>g^~joi_L9lk&~Wb0tWr(WilPx+ZAEmzP)^ZsMF&< zIG`qU*IvJ;r!f)=Mb1omU_1Ku*;&!Gt3zSyj$K_desAxXY+2x{BAkcS zHVFq4koO*@{*tWLx`_>Wit0X-VtP(}sN~NR)RWcZGxz6)%I1B~*tfKHRh+V&fRP7? z6Q?MH6cBm~I+OTn;-kTgfyoBG#D7o&h~O8ZI2mmKH8l{b+eo(YB-VzisMF2T)R+=O zaPyWJ1I-fF+37~%wC}2K?dWPZ+%A{V;EZ{_F=vC}a=DH6u8!9Fopz_KskKYZ_rwqT zwl+@08zIWq5j(@{@*#i(w|m`QC-U&)J2*R_zjCkL+t#iJf&o3!*x+?&V5z}oYYuNi zV?-9Ww|VWm>-Tn=(|ymISK~dm-r5sC!9~~(&R%zfb)p7@(CiIxErEC>E|No0A5omn z2jI)71spiRH=-t#Lt0C~0Eq+k>j03A4aCCe_}IC$L9&}K6fXU`7oHoOC({qAec;N1GB}``BP#TMPD)+)b^$!#nNXPkyR<=Rn72 zs!OSdb5Q|^w!{dWG*)>Z@(Eq1brI%}JSqqx;<>9TikP({?OpKBcw702ZcL&>+Y{n- z8+f1J{wr40^UD7^G~xUQ&w*aFyKP&%uz~yO!9x0`Be)~QiJ|Bc^C1$ zYuM8|Yx;?ssk^i84Op}PBR*gdk}Jp%E6#@^TcL?Z{1;iIn@b3kSfqwE!1WO*=Yfex zlI{@!%3TcP1E#WtQ}?ppmq#Faowby2P-gtUW?Xn8?ts%_7p~UPJtLq}?*!L?0I$R~ z7+%B0>`<6bv^yl(`jq~gV00qd9rPT~dQNQ496V>%0o=nG<-jV=I+~zW%OXt{vHT$7 zhr8R7A-^3;fe3wMQo&B={XvBC^#l`uNou@kf7lK$4Q=rDen7^Uv54_@D*==Pirlie zBY(CEbWy)=I)~PG^`zTcmk~G!Q0f zoHQr{MhA~euanV_fs4nGfcROGC$u*PoKD>EBmS`N6Qu%|3V&ye+wZo!4V6* z3U=W~-fO^Ej9|eLXCa?L`+iW4l0+DXI|Pt;tMW)B+=eWGb@^b?6I8MjDuTMngn> zY!W6xQXNd{o+_?T0|0#v{Y8M7WH$0ad{k;}4k!AyCO3Rk!xs4Fz?Q((^nsfxsiM3_ zL3K+*+qzHbOAPyAQU!h23Hf20cML9>{jApK8fynmk{WTp#|(Hb!}**>3b^>UPd&o^ zm3n=DXks3!buEKW){UeZ39+t-mDqza9J?Z+-nS zroRiWuY}IsKWV+Zt-hYF;gWIa^~aRYR+DZf3G_i&4%Y=~A<6}5vHRAl4ky@#%`3TR zpQi2+IkRX33L941McAcU`|Vj`miQ#`oj*C}@@W}F9vff7bQ2Df<+UmU%Fex9Lo3J0 zn-%R707eos6jmC38!2X~YcLLidE6cFH#(P~IPmkM8!6^{NoW-Clwa%YWAz?}I26LT z=;e(c3dQzVbTgUrVAo)8DCS~77l7?JOu+8L2MzQ(>ZMxG9uXr_cyZBF!x#`u?`h?U-Y(%3=vRoh7X@#U@!Iw_9^Hy1n~53M5qHwmKNJskfhlF z!9UIs_%G`w?Arhq5GtG7#&x3`Nvu>PlifjBB{q=0z~d}@-c5l}SKwlQL*l&ieN8w0 zS|1r58SWqETh1S9-}~Cbt?s_$fmkHg!E#D7o0 z&fs=vWptyDAXJ6VAh{bwl4|n*7a?vIqA{3)Vxr>{VCPXsCY{Rso(wimH#WGUUfu2U zx@^9vE7-v1$tcda*6Tdu^uhr2Lrnu7AV>s8NI2}#2AkpS#mj(upJEj27{GqBH*b8+ z#;2nFHaz3=ugdZ+hLF7hC@HH8HhCLq|NNJ*pAR=Prll4Mo68Pb&4fH@I6m`ZSwMgBu5`2Z4mmwcFq3 zKH&CU=<(7*{i~>t)O2?e+FR(uy1CBVqMMU)#fg&^}0~( z5xPQdn#{f0+d+RSpCOlnAKCzIH%2>1Zn!=UH6kc%EA>SQys6PrMUY4_A|I3N$?_Qj zuPjf;b?MhY2iC@ND4#F?xW2ypgx4>8vjezr z4}$i9Uz@Iq@+80`q;lKfi9EvmK`n zD75s>&-dc=T4b*(=5ocWWVy$7H1cxpDo*kJ1fjHiSsBfJhC;)mKFQN+zU zO6QQFeOohr1DlUEfWr2nVZ8G7RYE8RwKhW=RWJimIPjoSe>6h&iC7o%4dAd9lP1|m z+6n9y&^>>wXLJG~?e#SsG3+Nsdjb(jheqD}C&q{T%kHbkKSZ7@KQw-|dpUxT*qR7L z*xBRwRtETFy{qoo-t=^Dd73xi@luvTaTU)(%l=yUf}5`^)Sbj@En?fW1@y5577uk{ zH3dTfixek7sl-*_2MD;sNk%nQc~<*~k%-7A0FI38<0IHj$MeQ0H=an2@KNgF;UJLp zpr$kLQV9N(2W-#=T?{b8)(7Xp^>PsQ+7DCBD|!(UcL)3u_l;xk(6$5j^hx{G!$$cH zm)Z{`HDFChx?J5yx#l*qkZ&K5ZZ;VLlWaI7o%6;FLj?1J+BN+4a~omBkBc3_rQfhxCbN#X5TDNY49;AoKuv{O9R+D(}x z0reX30l+)KP^iqxElMJf$0~&Krl}fT4}~J=Y2haT@Ii9?u{!-n4fh4#adl*#pm?!A z(!^c!v=l%}~h@Y%dLM=W*zdo;7Ys zbVZsQZZX{Y8x4F8EcE2*2C8y{Op@&$F1%4EozOby2z-;iK>ni=m4?4h>{O^Uho)_t znHEylO_ke_-eZ<)h<9|AnbzeFxT@m>96o85yYS3=0i~IZ)SMgZK4PX}P+j*0GtCjF z;HPFSW+iEmyaIND4F0v3~r2bjMYAV*x%|v$D<9l0oqOR!i5ne{7RB zo{#&N2K|kdDLFhpyd>`=?QR z5V(r&%0vDzg#WV}>JOq8JqfT`&UvXvZl>0qc$tyUY>;D6`8JrHIS_E##oRC(CC77q z7GU)($U-a(HJJ!&WKAr}ni+OeK#{kxIHYv&S;jg+5p=U8>tVgD52$j0rGN#75D$3^ z+sa1RC<3@|W8-W)+rf4MN$!>r7x%FVwx1mUCwqvU#}2de*%5XDyO3SPE@qdoqwE+v z&Msw_vCG*N>`HbOyP93Yu4UJ;>)8$LM)o{*6PsjdHpQmd49l=tHpk{!mfg%wumwP> zC6;4(b_*-8A}g_Fc9N~ITiGdg8~X$HeD(tNLiQpA(z%_znBBo%!d}W=#_nWyv6r(~ zu)EnS*{j&A*&nhq>^1DQ>~-w*><#RV?2p)+*dMbuvwPTE*jw4#*xT7zb}xGednfx7 z_NVO6*q^g^v3DbW_svk$QQ5E1c1?8EFM>@V3z*u}Iz=MH#TlA$S~G~nZY9^myn z$U{8L8+e2_@+KbT%{<0icq?z?ao)~5VAIseyLdNG@*dvH`*=Se;3+=Hhd9Jod@BcS z!^ikGKF+uE9k4v!#dq^Pd@tX}C-{DTfFI1;_zlFb*zm310pXK-Rckp+@DD+SH zpYcEE@8a)9c!T%y_wm2r@8=)j_wf(%5AhH4kMO_bALW0=KgRFpALpOopX8t7pXQ(8 ztNa1}Apb0Xh<}d%HUAs_F#lWrcl`7G3;c`xOZ?0H5&rl5ANW7=NBLLySNYfYWBi}^ zKl6X#U+3T8-{g<;HU6*sTm0YnxA}MYzw`g#-{s%q-{=3yf53mpf5d;xpWr{?KjlB; zKj**TzvTbLpX9&dzvlnVf5U&v%ls)(2M>=N+8YR91}U{6?7{){@M5pKy-69E7f?m-l`o(}q!H|3il87y0 zs~8cZVoYok<6=839(RgeVz<~M_KJOCLhKg@#6fXLoF@*8^TiQyfw)jyBrX=0h@;{d zJwe zMEt4vGx6u*UEtFMec~^~`^5*ued2@SL*m2YBjPW`N5x->kBR%m$HgbaC&j14 zr^RQ)s(3&=C_XD55}y-)E&fJ4EdEyfo%p=?g7~8NlK3*j^?xt^0f7!46<-lw6<-sN ziGLFREdE7&U3^1)Q#>x##J`GfiGLH{7T*#7F8)J&SA0)=U;L-|f%u{Lk@zv9mHkBg zRQyc*T>L`(Qv8>AQv6E%TKu>8jrgr7i>K<`>6w{ArdUi(<#Hz~ndx+4Mo-V&yj(1K z(%C|47FFg6;k(ld*}0|EbOtEC;87W>m7P81RJn!BY{{jPh3wpX$&p@I$Q0(XnW7`T zIJLZxUYgD%(u(XHn*If%cQdO)O;aR$}Y|6s5qZ11aNI3lbXpbPs!8D z()tp5UH!T`@~ysgMay}om0wvhld7Ha;qnfaFuhPR(uL{y?8%Hg zucS|f(}hBAg|4KgvxRB1Rp*w{3mVR;E8i77r+7IZP-QibTwkI-RKD7*V}59D5q+r4 z&*bPsWm0{pOqw4m)603cyk3-FGGCiHsqU0ln$yK%7UO#|lUl$zvxK2Z6;C0xShS~c zDrAc%c)FyeOAG0uEnUhj2GYwj*<5NSQ=Bej^Cb|GT6zT&$}yFmK2gl4r!#g+QITgV zEhj{(IGtX|h^h1vE-lTZ(%Bhf3jLm&$=Gl%qFynBx(g{f_>eo1DOK{QQkqAV5?XUA zm08S}PPwhz?DE1wB{QF1n8nSi-Yv`N0&Zxq@}+qY%PF(8D5f$qwy8{};G6<2n=0bt z=8>m|Wp2x63aRPk0_Mb2cKQ^ifO9Ill$*xnrlw{KrTLlksnm4(1S%|KmS!>qZE7LA zga_spJ)ax2uhLN2$6 z<8pCcOfApZr)PVkx_rDcY@zcp%_JIt74G$muGBi%U!CsVvpX z7nc|C-2hhfMi-sU!E{i1x_~i5wF02bOhzDq#^PB3CRiLQDHn%I%Eb{-=^{-7f;s>< z>q_J*Tvwu2;ku&bJiQe!TF(2BD5a`vk{VV@(MP+cGX;Q6j7%w0KaH7rVk(Cfkt$`< z=rJ_4QshSx0F>5UDNW0XuF0on(hilx8ZiqoLo#MzKAUmN&NtzdnNgtB%%~65WHl-x zM361c=khKyLv6yN>B0##!K`y)i9owqo=>kVnbmJu&Sa>0R2_5b1U32gRgH$HlA#B9tSj)mL)z4(-vZeGws)QAln=7RA^Qc>ZL;`E5sLy0i0xW1V z+1qYAC1#e=u9@5d0JtPcJd{3_ngv_~9?)b?pUEv@t)f~Eutko%L#7FAJ23?2^tR39 zPNH@ATpDrzOd&l>^i0a^b2kcBQu*A%skz*eXQr^ch-ID0EacNmHpdDr6;n&H{0jH#9Fk$l4G^FM16-aqz2|rncf?MWha|NOr#BBOj*K7tzA9xrKG0e0+ zn^^=3a?KKO!lj!tCHrhvQE_gSP^6qwWr$31$Rw>hkC|F36|hcJ&KgB^1HL`8fT!b$ z_|ROTq>8hPpj}mQc9DvMvPyR8WRB*qnpW!lW|?1BF!3^dfx2oIs5a+kW__|+o=|ii zFrXArc`R6qu=2_hBBIl!<$~D=1!`2=Xo{QPxRNW(*r+~z@&YTN)Q7&sIy11EqUnZ@eC-31H`C^Te?^IohG%x!|182|$tWi=d%CyZHOx%teD zYZgQgMuV1#uF^IV1$t(4xhf53m}6^$2yxDd!^)DpLz78;cDV%F$(RE{kWbIp=hDSg zet9vk&84vf#9U_4IVb5X&;v!=Tz0k;m_r+iDG*L*f0p{#v#!LDxlGYLw~(8{5||}^ z#A{|0cT#kk*D1oS4 z#%hwc`fH0;uq4$}R2}tZDz#BHYFIu6nlF1B#wfkuk@=HEtAH%C&(kA8+tlMbXHZR& zi7DAy|GJ{(;*7htz$G&a+1rSokm-CHYu-$P=E?X}DNS^VKx^}a+|~2tLP$v*yWbcP7AO%!8!J6;8S4(T>b1 z%;f14ws}bJ-SfF(UZO0TB9%<>)FLLo-O3yDz%`}iDGle$f@dCBQB7^E0B90;8dWj{*H*#|eCY;S>@8 z8rjk*7ZN!O2U1$6FUd}8H`9;`e5f5iNn<%qU^qZ&q!)cMMYB&$A{*s#c_jGF`~%M>M-z{|(|LlHCqU2Q#m;KBdPO4J>Xm{)m9Tmobfzya z3Z(EMGa^$y`bZGB3p7SW-!E<1t3wv!F9U>*qrkIugSxI&{s|6}q z#M;fcCC6$`Y%`;PpeC<47jsi4k)f-k7qbh?8l?;L@?cGN1^9}}d>hK}5bGB6l0>Og z)uk@UydCLfBL8iRIZ%)IcC6}DK2t0~2Cs0vypWbuI&LlyvuP(D zg$ODQiBbkHps!L48;Xz-;5`k{71U1-I?sZQIweb%vQthfQ9~t=r0g`>kGgI%S%3hc zfJ}~LeOMTnN@yoZH&I!hiL_JGNKO&AnU+Y<%$y|7EThRQ&U|)m4nvO#tK~8NMUVXE z6ds*DnO^Xz+zg1A0ugMQ%)4-exJWX`HcI2LJcm+>jrx@8%1#a)4+;!CVI?P#ERF8U_f&VE(}3t1%x+lcNcMSdOjsVh|A2-$m%L> zFJ>|`1nZE8ps}EXEWtYW;{>W4U17H0Q7Le%lnI(-#s&KO1TY!3%vqezW)>uHw;`GL z(1A!FteIj7HFFq5;I&c_4+1|%SEkZ)zM2dPU2&Uvk?;swMcfJQUY1kpWO~U(FH0#Z z*CW#w4tL8O`d^MDWpp|~GAU2A9*iO+4!|K=@dN~pjv_P{poRdhx41|kmM8`@Dbc$u zbrlyOppdOa_p7v{xRhG~7jh!wD&~l(2cw!<@PXW+m*?lx60v$}^2>R@$^mqm1gN*R zU^(xQSt$~fDFVb`8swAIldTfKNm&Er2Au`qtw+keQ)WLIpz@Zmn}YKK385Utd_f9~ z(R)hrNMdW<8p=|75yM50o@hGiJx3+ymZ{tfh@&HgZ4-ZS84I7}(IyhNTLq%HjPJ%0DySQ9fjH1&##xl@ zAOW~hT**R^g^!~%jW&SZg1vZZXG z##zeE(e@lrjKfMU86^x2ZA;)>ns)#z&0tLzPI!=-g}@uV0X9e@Y_;UWajB?ycY3p{ zCQo-3=c$zHV*7>WosKD%pFf3XfoV#SgbhP(=0F?~T5zjti@B4yWM=aCHi&`c6}<$| zhhq;$nT!`Ci=1YvBkfk!ET`qOlwK}5Ww|8yTq-G7rddqSQ+Gl- z?2y+dLh7}}4DeOSOiS#c zD$7}*nt-KZCbAiIQO*_{y+=L{6ijYTqbwSQC0PUk2AVFnWH)m~&q+|55UDC?=RTRi z{*cKxI8{b+1u|(nnN2TfbSS!{XiIe@N+9O)fe>2&hiPpSx)fn1C%n^4(?m6sfYK}2 zb-^6baR!mSMTybcnIU@2uYDaE#9nmDUj`wHkLi5yo7pjYR$TT{Rd_ESX40$WPm Gt^WreG1a#K literal 0 HcmV?d00001 diff --git a/webfonts/fa-solid-900.woff b/webfonts/fa-solid-900.woff new file mode 100644 index 0000000000000000000000000000000000000000..41cbd7d30aadc08bc5b7e41b1c207664309fc8d0 GIT binary patch literal 80484 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 literal 0 HcmV?d00001 diff --git a/webfonts/fa-solid-900.woff2 b/webfonts/fa-solid-900.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..b307c26191e9e7b5eb17c0555ff7b22802cc6c3a GIT binary patch literal 62472 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∨!XjFH|@|iy@%Y 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 literal 0 HcmV?d00001 From 9e767fab27107e8302e6a481254e01930f309a12 Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Thu, 9 Aug 2018 15:13:13 +0200 Subject: [PATCH 128/200] fix scroll issue after postig comment --- css/style.css | 25 +++++++++---- sass/base/_base.scss | 69 ++++++++++++++++++++++------------ sass/components/_footer.scss | 72 +++++++++++++++++++----------------- 3 files changed, 102 insertions(+), 64 deletions(-) diff --git a/css/style.css b/css/style.css index 585669d..783e267 100644 --- a/css/style.css +++ b/css/style.css @@ -4950,8 +4950,9 @@ a:not(.toolbar-item):hover { height: 100%; max-width: 1200px; margin: auto; - background-color: #FFFFFF; + background-color: white; overflow: hidden; + position: relative; } .general-container--card { @@ -4967,6 +4968,12 @@ a:not(.toolbar-item):hover { box-shadow: 0px 0px 25px rgba(0, 0, 0, 0.8); } +.general-container:after { + clear: both; + content: ""; + display: table; +} + .background--talk > main { min-height: auto; float: none; @@ -4982,6 +4989,7 @@ main { margin-top: -36px; padding: 0px 15px 75px 15px; min-height: 100vh; + background-color: #fff; } main *:not(img):not(svg)::-moz-selection { @@ -5028,7 +5036,6 @@ main *:not(img):not(svg)::selection { } main { - margin-top: -20px; margin-left: 25%; width: 50%; left: auto; @@ -5037,6 +5044,12 @@ main *:not(img):not(svg)::selection { } } +@media (min-width: 768px) { + .general-container { + background-color: #26252B; + } +} + .form-wrapper { padding: 0px 15px 30px 15px; } @@ -7252,13 +7265,10 @@ button.paragraphs-dropdown-action { .general-footer { width: 25%; max-width: 300px; - position: relative !important; top: auto !important; left: auto !important; - right: auto !important; bottom: auto; height: 100vh; - float: right; background-color: #26252B; background-image: url(../images/body-bckgrd--md.svg); background-repeat: no-repeat; @@ -7267,8 +7277,9 @@ button.paragraphs-dropdown-action { background-size: 100% 80px; z-index: 4; padding: 60px 15px; - padding-bottom: 500em; - margin-bottom: -500em; + position: absolute !important; + right: 0; + height: 100%; } .general-footer > * { diff --git a/sass/base/_base.scss b/sass/base/_base.scss index 8c08c4e..d6f1c24 100644 --- a/sass/base/_base.scss +++ b/sass/base/_base.scss @@ -4,7 +4,7 @@ box-sizing: border-box; } -html { +html { font-size:62.5%; } @@ -24,11 +24,11 @@ body { background-position: 50% top; background-attachment: fixed; background-size: 100% 80px; - + &.not-signed { margin-top: 3.5rem; - background-image: url(../images/body-bckgrd--md.svg), linear-gradient($white, $white); - background-position: 50% 3.5rem, center 0; + background-image: url(../images/body-bckgrd--md.svg), linear-gradient($white, $white); + background-position: 50% 3.5rem, center 0; background-size: 100% 80px, 100% 3.5rem; } } @@ -50,10 +50,10 @@ h1, h2, h3, h4, h5, h6 { margin-bottom: 1em; } -h1 + h2, -h1 + h3, +h1 + h2, +h1 + h3, h1 + p, -h2 + h3, +h2 + h3, h2 + h4, h2 + p, h3 + h4, @@ -86,7 +86,7 @@ a:not(.toolbar-item){ text-shadow: 0 2px 0 $body__background-color, 0 3px 0 $body__background-color, 1px 2px 0 $body__background-color, -1px 2px 0 $body__background-color; box-shadow: 0 1px 0 0 $purple; transition: all .2s ease; - + &:hover { color: scale-lightness($blue, -40%); box-shadow: 0 1px 0 0 $body__background-color; @@ -99,8 +99,18 @@ a:not(.toolbar-item){ height: 100%; max-width: 1200px; margin: auto; - background-color: $white; + background-color: white; overflow: hidden; + position: relative; + /* + overflow: auto; + -ms-overflow-style: none; + overflow-y: -moz-hidden-unscrollable; + &::-webkit-scrollbar { + display: none; + } + */ + &--card { height: auto; @@ -112,13 +122,20 @@ a:not(.toolbar-item){ border-bottom-left-radius: 0px; border-bottom-right-radius: 0px; box-shadow: 0px 0px 25px rgba($black, 0.8); - + main { - + } } + &:after { + clear: both; + content: ""; + display: table; + } } + + .background--talk > main { min-height: auto; float: none; @@ -127,13 +144,14 @@ a:not(.toolbar-item){ margin: auto !important; padding: 15px 0px 0px 0px; text-align: left; -} +} main { display: block; margin-top: -36px; padding: 0px 15px 75px 15px; min-height: 100vh; + background-color: #fff; } main *:not(img):not(svg)::selection { @@ -143,44 +161,49 @@ main *:not(img):not(svg)::selection { } @media (min-width: 768px) { - + body { font-size: 1.6rem; - + &.not-signed { margin-top: 0px; - background-image: url(../images/body-bckgrd--md.svg); - background-position: 50% 0px,; + background-image: url(../images/body-bckgrd--md.svg); + background-position: 50% 0px,; background-size: 100% 80px; } } - + main { margin-top: 0; margin-left: 33%; width: 66%; padding: 100px 15px 0px 15px; - } - + .general-container--card { border-bottom-left-radius: 25px; border-bottom-right-radius: 25px; } - + } @media (min-width: 992px) { .general-container { box-shadow: 0px 0px 25px rgba($black, 0.4); } - + main { - margin-top: -20px; + /* margin-top: -20px; */ margin-left: 25%; width: 50%; left: auto; position: relative; float: left; } -} \ No newline at end of file +} + +@media (min-width: 768px) { + .general-container { + background-color: $gray-800; + } +} diff --git a/sass/components/_footer.scss b/sass/components/_footer.scss index 0802cbb..4c82059 100644 --- a/sass/components/_footer.scss +++ b/sass/components/_footer.scss @@ -3,23 +3,23 @@ bottom:auto; z-index: auto; width: 100%; - - ul.menu { + + ul.menu { padding: 0; margin: 1.5rem; margin-top: 3rem; - + li { display: inline-block; - + &::after { content: " | "; } - + &:last-child::after { content: ""; } - + a { color: $gray-500; text-shadow: 0 2px 0 $white, 0 3px 0 $white, 1px 2px 0 $white, -1px 2px 0 $white; @@ -31,7 +31,7 @@ box-shadow: 0 1px 0 0 $purple; transition: all .2s ease; } - + } } } @@ -44,18 +44,18 @@ z-index: 500; width: 33%; background: $gray-800; - - ul.menu { + + ul.menu { padding: 0; margin: 1.5rem; margin-top: 3rem; li { display: inline-block; - + &::after { content: " | "; } - + a { color: $gray-500; text-shadow: 0 2px 0 $gray-800, 0 3px 0 $gray-800, 1px 2px 0 $gray-800, -1px 2px 0 $gray-800; @@ -67,29 +67,29 @@ box-shadow: 0 1px 0 0 $body__background-color; transition: all .2s ease; } - + } } } - + &--card { position: relative !important; bottom:auto; z-index: auto; width: 100%; - - ul.menu { + + ul.menu { padding: 0; margin: 1.5rem; margin-top: 3rem; - + li { display: inline-block; - + &::after { content: " | "; } - + a { color: $gray-500; text-shadow: 0 2px 0 $white, 0 3px 0 $white, 1px 2px 0 $white, -1px 2px 0 $white; @@ -101,7 +101,7 @@ box-shadow: 0 1px 0 0 $purple; transition: all .2s ease; } - + } } } @@ -113,13 +113,13 @@ .general-footer { width: 25%; max-width: 300px; - position: relative !important; + /* position: relative !important; */ top: auto !important; left: auto !important; - right: auto !important; + /* right: auto !important; */ bottom: auto; height: 100vh; - float: right; + /* float: right; */ background-color: $gray-800; background-image: url(../images/body-bckgrd--md.svg); background-repeat: no-repeat; @@ -128,24 +128,28 @@ background-size: 100% 80px; z-index: 4; padding: 60px 15px; - padding-bottom: 500em; + /*padding-bottom: 500em; margin-bottom: -500em; - - + */ + + position: absolute !important; + right: 0; + height: 100%; + + > * { position: fixed; width: calc(25% - 30px); max-width: 270px; - + } - + ul.menu { position: fixed; width: 100%; bottom: 0; } - - + &--card { background-color: transparent; bottom: auto; @@ -154,20 +158,20 @@ height: auto; padding: 0; margin-bottom: 0; - + > * { position: auto; width: 100%; max-width: 100%; } - + ul.menu { position: relative; width: 100%; bottom: 0; } - + } - + } -} \ No newline at end of file +} From 70bfc9315f2954438d3d8054dcf397fdb9089147 Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Thu, 9 Aug 2018 15:18:04 +0200 Subject: [PATCH 129/200] NGF-342 fontawesome added to sass and icon added to buttons and files --- css/style.css | 2 +- sass/base/_base.scss | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/css/style.css b/css/style.css index 783e267..311baf3 100644 --- a/css/style.css +++ b/css/style.css @@ -4950,7 +4950,7 @@ a:not(.toolbar-item):hover { height: 100%; max-width: 1200px; margin: auto; - background-color: white; + background-color: #FFFFFF; overflow: hidden; position: relative; } diff --git a/sass/base/_base.scss b/sass/base/_base.scss index d6f1c24..b93ed90 100644 --- a/sass/base/_base.scss +++ b/sass/base/_base.scss @@ -99,7 +99,7 @@ a:not(.toolbar-item){ height: 100%; max-width: 1200px; margin: auto; - background-color: white; + background-color: $white; overflow: hidden; position: relative; /* From 2b478d6f22577f456e21fd530261f28917e76280 Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Fri, 10 Aug 2018 15:41:24 +0200 Subject: [PATCH 130/200] NGF-346: fix broken menu for mobile phone --- css/style.css | 27 +++++++++++++++++++-------- sass/components/_inpage-nav.scss | 31 ++++++++++++++++--------------- sass/components/_navigation.scss | 27 ++++++++++++++++++--------- 3 files changed, 53 insertions(+), 32 deletions(-) diff --git a/css/style.css b/css/style.css index 311baf3..ee1234a 100644 --- a/css/style.css +++ b/css/style.css @@ -7470,6 +7470,7 @@ button.paragraphs-dropdown-action { .inpage-nav { border-bottom: solid 1px #dfe0e5; + margin-bottom: 15px; } .inpage-nav .nav--tabs { @@ -7633,14 +7634,7 @@ a.logo__link span { } .navigation-menu { - position: fixed; - bottom: 0px; background: url(../images/navigation-menu__background--sm.svg) no-repeat center bottom; - background-size: 100vw 27vw; - width: 100vw; - height: 25vw; - max-height: 100px; - z-index: 1000; } .navigation-menu__list { @@ -7678,7 +7672,7 @@ a.logo__link span { } .navigation-menu__list li.active a { - color: #ff88b2; + color: #FFFFFF; } .navigation-menu__list li a { @@ -7688,10 +7682,27 @@ a.logo__link span { box-shadow: none; } +.navigation-menu__list li a:hover { + color: #FFFFFF; +} + .not-signed .navigation-menu, .not-signed .new-item { display: none; } +@media (max-width: 767.98px) { + .menu--main.navigation-menu { + overflow: hidden; + position: fixed; + bottom: 0; + width: 100%; + background-size: 100vw 27vw; + height: 25vw; + max-height: 100px; + z-index: 1000; + } +} + @media (max-width: 767.98px) and (orientation: landscape) { .navigation-menu { background-position: center bottom; diff --git a/sass/components/_inpage-nav.scss b/sass/components/_inpage-nav.scss index 80f8785..5789834 100644 --- a/sass/components/_inpage-nav.scss +++ b/sass/components/_inpage-nav.scss @@ -3,9 +3,10 @@ .inpage-nav { border-bottom: solid 1px $gray-300; - + margin-bottom: 15px; + .nav--tabs { - + display: flex; flex-direction: row; flex-wrap: nowrap; @@ -13,25 +14,25 @@ padding:0 0 0 15px; width:100%; overflow-y: auto; - + li { list-style: none; display: block; flex-basis: 100px; flex: 0; padding: 0 15px 2px; - + &:first-child { padding-left: 0; } - + a{ display: block; white-space: nowrap; box-shadow: none; box-shadow: none; } - + a:after{ content: ""; display: block; @@ -41,33 +42,33 @@ padding: 0 9px; margin-bottom: -4px; transition: all 0.2s; - } - + } + a:hover::after { margin-top: 2px; height: 5px; background-color: #a6a7ab; transition: all 0.2s; } - + a.active { color: $text-color; font-weight: 600; } - + a.active::after { margin-top: 2px; height: 5px; background-color: $purple; transition: all 0.2s; } - - + + a.active:hover { cursor: default; } } - + } } @@ -75,8 +76,8 @@ .tab-pane { display: none; } - + .tab-pane.active { display: block; } -} \ No newline at end of file +} diff --git a/sass/components/_navigation.scss b/sass/components/_navigation.scss index c90556b..1492b4b 100644 --- a/sass/components/_navigation.scss +++ b/sass/components/_navigation.scss @@ -1,12 +1,6 @@ .navigation-menu { - position: fixed; - bottom: 0px; background: url(../images/navigation-menu__background--sm.svg) no-repeat center bottom; - background-size: 100vw 27vw; - width: 100vw; - height: 25vw; - max-height: 100px; - z-index: 1000; + &__list { float: left; @@ -35,7 +29,8 @@ border-bottom: solid 2px $pink; a { - color: scale-lightness($pink, 40); + /* color: scale-lightness($pink, 40); */ + color: $white; } } @@ -43,6 +38,9 @@ color: $white; text-shadow: none; box-shadow: none; + &:hover { + color: $white; + } } } } @@ -52,7 +50,18 @@ display: none; } - +@media (max-width: 767.98px) { + .menu--main.navigation-menu { + overflow: hidden; + position: fixed; + bottom: 0; + width: 100%; + background-size: 100vw 27vw; + height: 25vw; + max-height: 100px; + z-index: 1000; + } +} @media (max-width: 767.98px) and (orientation: landscape) { .navigation-menu { From ae1d40ea8db0c1d6f8970fece39ad2fcdaac1adb Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Mon, 13 Aug 2018 14:57:46 +0200 Subject: [PATCH 131/200] NGF-350: added styling for create new content button --- css/style.css | 23 +++++++++- sass/components/_header.scss | 34 ++++++++------ .../block--create-content-block.html.twig | 45 +++++++++++++++++++ 3 files changed, 87 insertions(+), 15 deletions(-) create mode 100644 templates/block/block--create-content-block.html.twig diff --git a/css/style.css b/css/style.css index ee1234a..98684e8 100644 --- a/css/style.css +++ b/css/style.css @@ -4,6 +4,7 @@ .fas, .field-add-more-submit:before, .field--type-file .file:before, +.new-item .create-new:before, .far, .fal, .fab { @@ -111,6 +112,7 @@ .fas.fa-pull-left, .fa-pull-left.field-add-more-submit:before, .field--type-file .fa-pull-left.file:before, +.new-item .fa-pull-left.create-new:before, .far.fa-pull-left, .fal.fa-pull-left, .fab.fa-pull-left { @@ -121,6 +123,7 @@ .fas.fa-pull-right, .fa-pull-right.field-add-more-submit:before, .field--type-file .fa-pull-right.file:before, +.new-item .fa-pull-right.create-new:before, .far.fa-pull-right, .fal.fa-pull-right, .fab.fa-pull-right { @@ -4846,7 +4849,8 @@ .fa, .fas, .field-add-more-submit:before, -.field--type-file .file:before { +.field--type-file .file:before, +.new-item .create-new:before { font-family: 'Font Awesome 5 Free'; font-weight: 900; } @@ -7332,6 +7336,21 @@ button.paragraphs-dropdown-action { height: 45px; width: 45px; font-size: 2.2rem; + font-weight: normal; + text-align: left; +} + +.new-item .create-new:before { + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + display: inline-block; + font-style: normal; + font-variant: normal; + font-weight: normal; + line-height: 1; + vertical-align: -.125em; + padding-right: 10px; + content: "\f303"; } .pre-banner { @@ -7785,7 +7804,7 @@ a.logo__link span { border-bottom: none; } - .navigation-menu__list li.active .fas, .navigation-menu__list li.active .field-add-more-submit:before, .navigation-menu__list li.active .field--type-file .file:before, .field--type-file .navigation-menu__list li.active .file:before { + .navigation-menu__list li.active .fas, .navigation-menu__list li.active .field-add-more-submit:before, .navigation-menu__list li.active .field--type-file .file:before, .field--type-file .navigation-menu__list li.active .file:before, .navigation-menu__list li.active .new-item .create-new:before, .new-item .navigation-menu__list li.active .create-new:before { color: #ff397f; } diff --git a/sass/components/_header.scss b/sass/components/_header.scss index 69dcbb5..497378e 100644 --- a/sass/components/_header.scss +++ b/sass/components/_header.scss @@ -1,11 +1,11 @@ .new-item { - + position: fixed; right: 0px; bottom: 10px; width: 21vw; text-align: center; - + .create-new { background: url(../images/new-item__button__background--sm.svg) no-repeat center center; background-size: 42px 42px; @@ -13,17 +13,25 @@ height: 45px; width: 45px; font-size: 2.2rem; - } + font-weight: normal; + text-align: left; + &:before { + @include fa-icon; + @extend .fas; + padding-right: 10px; + content: fa-content($fa-var-pencil-alt); + } + } } .pre-banner { width: 100%; max-width: 768px; - + background-image: url(../images/header-arch-only.svg); background-repeat: no-repeat; background-size: 100% 82px; - + position: fixed; left: 50%; transform: translateX(-50%); @@ -62,7 +70,7 @@ @media (min-width: 768px) { .general-header { - position: fixed; + position: fixed; z-index: 5; right: auto; bottom: auto; @@ -75,9 +83,9 @@ padding: 90px 15px 130px; overflow: auto; } - + .new-item { - + position: relative; right: auto; bottom: auto; @@ -104,7 +112,7 @@ svg { margin-right: 1.5rem; } - + &:hover { box-shadow: none; background: rgba($cyan, 1); @@ -116,13 +124,13 @@ background: rgba($white, 0.1); border-bottom: none; } - } + } } } @media (min-width: 992px) { .general-header { - position: fixed; + position: fixed; right: auto; bottom: auto; left: auto; @@ -133,5 +141,5 @@ float: left; height: 100vh; padding: 90px 15px 15px; - } -} \ No newline at end of file + } +} diff --git a/templates/block/block--create-content-block.html.twig b/templates/block/block--create-content-block.html.twig new file mode 100644 index 0000000..0224f7a --- /dev/null +++ b/templates/block/block--create-content-block.html.twig @@ -0,0 +1,45 @@ +{# +/** + * @file + * Theme override to display a block. + * + * Available variables: + * - plugin_id: The ID of the block implementation. + * - label: The configured label of the block if visible. + * - configuration: A list of the block's configuration values. + * - label: The configured label for the block. + * - label_display: The display settings for the label. + * - provider: The module or other provider that provided this block plugin. + * - Block plugin specific settings will also be stored here. + * - content: The content of this block. + * - attributes: array of HTML attributes populated by modules, intended to + * be added to the main container tag of this template. + * - id: A valid HTML ID and guaranteed unique. + * - title_attributes: Same as attributes, except applied to the main title + * tag that appears in the template. + * - title_prefix: Additional output populated by modules, intended to be + * displayed in front of the main title tag that appears in the template. + * - title_suffix: Additional output populated by modules, intended to be + * displayed after the main title tag that appears in the template. + * + * @see template_preprocess_block() + */ +#} +{% + set classes = [ + 'block', + 'block-' ~ configuration.provider|clean_class, + 'block-' ~ plugin_id|clean_class, + 'new-item', + ] +%} + + {{ title_prefix }} + {% if label %} + {{ label }}

  • + {% endif %} + {{ title_suffix }} + {% block content %} + {{ content }} + {% endblock %} +
    From 2d03f0c66fba0943894dfe23756a260871063af7 Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Mon, 13 Aug 2018 18:33:50 +0200 Subject: [PATCH 132/200] fix layout bugs register mobile and tabs improvement --- css/style.css | 38 +++++++++++---- sass/base/_base.scss | 20 ++++---- sass/base/_form.scss | 2 +- sass/components/_header.scss | 46 +++++++++---------- sass/components/_inpage-nav.scss | 23 ++++++---- sass/components/_navigation.scss | 4 ++ .../block--create-content-block.html.twig | 45 ++++++++++++++++++ .../layout/page--front--anonymous.html.twig | 2 +- 8 files changed, 126 insertions(+), 54 deletions(-) create mode 100644 templates/block/block--create-content-block.html.twig diff --git a/css/style.css b/css/style.css index ee1234a..a9f8c70 100644 --- a/css/style.css +++ b/css/style.css @@ -4924,6 +4924,10 @@ p + h2, p + h3, p + h4 { margin-top: 1.8em; } +a { + color: #662D91; +} + a:not(.toolbar-item) { color: #662D91; -webkit-transition: all 0.2s; @@ -4982,6 +4986,12 @@ a:not(.toolbar-item):hover { margin: auto !important; padding: 15px 0px 0px 0px; text-align: left; + background: transparent; +} + +.background--talk header a { + -webkit-box-shadow: none; + box-shadow: none; } main { @@ -5051,7 +5061,6 @@ main *:not(img):not(svg)::selection { } .form-wrapper { - padding: 0px 15px 30px 15px; } .wf-active input, .wf-active textarea { @@ -7368,7 +7377,7 @@ button.paragraphs-dropdown-action { background-position: center top; min-height: calc(20vh + 82px); background-color: #FFF; - padding-top: 120px; + padding: 120px 15px 0 15px; text-align: center; } @@ -7497,11 +7506,7 @@ button.paragraphs-dropdown-action { -webkit-box-flex: 0; -ms-flex: 0; flex: 0; - padding: 0 15px 2px; -} - -.inpage-nav .nav--tabs li:first-child { - padding-left: 0; + padding: 2px 15px 2px 0; } .inpage-nav .nav--tabs li a { @@ -7510,6 +7515,7 @@ button.paragraphs-dropdown-action { -webkit-box-shadow: none; box-shadow: none; box-shadow: none; + text-shadow: none; } .inpage-nav .nav--tabs li a:after { @@ -7532,12 +7538,12 @@ button.paragraphs-dropdown-action { transition: all 0.2s; } -.inpage-nav .nav--tabs li a.active { +.inpage-nav .nav--tabs li a.is-active { color: #515155; font-weight: 600; } -.inpage-nav .nav--tabs li a.active::after { +.inpage-nav .nav--tabs li a.is-active::after { margin-top: 2px; height: 5px; background-color: #662D91; @@ -7545,10 +7551,18 @@ button.paragraphs-dropdown-action { transition: all 0.2s; } -.inpage-nav .nav--tabs li a.active:hover { +.inpage-nav .nav--tabs li a.is-active:hover { cursor: default; } +.background--talk .inpage-nav { + border-bottom: none; +} + +.background--talk .inpage-nav .nav--tabs { + padding-left: 0; +} + .tab-content .tab-pane { display: none; } @@ -7686,6 +7700,10 @@ a.logo__link span { color: #FFFFFF; } +.background--talk .navigation-menu { + background: none; +} + .not-signed .navigation-menu, .not-signed .new-item { display: none; } diff --git a/sass/base/_base.scss b/sass/base/_base.scss index b93ed90..9d020dd 100644 --- a/sass/base/_base.scss +++ b/sass/base/_base.scss @@ -78,7 +78,11 @@ p + h2, p + h3, p + h4 { margin-top: 1.8em; } -a:not(.toolbar-item){ +a { + color: $purple; +} + +a:not(.toolbar-item) { color: $purple; transition: all 0.2s; font-weight: 500; @@ -102,14 +106,7 @@ a:not(.toolbar-item){ background-color: $white; overflow: hidden; position: relative; - /* - overflow: auto; - -ms-overflow-style: none; - overflow-y: -moz-hidden-unscrollable; - &::-webkit-scrollbar { - display: none; - } - */ + &--card { @@ -144,6 +141,11 @@ a:not(.toolbar-item){ margin: auto !important; padding: 15px 0px 0px 0px; text-align: left; + background: transparent; +} + +.background--talk header a { + box-shadow: none; } main { diff --git a/sass/base/_form.scss b/sass/base/_form.scss index c592001..c4ec17d 100644 --- a/sass/base/_form.scss +++ b/sass/base/_form.scss @@ -1,5 +1,5 @@ .form-wrapper { - padding: 0px 15px 30px 15px; + /* padding: 0px 15px 30px 15px; */ } .wf-active input, .wf-active textarea { diff --git a/sass/components/_header.scss b/sass/components/_header.scss index 69dcbb5..21088b8 100644 --- a/sass/components/_header.scss +++ b/sass/components/_header.scss @@ -1,11 +1,11 @@ .new-item { - + position: fixed; right: 0px; bottom: 10px; width: 21vw; text-align: center; - + .create-new { background: url(../images/new-item__button__background--sm.svg) no-repeat center center; background-size: 42px 42px; @@ -13,17 +13,17 @@ height: 45px; width: 45px; font-size: 2.2rem; - } + } } .pre-banner { width: 100%; max-width: 768px; - + background-image: url(../images/header-arch-only.svg); background-repeat: no-repeat; background-size: 100% 82px; - + position: fixed; left: 50%; transform: translateX(-50%); @@ -41,17 +41,17 @@ box-sizing: border-box; } -.background--talk{ - background-image: url(../images/homepage-illustration.jpg); - background-repeat: no-repeat; - background-size: 768px 400px; - background-size: contain; - background-position: center top; - min-height: calc(20vh + 82px); - background-color: #FFF; - padding-top: 120px; +.background--talk { + background-image: url(../images/homepage-illustration.jpg); + background-repeat: no-repeat; + background-size: 768px 400px; + background-size: contain; + background-position: center top; + min-height: calc(20vh + 82px); + background-color: #FFF; + padding: 120px 15px 0 15px; text-align: center; - } +} .logo { width: 100%; @@ -62,7 +62,7 @@ @media (min-width: 768px) { .general-header { - position: fixed; + position: fixed; z-index: 5; right: auto; bottom: auto; @@ -75,9 +75,9 @@ padding: 90px 15px 130px; overflow: auto; } - + .new-item { - + position: relative; right: auto; bottom: auto; @@ -104,7 +104,7 @@ svg { margin-right: 1.5rem; } - + &:hover { box-shadow: none; background: rgba($cyan, 1); @@ -116,13 +116,13 @@ background: rgba($white, 0.1); border-bottom: none; } - } + } } } @media (min-width: 992px) { .general-header { - position: fixed; + position: fixed; right: auto; bottom: auto; left: auto; @@ -133,5 +133,5 @@ float: left; height: 100vh; padding: 90px 15px 15px; - } -} \ No newline at end of file + } +} diff --git a/sass/components/_inpage-nav.scss b/sass/components/_inpage-nav.scss index 5789834..72b5a64 100644 --- a/sass/components/_inpage-nav.scss +++ b/sass/components/_inpage-nav.scss @@ -11,7 +11,7 @@ flex-direction: row; flex-wrap: nowrap; margin-bottom: 0; - padding:0 0 0 15px; + padding: 0 0 0 15px; width:100%; overflow-y: auto; @@ -20,17 +20,14 @@ display: block; flex-basis: 100px; flex: 0; - padding: 0 15px 2px; - - &:first-child { - padding-left: 0; - } + padding: 2px 15px 2px 0; a{ display: block; white-space: nowrap; box-shadow: none; box-shadow: none; + text-shadow: none; } a:after{ @@ -51,20 +48,19 @@ transition: all 0.2s; } - a.active { + a.is-active { color: $text-color; font-weight: 600; } - a.active::after { + a.is-active::after { margin-top: 2px; height: 5px; background-color: $purple; transition: all 0.2s; } - - a.active:hover { + a.is-active:hover { cursor: default; } } @@ -72,6 +68,13 @@ } } +.background--talk .inpage-nav { + border-bottom: none; + .nav--tabs { + padding-left: 0; + } +} + .tab-content { .tab-pane { display: none; diff --git a/sass/components/_navigation.scss b/sass/components/_navigation.scss index 1492b4b..593077e 100644 --- a/sass/components/_navigation.scss +++ b/sass/components/_navigation.scss @@ -46,6 +46,10 @@ } } +.background--talk .navigation-menu { + background: none; +} + .not-signed .navigation-menu, .not-signed .new-item { display: none; } diff --git a/templates/block/block--create-content-block.html.twig b/templates/block/block--create-content-block.html.twig new file mode 100644 index 0000000..0224f7a --- /dev/null +++ b/templates/block/block--create-content-block.html.twig @@ -0,0 +1,45 @@ +{# +/** + * @file + * Theme override to display a block. + * + * Available variables: + * - plugin_id: The ID of the block implementation. + * - label: The configured label of the block if visible. + * - configuration: A list of the block's configuration values. + * - label: The configured label for the block. + * - label_display: The display settings for the label. + * - provider: The module or other provider that provided this block plugin. + * - Block plugin specific settings will also be stored here. + * - content: The content of this block. + * - attributes: array of HTML attributes populated by modules, intended to + * be added to the main container tag of this template. + * - id: A valid HTML ID and guaranteed unique. + * - title_attributes: Same as attributes, except applied to the main title + * tag that appears in the template. + * - title_prefix: Additional output populated by modules, intended to be + * displayed in front of the main title tag that appears in the template. + * - title_suffix: Additional output populated by modules, intended to be + * displayed after the main title tag that appears in the template. + * + * @see template_preprocess_block() + */ +#} +{% + set classes = [ + 'block', + 'block-' ~ configuration.provider|clean_class, + 'block-' ~ plugin_id|clean_class, + 'new-item', + ] +%} + + {{ title_prefix }} + {% if label %} + {{ label }} + {% endif %} + {{ title_suffix }} + {% block content %} + {{ content }} + {% endblock %} +
    diff --git a/templates/layout/page--front--anonymous.html.twig b/templates/layout/page--front--anonymous.html.twig index 79b5245..6523995 100644 --- a/templates/layout/page--front--anonymous.html.twig +++ b/templates/layout/page--front--anonymous.html.twig @@ -45,7 +45,7 @@
    - +
    From 4942ae82e95009423f276a449d4973c9ffba1946 Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Tue, 14 Aug 2018 10:25:54 +0200 Subject: [PATCH 133/200] fix library list --- css/style.css | 11 +++++++++-- sass/base/_base.scss | 3 +++ sass/components/_newsfeed.scss | 3 ++- 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/css/style.css b/css/style.css index a9f8c70..8737239 100644 --- a/css/style.css +++ b/css/style.css @@ -4994,6 +4994,11 @@ a:not(.toolbar-item):hover { box-shadow: none; } +.background--talk header a:hover { + -webkit-box-shadow: none; + box-shadow: none; +} + main { display: block; margin-top: -36px; @@ -8077,7 +8082,8 @@ a.logo__link span { padding-left: 25px; } -.newsfeed__item--teaser { +.newsfeed__item--teaser, +.paragraph--view-mode--teaser { background-image: url(../images/hr--wavy.svg); background-repeat: no-repeat; background-position: center top; @@ -8086,7 +8092,8 @@ a.logo__link span { margin-top: -30px; } -.newsfeed__item--teaser:first-child { +.newsfeed__item--teaser:first-child, + .paragraph--view-mode--teaser:first-child { padding-top: 4rem; background-image: none !important; margin-top: 0px; diff --git a/sass/base/_base.scss b/sass/base/_base.scss index 9d020dd..760c9e5 100644 --- a/sass/base/_base.scss +++ b/sass/base/_base.scss @@ -146,6 +146,9 @@ a:not(.toolbar-item) { .background--talk header a { box-shadow: none; + &:hover { + box-shadow: none; + } } main { diff --git a/sass/components/_newsfeed.scss b/sass/components/_newsfeed.scss index ef65818..c2b1675 100644 --- a/sass/components/_newsfeed.scss +++ b/sass/components/_newsfeed.scss @@ -139,7 +139,8 @@ } } - .newsfeed__item--teaser { + .newsfeed__item--teaser, + .paragraph--view-mode--teaser { background-image: url(../images/hr--wavy.svg); background-repeat: no-repeat; background-position: center top; From 81b39d2305e2e6bbd52fcd14502f0235dfbb75c5 Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Thu, 16 Aug 2018 13:17:02 +0200 Subject: [PATCH 134/200] NGF-355: modal theming --- css/style.css | 3666 +--------------------- sass/base/_base.scss | 205 ++ sass/components/_header.scss | 76 + sass/components/_modal.scss | 38 + sass/components/_navigation.scss | 334 ++ templates/field/show-more-link.html.twig | 2 +- 6 files changed, 659 insertions(+), 3662 deletions(-) create mode 100644 sass/components/_header.scss create mode 100644 sass/components/_modal.scss create mode 100644 sass/components/_navigation.scss diff --git a/css/style.css b/css/style.css index 7e0ce44..b72afd5 100644 --- a/css/style.css +++ b/css/style.css @@ -1,3665 +1,9 @@ -@charset "UTF-8"; - -* { - -webkit-box-sizing: border-box; - box-sizing: border-box; -} - -html { - font-size: 62.5%; -} - -body { - font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, sans-serif; - font-size: 1.5rem; - background-color: #FFFFFF; - color: #515155; - margin: 0; - padding: 0; - line-height: 1.8; - background-color: #1f1e23; - background-image: url(../images/body-bckgrd--md.svg); - background-repeat: no-repeat; - background-position: 50% top; - background-attachment: fixed; - background-size: 100% 80px; -} - -body.not-signed { - margin-top: 3.5rem; - background-image: url(../images/body-bckgrd--md.svg), -webkit-gradient(linear, left top, left bottom, from(#FFFFFF), to(#FFFFFF)); - background-image: url(../images/body-bckgrd--md.svg), linear-gradient(#FFFFFF, #FFFFFF); - background-position: 50% 3.5rem, center 0; - background-size: 100% 80px, 100% 3.5rem; -} - -.wf-active body { - font-family: "Raleway"; - font-weight: 500; -} - -p, h2, h3, h4, h5, h6, li { - max-width: 32em; -} - -h1, h2, h3, h4, h5, h6 { - font-family: "Raleway"; - font-weight: bold; - line-height: 1.3; - margin-top: 2.5em; - margin-bottom: 1em; -} - -h1 + h2, -h1 + h3, -h1 + p, -h2 + h3, -h2 + h4, -h2 + p, -h3 + h4, -h3 + h5, -h3 + p, -h4 + p, -h5 + p, -h6 + p { - margin-top: -0.3em; -} - -h4, h5, h6 { - opacity: 0.9; -} - -p + h2, p + h3, p + h4 { - margin-top: 1.8em; -} - -a:not(.toolbar-item) { - color: #662D91; - -webkit-transition: all 0.2s; - transition: all 0.2s; - font-weight: 500; - text-decoration: none; - text-shadow: 0 2px 0 #FFFFFF, 0 3px 0 #FFFFFF, 1px 2px 0 #FFFFFF, -1px 2px 0 #FFFFFF; - -webkit-box-shadow: 0 1px 0 0 #662D91; - box-shadow: 0 1px 0 0 #662D91; - -webkit-transition: all .2s ease; - transition: all .2s ease; -} - -a:not(.toolbar-item):hover { - color: #003ba7; - -webkit-box-shadow: 0 1px 0 0 #FFFFFF; - box-shadow: 0 1px 0 0 #FFFFFF; - -webkit-transition: all .2s ease; - transition: all .2s ease; -} - -.general-container { - width: 100%; - height: 100%; - max-width: 1200px; - margin: auto; - background-color: #FFFFFF; - overflow: hidden; -} - -.general-container--card { - height: auto; - width: 100%; - max-width: 768px; - background-color: #FFFFFF; - margin: auto; - text-align: center; - border-bottom-left-radius: 0px; - border-bottom-right-radius: 0px; - -webkit-box-shadow: 0px 0px 25px rgba(0, 0, 0, 0.8); - box-shadow: 0px 0px 25px rgba(0, 0, 0, 0.8); -} - -.background--talk > main { - min-height: auto; - float: none; - width: 100%; - max-width: 32em; - margin: auto !important; - padding: 15px 0px 0px 0px; - text-align: left; -} - -main { - display: block; - margin-top: -36px; - padding: 0px 15px 75px 15px; - min-height: 100vh; -} - -main *:not(img):not(svg)::-moz-selection { - color: #FFFFFF; - background: #1a3773; - text-shadow: 2px 2px 0 rgba(0, 0, 0, 0.8), 2px 3px 0 rgba(0, 0, 0, 0.8), 3px 2px 0 rgba(0, 0, 0, 0.8), 4px 2px 0 rgba(0, 0, 0, 0.8); -} - -main *:not(img):not(svg)::selection { - color: #FFFFFF; - background: #1a3773; - text-shadow: 2px 2px 0 rgba(0, 0, 0, 0.8), 2px 3px 0 rgba(0, 0, 0, 0.8), 3px 2px 0 rgba(0, 0, 0, 0.8), 4px 2px 0 rgba(0, 0, 0, 0.8); -} - -@media (min-width: 768px) { - body { - font-size: 1.6rem; - } - - body.not-signed { - margin-top: 0px; - background-image: url(../images/body-bckgrd--md.svg); - background-position: 50% 0px; - background-size: 100% 80px; - } - - main { - margin-top: 0; - margin-left: 33%; - width: 66%; - padding: 100px 15px 0px 15px; - } - - .general-container--card { - border-bottom-left-radius: 25px; - border-bottom-right-radius: 25px; - } -} - -@media (min-width: 992px) { - .general-container { - -webkit-box-shadow: 0px 0px 25px rgba(0, 0, 0, 0.4); - box-shadow: 0px 0px 25px rgba(0, 0, 0, 0.4); - } - - main { - margin-top: -20px; - margin-left: 25%; - width: 50%; - left: auto; - position: relative; - float: left; - } -} - -.form-wrapper { - padding: 0px 15px 30px 15px; -} - -.wf-active input, .wf-active textarea { - font-family: "Raleway"; -} - -form__block, .form__block { - margin: 1.5rem 0 1rem; -} - -form__block label, form__fake-label, .form__block label, .form__fake-label { - display: block; - font-weight: 600; - text-align: left; - margin-bottom: 0.3em; -} - -form textarea, .form textarea { - font-family: "Raleway"; - min-height: 6rem; -} - -form input[type=text], form input[type=email], form input[type=password], form textarea, .form input[type=text], .form input[type=email], .form input[type=password], .form textarea { - padding: 0.7rem 0.9rem; - font-size: 1.6rem; - line-height: 1.8; - color: #515155; - max-width: 32em; - width: 100%; - border: solid 2px #a6a7ab; - -webkit-box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.1); - box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.1); - -webkit-transition: border-color 0.2s; - transition: border-color 0.2s; - font-family: "Raleway"; -} - -form input[type=text]:focus:hover, form input[type=text]:focus, form input[type=email]:focus:hover, form input[type=email]:focus, form input[type=password]:focus:hover, form input[type=password]:focus, form textarea:focus:hover, form textarea:focus, .form input[type=text]:focus:hover, .form input[type=text]:focus, .form input[type=email]:focus:hover, .form input[type=email]:focus, .form input[type=password]:focus:hover, .form input[type=password]:focus, .form textarea:focus:hover, .form textarea:focus { - outline: none; - border: solid 2px #662D91; - -webkit-transition: border-color 0.2s; - transition: border-color 0.2s; -} - -form input[type=text]:hover, form input[type=email]:hover, form input[type=password]:hover, form textarea:hover, .form input[type=text]:hover, .form input[type=email]:hover, .form input[type=password]:hover, .form textarea:hover { - border-color: #515155; - -webkit-transition: border-color 0.2s; - transition: border-color 0.2s; -} - -form input[type=text]::-webkit-input-placeholder, form input[type=email]::-webkit-input-placeholder, form input[type=password]::-webkit-input-placeholder, form textarea::-webkit-input-placeholder, .form input[type=text]::-webkit-input-placeholder, .form input[type=email]::-webkit-input-placeholder, .form input[type=password]::-webkit-input-placeholder, .form textarea::-webkit-input-placeholder { - opacity: 0.4; -} - -form input[type=text]:-ms-input-placeholder, form input[type=email]:-ms-input-placeholder, form input[type=password]:-ms-input-placeholder, form textarea:-ms-input-placeholder, .form input[type=text]:-ms-input-placeholder, .form input[type=email]:-ms-input-placeholder, .form input[type=password]:-ms-input-placeholder, .form textarea:-ms-input-placeholder { - opacity: 0.4; -} - -form input[type=text]::-ms-input-placeholder, form input[type=email]::-ms-input-placeholder, form input[type=password]::-ms-input-placeholder, form textarea::-ms-input-placeholder, .form input[type=text]::-ms-input-placeholder, .form input[type=email]::-ms-input-placeholder, .form input[type=password]::-ms-input-placeholder, .form textarea::-ms-input-placeholder { - opacity: 0.4; -} - -form input[type=text]::placeholder, form input[type=email]::placeholder, form input[type=password]::placeholder, form textarea::placeholder, .form input[type=text]::placeholder, .form input[type=email]::placeholder, .form input[type=password]::placeholder, .form textarea::placeholder { - opacity: 0.4; -} - -form input[type=text].error, form input[type=email].error, form input[type=password].error, form textarea.error, .form input[type=text].error, .form input[type=email].error, .form input[type=password].error, .form textarea.error { - border: solid 2px #ff3939; - -webkit-transition: border-color 0.2s; - transition: border-color 0.2s; -} - -form input[type=text] + p, form input[type=email] + p, form input[type=password] + p, form textarea + p, .form input[type=text] + p, .form input[type=email] + p, .form input[type=password] + p, .form textarea + p { - margin-top: 0.2em; - -webkit-transition: border-color 0.2s; - transition: border-color 0.2s; -} - -form .form__block--twocol, .form .form__block--twocol { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -ms-flex-wrap: wrap; - flex-wrap: wrap; -} - -form .form__block--twocol > *[class^="form__block--"], .form .form__block--twocol > *[class^="form__block--"] { - -ms-flex-preferred-size: 100%; - flex-basis: 100%; - width: 100%; - -webkit-box-flex: 1; - -ms-flex-positive: 1; - flex-grow: 1; - padding: 0rem 0px; - margin: 0.8rem 0; -} - -form .form__block--toggle input[type=checkbox], form .form__block--checkbox input[type=checkbox], .form .form__block--toggle input[type=checkbox], .form .form__block--checkbox input[type=checkbox] { - -webkit-box-sizing: border-box; - box-sizing: border-box; - padding: 0; - margin: 4px 0 0; - margin-top: 0em; - opacity: 0; - z-index: 1; - position: absolute; - margin-left: -20px; -} - -form .form__block--submit, .form .form__block--submit { - margin: 2.5rem 0 2rem; -} - -form .form__block--checkbox, .form .form__block--checkbox { - margin: 1.5rem 0 1rem; -} - -form .form__block--checkbox input[type=checkbox] + label .onoffswitch-inner, .form .form__block--checkbox input[type=checkbox] + label .onoffswitch-inner { - display: inline-block; - height: 2.2rem; - width: 2.2rem; - background: #FFFFFF; - margin: 3px 20px 0 0; - -webkit-transition: 0.2s margin; - transition: 0.2s margin; - border: solid 2px #a6a7ab; - position: absolute; -} - -form .form__block--checkbox .label-text, .form .form__block--checkbox .label-text { - margin-left: 3.5rem; - display: inline-block; - line-height: 1.5; -} - -form .form__block--checkbox input[type=checkbox]:focus + label .onoffswitch-inner, .form .form__block--checkbox input[type=checkbox]:focus + label .onoffswitch-inner { - -webkit-box-shadow: 0px 0px 0px 1px #662D91; - box-shadow: 0px 0px 0px 1px #662D91; - border: solid 2px #662D91 !important; -} - -form .form__block--checkbox input[type=checkbox]:checked + label .onoffswitch-inner, .form .form__block--checkbox input[type=checkbox]:checked + label .onoffswitch-inner { - display: inline-block; - height: 2.2rem; - width: 2.2rem; - background: #1eb49c; - margin: 3px 20px 0 0; - -webkit-transition: 0.2s margin; - transition: 0.2s margin; - border: solid 2px #a6a7ab; - position: absolute; -} - -form .form__block--checkbox input[type=checkbox]:checked + label .onoffswitch-inner:before, form .form__block--checkbox input[type=checkbox]:checked + label .onoffswitch-inner:after, .form .form__block--checkbox input[type=checkbox]:checked + label .onoffswitch-inner:before, .form .form__block--checkbox input[type=checkbox]:checked + label .onoffswitch-inner:after { - position: absolute; - content: ''; - width: 3px; - height: 2.7rem; - background-color: rgba(5, 17, 30, 0.8); -} - -form .form__block--checkbox input[type=checkbox]:checked + label .onoffswitch-inner:before, .form .form__block--checkbox input[type=checkbox]:checked + label .onoffswitch-inner:before { - -webkit-transform: rotate(45deg); - transform: rotate(45deg); - margin-left: 7px; - margin-top: -5px; -} - -form .form__block--checkbox input[type=checkbox]:checked + label .onoffswitch-inner:after, .form .form__block--checkbox input[type=checkbox]:checked + label .onoffswitch-inner:after { - -webkit-transform: rotate(-45deg); - transform: rotate(-45deg); - margin-left: 7px; - margin-top: -5px; -} - -form .form__block--toggle, .form .form__block--toggle { - margin: 1.5rem 0 1rem; -} - -form .form__block--toggle input[type=checkbox] + label:before, .form .form__block--toggle input[type=checkbox] + label:before { - background-color: #FFF; - background-size: 40rem 20rem; - content: ""; - width: 3.9rem; - height: 1.9rem; - display: inline-block; - margin-right: -40px; - margin-top: 3px; - border-radius: 20px; - border: solid 2px #c6c7cc; - -webkit-transition: background-color .2s; - transition: background-color .2s; - -webkit-box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.2); - box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.2); - position: absolute; -} - -form .form__block--toggle input[type=checkbox]:focus + label:before, .form .form__block--toggle input[type=checkbox]:focus + label:before { - -webkit-box-shadow: 0px 0px 0px 1px #662D91; - box-shadow: 0px 0px 0px 1px #662D91; - border: solid 2px #662D91 !important; -} - -form .form__block--toggle input[type=checkbox]:checked + label:before, .form .form__block--toggle input[type=checkbox]:checked + label:before { - background-color: #1eb49c; - -webkit-transition: background-color .2s; - transition: background-color .2s; - border: solid 2px rgba(0, 0, 0, 0.2); -} - -form .form__block--toggle input[type=checkbox]:checked + label .onoffswitch-inner, .form .form__block--toggle input[type=checkbox]:checked + label .onoffswitch-inner { - display: inline-block; - background: #edeff5; - margin: 3px 0 0 20px; - border: solid 2px #a6a7ab; - height: 2.2rem; - width: 2.2rem; -} - -form .form__block--toggle input[type=checkbox] + label .onoffswitch-inner, .form .form__block--toggle input[type=checkbox] + label .onoffswitch-inner { - display: inline-block; - height: 2.2rem; - width: 2.2rem; - background: #edeff5; - margin: 3px 20px 0 0; - -webkit-transition: 0.2s margin; - transition: 0.2s margin; - border-radius: 1rem; - border: solid 2px #a6a7ab; - position: absolute; -} - -form .form__block--toggle .label-text, .form .form__block--toggle .label-text { - margin-left: 5rem; -} - -.js .form__input--file { - width: 0.1px; - height: 0.1px; - opacity: 0; - overflow: hidden; - position: absolute; - z-index: -1; -} - -.form__input--file + label { - padding: 0.7rem 0.9rem; - font-size: 1.6rem; - color: #515155; - max-width: 32em; - width: 100%; - border: solid 2px #a6a7ab; - -webkit-box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.1); - box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.1); - text-overflow: ellipsis; - white-space: nowrap; - cursor: pointer; - display: inline-block; - overflow: hidden; -} - -.form__input--file + label:focus { - outline: none; - border: solid 2px #662D91; -} - -.no-js .form__input--file + label { - display: none; -} - -.form__input--file:focus + label, -.form__input--file.has-focus + label { - outline: none; - border: solid 2px #662D91; -} - -.form__input--file + label * { -} - -.form__input--file + label .form__label--file { - background-color: #88898c; - color: #FFFFFF; - text-align: right; - float: right; - -webkit-transition: background-color 0.2s; - transition: background-color 0.2s; - -webkit-transition: color 0.2s; - transition: color 0.2s; -} - -.form__input--file:hover + label .form__label--file { - background-color: #515155; - color: rgba(255, 255, 255, 0.9); - -webkit-transition: background-color 0.2s; - transition: background-color 0.2s; - -webkit-transition: color 0.2s; - transition: color 0.2s; -} - -.form__input--file:focus + label .form__label--file { - background-color: #662D91; - color: rgba(255, 255, 255, 0.9); - -webkit-transition: background-color 0.2s; - transition: background-color 0.2s; - -webkit-transition: color 0.2s; - transition: color 0.2s; -} - -.form__input--file + label .form__input--selected { - text-align: left; -} - -.form__input--file + label { - color: #515155; -} - -.form__input--file + label { - border: solid 2px #a6a7ab; - -webkit-box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.1); - box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.1); - -webkit-transition: border-color 0.2s; - transition: border-color 0.2s; - background-color: #FFFFFF; - padding: 0; -} - -.form__input--file + label:hover { - border-color: #515155; - -webkit-transition: border-color 0.2s; - transition: border-color 0.2s; -} - -.form__input--file + label span, -.form__input--file + label strong { - padding: 0.7rem 1.25rem; -} - -.form__input--file + label span { - min-height: 2em; - display: inline-block; - text-overflow: ellipsis; - white-space: nowrap; - overflow: hidden; - vertical-align: top; -} - -.chosen-container.error .chosen-single, -.chosen-container.error .chosen-single span { - line-height: inherit; -} - -.chosen-container-single .chosen-search { - display: block; -} - -.chosen-container-multi .chosen-choices li.search-field input[type="text"] { - height: auto; -} - -.chosen-container { - display: block !important; -} - -.container-inline div.chosen-container div { - display: block; -} - -.chosen-container.error .chosen-choices, -.chosen-container.error .chosen-single { - border: 2px solid red; -} - -.filter-wrapper { - overflow: visible !important; -} - -.filter-wrapper:after { - content: ""; - display: block; - clear: both; -} - -@media (min-width: 578px) { - .form .form__block--twocol { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -ms-flex-wrap: wrap; - flex-wrap: wrap; - } - - .form .form__block--twocol > *[class^="form__block--"] { - -ms-flex-preferred-size: 50%; - flex-basis: 50%; - width: calc(50% - 15px); - -webkit-box-flex: 1; - -ms-flex-positive: 1; - flex-grow: 1; - } - - .form .form__block--twocol > *[class^="form__block--"]:nth-child(odd) { - padding-right: 15px; - } -} - -@media (min-width: 768px) { - .form-wrapper { - padding: 0px 0px 30px 0px; - } - - main.form-wrapper { - padding: 75px 15px 30px 15px; - } -} - -.icon.icon--cog { - background: url(../images/settings-icon.svg) no-repeat; - background-size: cover; - display: block; - height: 100%; - width: 100%; -} - -.list--file, .list--event { - padding: 0; -} - -.list--file .list__item--file, .list--file .list__item--event, .list--event .list__item--file, .list--event .list__item--event { - list-style: none; - background: transparent no-repeat left top; - background-size: 32px 38px; - padding-left: 45px; -} - -.list--file .list__item--file.list__item--pdf, .list--file .list__item--event.list__item--pdf, .list--event .list__item--file.list__item--pdf, .list--event .list__item--event.list__item--pdf { - background-image: url(../images/file--pdf.jpg); -} - -.list--file .list__item--file.list__item--url, .list--file .list__item--event.list__item--url, .list--event .list__item--file.list__item--url, .list--event .list__item--event.list__item--url { - background-image: url(../images/file--url.jpg); -} - -.list--file .list__item--file p, .list--file .list__item--event p, .list--event .list__item--file p, .list--event .list__item--event p { - margin: 0 0 0.8rem 0; -} - -.list--file .list__item--event, .list--event .list__item--event { - background-image: url(../images/article--event-icon.svg); -} - -.list--flex-space-evenly, header.profile .profile__networks, header.profile .profile__actions { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-pack: center; - -ms-flex-pack: center; - justify-content: center; -} - -.list--taxonomy { - padding: 0; - line-height: 2.3; -} - -.list--taxonomy .list__item--tag { - display: inline-block; - margin: 0.1rem 0.5rem 0.3rem 0; -} - -.list--taxonomy .list__item--tag::last-child { - margin-right: 0; -} - -.list--social-share { - padding: 0; -} - -.list--social-share .list__item--social-media { - display: inline-block; - margin-right: 1.8rem; -} - -.list--social-share .list__item--social-media:last-child { - margin-right: 0rem; -} - -@media (min-width: 768px) { - .list--social-share { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -ms-flex-wrap: wrap; - flex-wrap: wrap; - } - - .list--social-share .list__item--social-media { - width: calc( 50% - 3.6rem); - -webkit-box-flex: 1; - -ms-flex-positive: 1; - flex-grow: 1; - padding: 0.5rem 0; - } - - .list--social-share .list__item--social-media:last-child { - margin-right: 1.8rem; - } -} - -a.tag, li.tag { - background-color: #515155; - color: #FFFFFF; - border-radius: 2rem; - text-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; - font-size: 1.3rem; - border: solid 1px #515155; -} - -a.tag.tag--deletable, li.tag.tag--deletable { - padding-right: 0.2rem; -} - -a.tag { - padding: 0.45rem 0.6rem; -} - -a.tag:hover { - background-color: #c6c7cc; - color: #05111E; -} - -li.tag { - padding: 0.2rem 0.6rem; - line-height: 1.1; -} - -.tag button.close { - line-height: 2rem; - padding: 0.1rem; - border: none; - background-color: rgba(255, 255, 255, 0.8); - -webkit-box-shadow: 0 0 0 3px #515155 !important; - box-shadow: 0 0 0 3px #515155 !important; - cursor: pointer; - color: #ff3939; - border-radius: 10rem; - font-weight: 900; - height: 2rem; - min-width: 2rem; - margin-left: 0.6rem; - -webkit-transition: all 0.2s; - transition: all 0.2s; - text-align: center; -} - -.tag button.close span { - margin-top: -0.1rem; - display: block; -} - -.tag button.close:hover { - background-color: white; - -webkit-box-shadow: 0 0 0 3px rgba(255, 57, 57, 0.5) !important; - box-shadow: 0 0 0 3px rgba(255, 57, 57, 0.5) !important; - -webkit-transition: all 0.2s; - transition: all 0.2s; -} - -.tag button.close:focus { - outline: none; - -webkit-box-shadow: 0 0 0 3px #ff3939 !important; - box-shadow: 0 0 0 3px #ff3939 !important; - -webkit-transition: all 0.2s; - transition: all 0.2s; -} - -#skip-link, .skip-link { - position: fixed; - top: 1.5em; - left: 1.5em; - z-index: 1060; - background: #FFFFFF; - pading: 15px; -} - -.visually-hidden { - position: absolute !important; - clip: rect(1px 1px 1px 1px); - clip: rect(1px, 1px, 1px, 1px); - overflow: hidden; - height: 1px; -} - -.focusable:active, .focusable:focus { - position: static !important; - clip: auto; - overflow: visible; - height: auto; -} - -.responsive { - max-width: 100%; - height: auto; -} - -.no-display--sm { - position: absolute !important; - top: -9999px !important; - left: -9999px !important; -} - -.clearfix:after { - content: "."; - display: block; - height: 0; - clear: both; - visibility: hidden; -} - -.sideinfo { - font-size: 0.7em; - opacity: 0.8; -} - -.text-danger, a span.text-danger { - color: #ff3939; -} - -.text-center { - text-align: center; - max-width: 100%; -} - -.text-small { - font-size: 0.8em; - margin: 0.4em 0; -} - -.hr-text { - line-height: 1em; - position: relative; - outline: 0; - border: 0; - color: black; - text-align: center; - height: 1.5em; - opacity: 1; - width: 80%; - margin: 5rem auto 3rem auto; -} - -.hr-text:before { - content: ''; - background: #88898c; - position: absolute; - left: 0; - top: 50%; - width: 100%; - height: 1px; - z-index: 0; -} - -.hr-text:after { - content: attr(data-content); - position: relative; - display: inline-block; - font-weight: 700; - width: 25px; - height: 25px; - padding: 0 3rem; - line-height: 3rem; - color: #88898c; - background-color: #FFF; - z-index: 0; -} - -.no-margins { - margin: 0 !important; -} - -.no-child-margins > * { - margin-top: 0 !important; - margin-bottom: 0 !important; -} - -.small-top-margin { - margin-top: 5px !important; -} - -.extra-space--top { - margin-top: 5rem !important; -} - -.extra-space--bottom { - margin-bottom: 3rem !important; -} - -@media (min-width: 768px) { - .no-display--sm { - position: inherit !important; - top: auto !important; - left: auto !important; - } - - .no-display--md { - position: absolute !important; - top: -9999px !important; - left: -9999px !important; - } -} - -.account-info { - background: url("../images/account-info__background--idle.svg") no-repeat left top; - background-size: 100% 100%; - width: 23.4vw; - height: 26.5vw; - max-width: 125px; - max-height: 115px; - position: absolute; - right: 0; - margin-right: 0.3vw; - top: 0; -} - -.account-info.account-info--menu-only { - width: 80px; - height: 88px; - background-image: url(../images/account-info__background--idle.svg); - background-position: left top; - background-size: 100% 100%; -} - -.account-info.account-info--menu-only .account-info__wrapper { - margin-top: 9px; - margin-left: 9px; -} - -.account-info.account-info--notification { - width: 93px; - height: 85px; - background-image: url(../images/account-info__background--notification.svg); - background-position: left top; - background-size: 100% 100%; -} - -.account-info.account-info--notification .account-info__wrapper { - margin-top: 11px; - margin-left: 27px; -} - -.account-info a.account-info__wrapper { - display: block; - text-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; - width: 54px; - border-radius: 48px; - margin-top: 11px; - margin-left: 27px; - padding-bottom: 10px; - color: #FFFFFF; -} - -.account-info a.account-info__wrapper:hover { - text-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; -} - -.account-info a.account-info__wrapper img { - height: 100%; - width: 100%; - max-width: 48px; - border-radius: 90px; -} - -.account-info a.account-info__wrapper .account-info__trigger-icon { - float: right; - margin-top: -11px; - padding: 0 3px; - z-index: 5005; - position: relative; -} - -.account-info__profile { - position: absolute; - right: 10px; - top: 56px; - height: 18px; - width: 18px; -} - -.account-info__profile a { - text-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; - display: block; - height: 100%; -} - -.account-info .account-info__menu { - margin-top: 15px; -} - -.account-info .account-info__menu.account-info__dropdown { - display: none; - position: absolute; - width: 200px; - margin-left: calc( 65px - 200px); - margin-right: 15px; - background-color: #0c1935; - margin-top: -5px; - border-radius: 5px; - z-index: 5004; - -webkit-box-shadow: 0px 3px 3px 2px rgba(0, 0, 0, 0.3); - box-shadow: 0px 3px 3px 2px rgba(0, 0, 0, 0.3); - border: solid 1px rgba(255, 255, 255, 0.1); -} - -.account-info .account-info__menu.account-info__dropdown ul { - margin: 0; - list-style: none; - padding: 5px 15px; -} - -.account-info .account-info__menu.account-info__dropdown ul li { - border-bottom: solid 1px rgba(255, 255, 255, 0.5); - padding: 6px 0; - font-size: 1.6rem; -} - -.account-info .account-info__menu.account-info__dropdown ul li:first-child { - padding: 3px 0 6px; -} - -.account-info .account-info__menu.account-info__dropdown ul li:last-child { - border: none; - padding: 6px 0 3px; -} - -.account-info .account-info__menu.account-info__dropdown ul li a { - color: #FFFFFF; - text-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; - padding: 6px 0; -} - -.account-info .account-info__menu.account-info__dropdown ul li a:hover { - color: #ff397f; -} - -.account-info .account-info__menu.account-info__dropdown ul li svg, .account-info .account-info__menu.account-info__dropdown ul li i { - margin-right: 15px; -} - -.account-info .account-info__notifications { - height: 21px; - width: 21px; - margin-top: -50px; - margin-left: 7px; - position: absolute; -} - -.account-info .account-info__notifications a { - display: block; - height: 21px; - width: 21px; - background: #ff397f; - border-radius: 20px; - text-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; - color: #FFF; - text-align: center; - vertical-align: middle; - font-size: 1.2rem; - line-height: 20px; - font-weight: 700; -} - -@media (min-width: 768px) { - .account-info { - position: relative !important; - z-index: 5000; - } - - .account-info a.account-info__wrapper { - width: auto; - height: auto; - text-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; - color: #FFFFFF; - margin: 0 !important; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - padding: 0; - } - - .account-info a.account-info__wrapper:hover { - text-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; - background: rgba(255, 255, 255, 0.1); - border-top-left-radius: 5rem; - border-bottom-left-radius: 5rem; - border-top-right-radius: 0.5rem; - border-bottom-right-radius: 0.5rem; - color: #ff397f; - } - - .account-info a.account-info__wrapper:hover img { - border: 2px solid #ff397f; - -webkit-box-shadow: 0px 0px 0px 2px rgba(255, 255, 255, 0.1); - box-shadow: 0px 0px 0px 2px rgba(255, 255, 255, 0.1); - -webkit-transition: all 0.2s; - transition: all 0.2s; - } - - .account-info a.account-info__wrapper img { - display: block; - width: 100%; - max-width: 46px; - height: auto; - border: 2px solid transparent; - -webkit-box-shadow: 0px 0px 0px 2px rgba(255, 255, 255, 0.75); - box-shadow: 0px 0px 0px 2px rgba(255, 255, 255, 0.75); - margin-right: 15px; - } - - .account-info a.account-info__wrapper .account-info__trigger-icon { - padding: 0px 5px 0; - margin-top: -5px; - } - - .account-info.account-info--notification { - width: calc(33vw - 30px); - height: auto; - max-width: 300px; - margin-right: 0; - background-image: none; - position: relative; - } - - .account-info.account-info--menu-only { - position: relative; - width: calc(33vw - 30px); - height: auto; - max-height: none; - max-width: 300px; - background-image: none; - } - - .account-info .account-info__menu { - border-bottom: solid 1px rgba(255, 255, 255, 0.7); - } - - .account-info .account-info__menu.account-info__dropdown { - position: relative; - width: auto; - margin: 0; - background-color: transparent; - padding: 15px 0; - -webkit-box-shadow: none; - box-shadow: none; - border: none; - } - - .account-info .account-info__menu.account-info__dropdown ul { - display: block; - padding: 0; - margin: 0; - list-style: none; - } -} - -@media (min-width: 992px) { - .account-info.account-info--notification, .account-info.account-info--menu-only { - width: calc(25vw - 30px); - max-width: 270px; - } -} - -@media (min-width: 1200px) { - .account-info { - z-index: 5000; - } - - .account-info.account-info--notification { - position: relative !important; - } -} - -input.btn { - -webkit-appearance: none; - -moz-appearance: none; - appearance: none; -} - -.btn-list--right { - width: 100%; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-align: end; - -ms-flex-align: end; - align-items: flex-end; - -webkit-box-orient: vertical; - -webkit-box-direction: normal; - -ms-flex-direction: column; - flex-direction: column; - -webkit-box-pack: end; - -ms-flex-pack: end; - justify-content: flex-end; - -ms-flex-wrap: nowrap; - flex-wrap: nowrap; - -ms-flex-line-pack: start; - align-content: flex-start; -} - -.btn-list--right > .btn { - position: relative; - -webkit-box-flex: 1; - -ms-flex-positive: 1; - flex-grow: 1; -} - -.btn-list--right .opposite { - -ms-flex-item-align: start; - align-self: flex-start; - -webkit-box-ordinal-group: 0; - -ms-flex-order: -1; - order: -1; - -webkit-box-flex: 0; - -ms-flex-positive: 0; - flex-grow: 0; - position: absolute; -} - -.btn-list--left { - text-align: left; -} - -.btn-list--byside.btn-list--left { - float: left; -} - -.btn-list--byside.btn-list--right { - float: right; -} - -.btn[disabled], .btn.disabled { - opacity: 0.7 !important; - cursor: not-allowed !important; - color: rgba(5, 17, 30, 0.5) !important; - -webkit-transition: all 0.2s; - transition: all 0.2s; -} - -.btn-list--center { - text-align: center; - width: 80%; - max-width: 512px; - margin: auto; -} - -.btn-list--center > a.btn, .btn-list--center input.btn, .btn-list--center button.btn { - display: block; - margin: 2.5rem auto 2rem auto; -} - -.btn-list--center > a.btn:not(.btn--large):last-child, .btn-list--center input.btn:not(.btn--large):last-child, .btn-list--center button.btn:not(.btn--large):last-child { - margin: 2.5rem auto 2rem auto; -} - -.btn.btn--large { - width: 100%; - max-width: 32em; - padding: 0.3rem 1rem; - font-size: 1.8rem; -} - -.btn.btn--large .icon { - height: 1.8rem; - margin-right: 1rem; - display: inline-block; -} - -a.btn, input.btn, button.btn { - color: #05111E; - font-size: 1.3rem; - text-decoration: none; - padding: 0.1rem 1.5rem; - border-radius: 300px; - text-align: center; - text-shadow: none !important; - min-width: 12rem; - font-weight: 700; - line-height: 1.3; - margin: 15px 0; - border: none; - cursor: pointer; -} - -a.btn .icon, input.btn .icon, button.btn .icon { - height: 1.3rem; - margin-right: 1rem; - display: inline-block; -} - -a.btn:not(.btn--large):last-child, input.btn:not(.btn--large):last-child, button.btn:not(.btn--large):last-child { - margin-bottom: 0px; -} - -a.btn:not([disabled]):hover, input.btn:not([disabled]):hover, button.btn:not([disabled]):hover { - color: #FFFFFF; -} - -a.btn:focus, input.btn:focus, button.btn:focus { - -webkit-box-shadow: 0 0 0 4px #662D91 !important; - box-shadow: 0 0 0 4px #662D91 !important; - outline: none; -} - -.btn--green { - display: inline-block; - background: #1eb49c; - background-image: none; - -webkit-box-shadow: 0 0 0 4px rgba(30, 180, 156, 0.5) !important; - box-shadow: 0 0 0 4px rgba(30, 180, 156, 0.5) !important; - text-shadow: none; - -webkit-transition: all 0.2s ease; - transition: all 0.2s ease; - -webkit-transform: rotateX(0deg); - transform: rotateX(0deg); - -webkit-transform-style: preserve-3d; - transform-style: preserve-3d; -} - -.btn--green:not([disabled]):hover { - background: #18917e; - -webkit-transition: all 0.2s ease; - transition: all 0.2s ease; -} - -.btn--green:active { - background: #0c473d; -} - -.btn--blue { - display: inline-block; - background: #00c9ff; - background-image: none; - -webkit-box-shadow: 0 0 0 4px rgba(0, 201, 255, 0.5) !important; - box-shadow: 0 0 0 4px rgba(0, 201, 255, 0.5) !important; - text-shadow: none; - -webkit-transition: all 0.2s ease; - transition: all 0.2s ease; - -webkit-transform: rotateX(0deg); - transform: rotateX(0deg); - -webkit-transform-style: preserve-3d; - transform-style: preserve-3d; -} - -.btn--blue:not([disabled]):hover { - background: #00a9d6; - -webkit-transition: all 0.2s ease; - transition: all 0.2s ease; -} - -.btn--blue:active { - background: #006580; -} - -.btn--grey { - display: inline-block; - background: #c6c7cc; - background-image: none; - -webkit-box-shadow: 0 0 0 4px rgba(198, 199, 204, 0.5) !important; - box-shadow: 0 0 0 4px rgba(198, 199, 204, 0.5) !important; - text-shadow: none; - -webkit-transition: all 0.2s ease; - transition: all 0.2s ease; - -webkit-transform: rotateX(0deg); - transform: rotateX(0deg); - -webkit-transform-style: preserve-3d; - transform-style: preserve-3d; -} - -.btn--grey:not([disabled]):hover { - background: #b0b2b9; - -webkit-transition: all 0.2s ease; - transition: all 0.2s ease; -} - -.btn--grey:active { - background: #838590; -} - -.btn-list { - margin-top: 3rem; -} - -.flip { - -webkit-transform: rotateX(90deg); - transform: rotateX(90deg); - -webkit-transform-style: preserve-3d; - transform-style: preserve-3d; - -webkit-transition: all 0.2s; - transition: all 0.2s; -} - -@media (min-width: 768px) { - a.btn, input.btn, button.btn { - font-size: 1.6rem; - } - - .btn.btn--large { - padding: 0.4rem 0rem; - font-size: 2rem; - } - - .btn-list--center { - text-align: center; - } - - .btn-list--center > a.btn, .btn-list--center input.btn, .btn-list--center button.btn { - display: block; - margin: 2.5rem auto 2rem auto; - } - - .btn-list--center > a.btn:not(.btn--large):last-child, .btn-list--center input.btn:not(.btn--large):last-child, .btn-list--center button.btn:not(.btn--large):last-child { - margin: 2.5rem auto 2rem auto; - } -} - -.chosen-container { - position: relative; - width: 100% !important; - border-radius: 0; - display: block !important; - padding: 0.7rem 0.9rem; - font-size: 1.6rem; - line-height: 1.8; - color: #515155; - max-width: 32em; - width: 100%; - border: solid 2px #a6a7ab; - -webkit-box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.1); - box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.1); - -webkit-transition: border-color 0.2s; - transition: border-color 0.2s; - vertical-align: middle; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - transition: border-color 0.2s; -} - -.chosen-container:hover { - border-color: #515155; - -webkit-transition: border-color 0.2s; - transition: border-color 0.2s; -} - -.chosen-container:focus:hover, .chosen-container:focus { - outline: none; - border: solid 2px #662D91; - -webkit-transition: border-color 0.2s; - transition: border-color 0.2s; -} - -.form-item label { - display: block; - font-weight: 600; - margin-bottom: 0.3em; -} - -.chosen-container * { - -webkit-box-sizing: border-box; - box-sizing: border-box; -} - -.chosen-container .chosen-drop { - position: absolute; - top: 100%; - z-index: 1010; - width: calc(100% + 0.4rem); - padding: 0.7rem 0.9rem 0.7rem 1.6rem; - margin-left: -1.1rem; - border: solid 2px #a6a7ab; - border-top: 0; - background: #fff; - clip: rect(0, 0, 0, 0); -} - -.chosen-container:hover .chosen-drop { - border-color: #515155; - -webkit-transition: border-color 0.2s; - transition: border-color 0.2s; -} - -.chosen-container.chosen-with-drop .chosen-drop { - clip: auto; -} - -.chosen-container a { - cursor: pointer; -} - -.chosen-container .search-choice .group-name, .chosen-container a.chosen-single .group-name { - margin-right: 4px; - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; - font-weight: normal; - color: #515155; - text-decoration: none; - text-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; -} - -.chosen-container .search-choice .group-name:after, .chosen-container a.chosen-single .group-name:after { - content: ":"; - padding-left: 2px; - vertical-align: top; -} - -.chosen-container-single a.chosen-single { - position: relative; - display: block; - overflow: hidden; - padding: 0 0 0 8px; - height: 25px; - text-decoration: none; - white-space: nowrap; - line-height: 24px; - color: #515155; - text-decoration: none; - text-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; - font-size: 1.6rem; - font-family: Raleway; -} - -.chosen-container-single .chosen-default { - color: #999; -} - -.chosen-container-single a.chosen-single span { - display: block; - overflow: hidden; - margin-right: 26px; - text-overflow: ellipsis; - white-space: nowrap; - color: #515155; - text-decoration: none; - text-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; -} - -.chosen-container-single .chosen-single-with-deselect span { - margin-right: 38px; -} - -.chosen-container-single .chosen-single abbr { - position: absolute; - top: 6px; - right: 26px; - display: block; - width: 12px; - height: 12px; - background: url("chosen-sprite.png") -42px 1px no-repeat; - font-size: 1px; -} - -.chosen-container-single .chosen-single abbr:hover { - background-position: -42px -10px; -} - -.chosen-container-single.chosen-disabled .chosen-single abbr:hover { - background-position: -42px -10px; -} - -.chosen-container-single .chosen-single div { - position: absolute; - top: 0; - right: 0; - display: block; - width: 18px; - height: 100%; -} - -.chosen-container-single .chosen-single div b { - display: block; - width: 100%; - height: 100%; - background: url("chosen-sprite.png") no-repeat 0px 2px; -} - -.chosen-container-single .chosen-search { - position: relative; - z-index: 1010; - margin: 0; - padding: 3px 4px; - white-space: nowrap; -} - -.chosen-container-single .chosen-search input[type="text"] { - margin: 1px 0; - padding: 4px 20px 4px 5px; - width: 100%; - height: auto; - outline: 0; - border: 1px solid #aaa; - background: url("chosen-sprite.png") no-repeat 100% -20px; - font-size: 1em; - font-family: sans-serif; - line-height: normal; - border-radius: 0; - border: solid 2px #a6a7ab; -} - -.chosen-container-single .chosen-drop { - margin-top: -1px; - border-radius: 0 0 4px 4px; - background-clip: padding-box; -} - -.chosen-container-single.chosen-container-single-nosearch .chosen-search { - position: absolute; - clip: rect(0, 0, 0, 0); -} - -.chosen-container .chosen-results { - color: #444; - position: relative; - overflow-x: hidden; - overflow-y: auto; - margin: 0 4px 4px 0; - padding: 0 0 0 4px; - max-height: 240px; - -webkit-overflow-scrolling: touch; -} - -.chosen-container .chosen-results li { - display: none; - margin: 0; - padding: 5px 6px; - list-style: none; - line-height: 15px; - word-wrap: break-word; - -webkit-touch-callout: none; -} - -.chosen-container .chosen-results li.active-result { - display: list-item; - cursor: pointer; -} - -.chosen-container .chosen-results li.disabled-result { - display: list-item; - color: #ccc; - cursor: default; -} - -.chosen-container .chosen-results li.highlighted { - background-color: #662D91; - color: #fff; -} - -.chosen-container .chosen-results li.no-results { - color: #777; - display: list-item; - background: #f4f4f4; -} - -.chosen-container .chosen-results li.group-result { - display: list-item; - font-weight: bold; - cursor: default; -} - -.chosen-container .chosen-results li.group-option { - padding-left: 15px; -} - -.chosen-container .chosen-results li em { - font-style: normal; - text-decoration: underline; -} - -.chosen-container-multi .chosen-choices { - position: relative; - overflow: hidden; - margin: 0; - padding: 0 5px; - width: 100%; - height: auto; - border: 1px solid #aaa; - background-color: #fff; - background-image: -webkit-gradient(linear, left top, left bottom, color-stop(1%, #eee), color-stop(15%, #fff)); - background-image: linear-gradient(#eee 1%, #fff 15%); - cursor: text; -} - -.chosen-container-multi .chosen-choices li { - float: left; - list-style: none; -} - -.chosen-container-multi .chosen-choices li.search-field { - margin: 0; - padding: 0; - white-space: nowrap; -} - -.chosen-container-multi .chosen-choices li.search-field input[type="text"] { - margin: 1px 0; - padding: 0; - height: 25px; - outline: 0; - border: 0 !important; - background: transparent !important; - -webkit-box-shadow: none; - box-shadow: none; - color: #999; - font-size: 100%; - font-family: sans-serif; - line-height: normal; - border-radius: 0; - width: 25px; -} - -.chosen-container-multi .chosen-choices li.search-choice { - position: relative; - margin: 3px 5px 3px 0; - padding: 3px 20px 3px 5px; - border: 1px solid #aaa; - max-width: 100%; - border-radius: 3px; - background-color: #eeeeee; - background-image: -webkit-gradient(linear, left top, left bottom, color-stop(20%, #f4f4f4), color-stop(50%, #f0f0f0), color-stop(52%, #e8e8e8), to(#eee)); - background-image: linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eee 100%); - background-size: 100% 19px; - background-repeat: repeat-x; - background-clip: padding-box; - -webkit-box-shadow: 0 0 2px #fff inset, 0 1px 0 rgba(0, 0, 0, 0.05); - box-shadow: 0 0 2px #fff inset, 0 1px 0 rgba(0, 0, 0, 0.05); - color: #333; - line-height: 13px; - cursor: default; -} - -.chosen-container-multi .chosen-choices li.search-choice span { - word-wrap: break-word; -} - -.chosen-container-multi .chosen-choices li.search-choice .search-choice-close { - position: absolute; - top: 4px; - right: 3px; - display: block; - width: 12px; - height: 12px; - background: url("chosen-sprite.png") -42px 1px no-repeat; - font-size: 1px; -} - -.chosen-container-multi .chosen-choices li.search-choice .search-choice-close:hover { - background-position: -42px -10px; -} - -.chosen-container-multi .chosen-choices li.search-choice-disabled { - padding-right: 5px; - border: 1px solid #ccc; - background-color: #e4e4e4; - background-image: -webkit-gradient(linear, left top, left bottom, color-stop(20%, #f4f4f4), color-stop(50%, #f0f0f0), color-stop(52%, #e8e8e8), to(#eee)); - background-image: linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eee 100%); - color: #666; -} - -.chosen-container-multi .chosen-choices li.search-choice-focus { - background: #d4d4d4; -} - -.chosen-container-multi .chosen-choices li.search-choice-focus .search-choice-close { - background-position: -42px -10px; -} - -.chosen-container-multi .chosen-results { - margin: 0; - padding: 0; -} - -.chosen-container-multi .chosen-drop .result-selected { - display: list-item; - color: #ccc; - cursor: default; -} - -.chosen-container-active a.chosen-single { - color: #515155; - text-decoration: none; - text-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; -} - -.chosen-container-active.chosen-with-drop a.chosen-single div { - border-left: none; - background: transparent; -} - -.chosen-container-active.chosen-with-drop a.chosen-single div b { - background-position: -18px 2px; -} - -.chosen-container-active .chosen-choices { - border: 1px solid #5897fb; - -webkit-box-shadow: 0 0 5px rgba(0, 0, 0, 0.3); - box-shadow: 0 0 5px rgba(0, 0, 0, 0.3); -} - -.chosen-container-active .chosen-choices li.search-field input[type="text"] { - color: #222 !important; -} - -.chosen-disabled { - opacity: 0.5 !important; - cursor: default; -} - -.chosen-disabled .chosen-single { - cursor: default; -} - -.chosen-disabled .chosen-choices .search-choice .search-choice-close { - cursor: default; -} - -.chosen-rtl { - text-align: right; -} - -.chosen-rtl .chosen-single { - overflow: visible; - padding: 0 8px 0 0; -} - -.chosen-rtl .chosen-single span { - margin-right: 0; - margin-left: 26px; - direction: rtl; -} - -.chosen-rtl .chosen-single-with-deselect span { - margin-left: 38px; -} - -.chosen-rtl .chosen-single div { - right: auto; - left: 3px; -} - -.chosen-rtl .chosen-single abbr { - right: auto; - left: 26px; -} - -.chosen-rtl .chosen-choices li { - float: right; -} - -.chosen-rtl .chosen-choices li.search-field input[type="text"] { - direction: rtl; -} - -.chosen-rtl .chosen-choices li.search-choice { - margin: 3px 5px 3px 0; - padding: 3px 5px 3px 19px; -} - -.chosen-rtl .chosen-choices li.search-choice .search-choice-close { - right: auto; - left: 4px; -} - -.chosen-rtl.chosen-container-single .chosen-results { - margin: 0 0 4px 4px; - padding: 0 4px 0 0; -} - -.chosen-rtl .chosen-results li.group-option { - padding-right: 15px; - padding-left: 0; -} - -.chosen-rtl.chosen-container-active.chosen-with-drop .chosen-single div { - border-right: none; -} - -.chosen-rtl .chosen-search input[type="text"] { - padding: 4px 5px 4px 20px; - background: url("chosen-sprite.png") no-repeat -30px -20px; - direction: rtl; -} - -.chosen-rtl.chosen-container-single .chosen-single div b { - background-position: 6px 2px; -} - -.chosen-rtl.chosen-container-single.chosen-with-drop .chosen-single div b { - background-position: -12px 2px; -} - -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), only screen and (min-resolution: 144dpi), only screen and (min-resolution: 1.5dppx) { - .chosen-rtl .chosen-search input[type="text"], - .chosen-container-single .chosen-single abbr, - .chosen-container-single .chosen-single div b, - .chosen-container-single .chosen-search input[type="text"], - .chosen-container-multi .chosen-choices .search-choice .search-choice-close, - .chosen-container .chosen-results-scroll-down span, - .chosen-container .chosen-results-scroll-up span { - background-image: url("chosen-sprite@2x.png") !important; - background-size: 52px 37px !important; - background-repeat: no-repeat !important; - } -} - -.sub-section--comments__title { - padding-left: 3.6rem; - min-height: 3.7rem; - margin-bottom: 0.7rem; - background-image: url(../images/article--comment-icon.svg); - background-position: 0.5rem 0; - background-repeat: no-repeat; - background-size: 2.38rem 2.5rem; -} - -.sub-section--comments .indented { - margin-left: 0rem !important; - border-left: solid 2px #CCC; - padding-left: 1.5rem; -} - -.sub-section--comments .indented > .indented > .indented > .indented { - margin-left: 0rem; - border-left: none; - padding-left: 0rem; -} - -.sub-section--comments > ul { - padding: 0; - margin: 0; -} - -.sub-section--comments ul.links.inline { - margin: 0; - padding: 0; - padding-bottom: 15px; -} - -.sub-section--comments ul.links.inline li { - display: inline-block; -} - -.sub-section--comments li { - list-style: none; -} - -.sub-section--comments li .profile-shortinfo { - margin-top: 15px; -} - -.sub-section--comments .profile-shortinfo { - margin-bottom: -2rem; -} - -.sub-section--comments .profile-shortinfo ~ p { - border-left: solid 2px #CCC; - padding-left: 1.5rem; -} - -.sub-section--comments .profile-shortinfo ~ p + p { - border-left: solid 2px #CCC; - padding-left: 1.5rem; - margin-top: -1.6rem; - padding-top: 1.6rem; -} - -.sub-section--comments .comment-reply a { - padding-left: 2.6rem; - min-height: 3.7rem; - background-image: url(../images/article--comment-outline-icon.svg); - background-position: 0.5rem 0; - background-repeat: no-repeat; - background-size: 1.7rem 1.7rem; - text-decoration: none; -} - -.sub-section--comments .comment-edit a { - padding-left: 2.6rem; - min-height: 3.7rem; - background-image: url(../images/article--edit-outline-icon.svg); - background-position: 0.5rem 0; - background-repeat: no-repeat; - background-size: 1.7rem 1.7rem; - text-decoration: none; -} - -.sub-section--comments .comment-delete a { - padding-left: 2.6rem; - min-height: 3.7rem; - background-image: url(../images/article--delete-outline-icon.svg); - background-position: 0.5rem 0; - background-repeat: no-repeat; - background-size: 1.7rem 1.7rem; - text-decoration: none; -} - -.cta--wrapper { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - position: absolute; - top: 0; - width: 100%; -} - -.cta--sidebar { - color: #FFFFFF; - display: inline-block; - text-align: center; - width: 100%; - height: 3.5rem; - cursor: pointer; -} - -.cta--sidebar h3 { - margin-top: 0; - text-shadow: none; - color: #000; -} - -.cta--sidebar p { - margin: 0; - font-weight: 700; - text-shadow: none; - color: #000; - line-height: 3.5rem; - max-width: 100%; -} - -.cta--sidebar p span { - font-weight: 400; -} - -.cta--join { - background: rgba(102, 45, 145, 0.5); -} - -.cta--join:hover { - background: rgba(102, 45, 145, 0.8); - -webkit-transition: all 0.2s; - transition: all 0.2s; -} - -.cta--join:hover p { - color: #FFFFFF; -} - -.cta--signin { - background: rgba(102, 45, 145, 0.3); -} - -.cta--signin:hover { - background: rgba(102, 45, 145, 0.8); - -webkit-transition: all 0.2s; - transition: all 0.2s; -} - -.cta--signin:hover p { - color: #FFFFFF; -} - -@media (min-width: 768px) { - .cta--wrapper { - display: block; - position: relative; - top: auto; - } - - .cta--sidebar { - position: relative; - height: auto; - border-radius: 15px; - background-color: rgba(255, 255, 255, 0.2); - margin: 0px; - margin-bottom: 15px; - padding: 15px; - text-align: left; - -webkit-box-shadow: none; - box-shadow: none; - } - - .cta--sidebar h3, .cta--sidebar p { - color: #FFFFFF; - } - - .cta--sidebar p { - margin-bottom: 0; - margin-top: 1.4rem; - line-height: 1.8; - } -} - -.media--type-file { - margin-top: 16px; -} - -.field--type-file .file { - list-style: none; - background: transparent no-repeat left top; - background-size: 32px 38px; - padding-left: 45px; - display: block; - min-height: 38px; -} - -.field--type-file .file.file--mime-application-pdf { - background-image: url(../images/file--pdf.jpg); -} - -.field--type-file .file.file--mime-application-txt, .field--type-file .file.file--mime-application-rtf, .field--type-file .file.file--mime-application-doc, .field--type-file .file.file--mime-application-docx, .field--type-file .file.file--mime-application-odf, .field--type-file .file.file--mime-application-odg, .field--type-file .file.file--mime-application-odp, .field--type-file .file.file--mime-application-ods, .field--type-file .file.file--mime-application-odt, .field--type-file .file.file--mime-application-fodt, .field--type-file .file.file--mime-application-fodg, .field--type-file .file.file--mime-application-apges { - background-image: url(../images/file--txt.jpg); -} - -.field--type-file .file.file--mime-application-ppt, .field--type-file .file.file--mime-application-pptx, .field--type-file .file.file--mime-application-key { - background-image: url(../images/file--ppt.ppt); -} - -.field--type-file .file.file--mime-application-xls, .field--type-file .file.file--mime-application-xlsx, .field--type-file .file.file--mime-application-numbers { - background-image: url(../images/file--xls.jpg); -} - -.general-footer--card { - position: relative !important; - bottom: auto; - z-index: auto; - width: 100%; -} - -.general-footer--card ul.menu { - padding: 0; - margin: 1.5rem; - margin-top: 3rem; -} - -.general-footer--card ul.menu li { - display: inline-block; -} - -.general-footer--card ul.menu li::after { - content: " | "; -} - -.general-footer--card ul.menu li:last-child::after { - content: ""; -} - -.general-footer--card ul.menu li a { - color: #a6a7ab; - text-shadow: 0 2px 0 #FFFFFF, 0 3px 0 #FFFFFF, 1px 2px 0 #FFFFFF, -1px 2px 0 #FFFFFF; - -webkit-box-shadow: 0 1px 0 0 #662D91; - box-shadow: 0 1px 0 0 #662D91; - -webkit-transition: all .2s ease; - transition: all .2s ease; -} - -.general-footer--card ul.menu li a:hover { - color: #1a3773; - -webkit-box-shadow: 0 1px 0 0 #662D91; - box-shadow: 0 1px 0 0 #662D91; - -webkit-transition: all .2s ease; - transition: all .2s ease; -} - -@media (min-width: 768px) { - .general-footer { - position: fixed !important; - bottom: 10px; - z-index: 500; - width: 33%; - background: #26252B; - } - - .general-footer ul.menu { - padding: 0; - margin: 1.5rem; - margin-top: 3rem; - } - - .general-footer ul.menu li { - display: inline-block; - } - - .general-footer ul.menu li::after { - content: " | "; - } - - .general-footer ul.menu li a { - color: #a6a7ab; - text-shadow: 0 2px 0 #26252B, 0 3px 0 #26252B, 1px 2px 0 #26252B, -1px 2px 0 #26252B; - -webkit-box-shadow: 0 1px 0 0 #c6c7cc; - box-shadow: 0 1px 0 0 #c6c7cc; - -webkit-transition: all .2s ease; - transition: all .2s ease; - } - - .general-footer ul.menu li a:hover { - color: #1a3773; - -webkit-box-shadow: 0 1px 0 0 #FFFFFF; - box-shadow: 0 1px 0 0 #FFFFFF; - -webkit-transition: all .2s ease; - transition: all .2s ease; - } - - .general-footer--card { - position: relative !important; - bottom: auto; - z-index: auto; - width: 100%; - } - - .general-footer--card ul.menu { - padding: 0; - margin: 1.5rem; - margin-top: 3rem; - } - - .general-footer--card ul.menu li { - display: inline-block; - } - - .general-footer--card ul.menu li::after { - content: " | "; - } - - .general-footer--card ul.menu li a { - color: #a6a7ab; - text-shadow: 0 2px 0 #FFFFFF, 0 3px 0 #FFFFFF, 1px 2px 0 #FFFFFF, -1px 2px 0 #FFFFFF; - -webkit-box-shadow: 0 1px 0 0 #662D91; - box-shadow: 0 1px 0 0 #662D91; - -webkit-transition: all .2s ease; - transition: all .2s ease; - } - - .general-footer--card ul.menu li a:hover { - color: #1a3773; - -webkit-box-shadow: 0 1px 0 0 #662D91; - box-shadow: 0 1px 0 0 #662D91; - -webkit-transition: all .2s ease; - transition: all .2s ease; - } -} - -@media (min-width: 992px) { - .general-footer { - width: 25%; - max-width: 300px; - position: relative !important; - top: auto !important; - left: auto !important; - right: auto !important; - bottom: auto; - height: 100vh; - float: right; - background-color: #26252B; - background-image: url(../images/body-bckgrd--md.svg); - background-repeat: no-repeat; - background-position: 50% top; - background-attachment: fixed; - background-size: 100% 80px; - z-index: 4; - padding: 60px 15px; - padding-bottom: 500em; - margin-bottom: -500em; - } - - .general-footer > * { - position: fixed; - width: calc(25% - 30px); - max-width: 270px; - } - - .general-footer ul.menu { - position: fixed; - width: 100%; - bottom: 0; - } - - .general-footer--card { - background-color: transparent; - bottom: auto; - z-index: auto; - width: 100%; - height: auto; - padding: 0; - margin-bottom: 0; - } - - .general-footer--card > * { - position: auto; - width: 100%; - max-width: 100%; - } - - .general-footer--card ul.menu { - position: relative; - width: 100%; - bottom: 0; - } -} - -.new-item { - position: fixed; - right: 0px; - bottom: 10px; - width: 21vw; - text-align: center; -} - -.new-item .create-new { - background: url(../images/new-item__button__background--sm.svg) no-repeat center center; - background-size: 42px 42px; - border: none; - height: 45px; - width: 45px; - font-size: 2.2rem; -} - -.pre-banner { - width: 100%; - max-width: 768px; - background-image: url(../images/header-arch-only.svg); - background-repeat: no-repeat; - background-size: 100% 82px; - position: fixed; - left: 50%; - -webkit-transform: translateX(-50%); - transform: translateX(-50%); - min-height: 82px; - z-index: 1200; -} - -.logo-wrapper--index { - -webkit-box-shadow: 0px 0px 82px 13px rgba(255, 255, 255, 0.6); - box-shadow: 0px 0px 82px 13px rgba(255, 255, 255, 0.6); - background-color: rgba(255, 255, 255, 0.4); - padding: 15px; - border-radius: 35px; - max-width: calc(32em + 30px); - margin: auto; - -webkit-box-sizing: border-box; - box-sizing: border-box; -} - -.background--talk { - background-image: url(../images/homepage-illustration.jpg); - background-repeat: no-repeat; - background-size: 768px 400px; - background-size: contain; - background-position: center top; - min-height: calc(20vh + 82px); - background-color: #FFF; - padding-top: 120px; - text-align: center; -} - -.logo { - width: 100%; - max-width: 515px; - height: auto; - margin: auto; -} - -@media (min-width: 768px) { - .general-header { - position: fixed; - z-index: 5; - right: auto; - bottom: auto; - left: 0; - top: 0; - width: 33%; - background: #26252B; - float: left; - height: 100vh; - padding: 90px 15px 130px; - overflow: auto; - } - - .new-item { - position: relative; - right: auto; - bottom: auto; - width: 100%; - text-align: left; - } - - .new-item .create-new { - display: block; - background: white; - background-size: auto; - border: none; - height: auto; - width: 100%; - font-size: 1.6rem; - line-height: 1.8; - padding: 0.5rem 0.8rem; - border-radius: 0.5rem; - border: solid 3px #00c9ff; - color: #05111E; - text-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; - -webkit-transition: background-color 0.2s; - transition: background-color 0.2s; - } - - .new-item .create-new svg { - margin-right: 1.5rem; - } - - .new-item .create-new:hover { - -webkit-box-shadow: none; - box-shadow: none; - background: #00c9ff; - -webkit-transition: background-color 0.2s; - transition: background-color 0.2s; - color: #05111E; - } - - .new-item .create-new.active { - background: rgba(255, 255, 255, 0.1); - border-bottom: none; - } -} - -@media (min-width: 992px) { - .general-header { - position: fixed; - right: auto; - bottom: auto; - left: auto; - top: auto; - width: 25%; - max-width: 300px; - background: #26252B; - float: left; - height: 100vh; - padding: 90px 15px 15px; - } -} - -.nav--tabs::-webkit-scrollbar { - width: 2px; - height: 2px; -} - -.nav--tabs::-webkit-scrollbar-button { - width: 2px; - height: 2px; -} - -.inpage-nav { - border-bottom: solid 1px #dfe0e5; -} - -.inpage-nav .nav--tabs { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-orient: horizontal; - -webkit-box-direction: normal; - -ms-flex-direction: row; - flex-direction: row; - -ms-flex-wrap: nowrap; - flex-wrap: nowrap; - margin-bottom: 0; - padding: 0 0 0 15px; - width: 100%; - overflow-y: auto; -} - -.inpage-nav .nav--tabs li { - list-style: none; - display: block; - -ms-flex-preferred-size: 100px; - flex-basis: 100px; - -webkit-box-flex: 0; - -ms-flex: 0; - flex: 0; - padding: 0 15px 2px; -} - -.inpage-nav .nav--tabs li:first-child { - padding-left: 0; -} - -.inpage-nav .nav--tabs li a { - display: block; - white-space: nowrap; - -webkit-box-shadow: none; - box-shadow: none; - box-shadow: none; -} - -.inpage-nav .nav--tabs li a:after { - content: ""; - display: block; - height: 0px; - background-color: #FFFFFF; - margin-top: 8px; - padding: 0 9px; - margin-bottom: -4px; - -webkit-transition: all 0.2s; - transition: all 0.2s; -} - -.inpage-nav .nav--tabs li a:hover::after { - margin-top: 2px; - height: 5px; - background-color: #a6a7ab; - -webkit-transition: all 0.2s; - transition: all 0.2s; -} - -.inpage-nav .nav--tabs li a.active { - color: #515155; - font-weight: 600; -} - -.inpage-nav .nav--tabs li a.active::after { - margin-top: 2px; - height: 5px; - background-color: #662D91; - -webkit-transition: all 0.2s; - transition: all 0.2s; -} - -.inpage-nav .nav--tabs li a.active:hover { - cursor: default; -} - -.tab-content .tab-pane { - display: none; -} - -.tab-content .tab-pane.active { - display: block; -} - -.logo-area { - background-image: -webkit-gradient(linear, left top, left bottom, from(#1a3773), to(#1a3773)), url("../images/logo-area-bckgrd--sm.svg"); - background-image: linear-gradient(#1a3773, #1a3773), url("../images/logo-area-bckgrd--sm.svg"); - background-repeat: no-repeat; - background-size: 100vw 25px, 100vw 10vh; - background-position: center 0, center 25px; - height: 100px; - width: 100vw; -} - -img.logo { - height: auto; -} - -img.logo-cover { - max-width: 100%; - height: auto; -} - -h1.logo--title { - margin: 0; - padding: 15px; - padding-bottom: 0; -} - -a.logo__link { - text-decoration: none; - text-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; - display: block; - background-image: url(../images/logo_futurium_lab_negatif.svg); - background-size: contain; - background-repeat: no-repeat; - width: calc(70vw - 15px); - max-width: 300px; - height: 0; - padding-top: 13.6%; -} - -a.logo__link span { - visibility: hidden; -} - -@media (min-width: 768px) { - .logo-area { - position: fixed; - z-index: 6; - top: 0; - background-image: none; - width: 33%; - padding: 15px; - } - - h1.logo--title { - margin: 0; - padding: 0px; - } - - a.logo__link { - width: 100%; - background-size: cover; - } -} - -@media (min-width: 992px) { - .logo-area { - width: 25%; - max-width: 300px; - } - - h1.logo--title { - max-width: 270px; - } -} - -.navigation-menu { - position: fixed; - bottom: 0px; - background: url(../images/navigation-menu__background--sm.svg) no-repeat center bottom; - background-size: 100vw 27vw; - width: 100vw; - height: 25vw; - max-height: 100px; - z-index: 1000; -} - -.navigation-menu__list { - float: left; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - padding: 0; - -ms-flex-pack: distribute; - justify-content: space-around; - width: 36vw; - height: 25vw; - max-height: 100px; - -webkit-box-align: end; - -ms-flex-align: end; - align-items: flex-end; - margin: 0; -} - -.navigation-menu__list li { - display: inline-block; - font-size: 2rem; - text-align: center; - line-height: 45px; - width: 16vw; - height: 12.5vw; - max-width: 54px; - max-height: 39px; -} - -.navigation-menu__list li.active { - background: url(../images/navigation-menu__item--active__background--sm.svg) no-repeat center bottom; - background-size: cover; - border-bottom: solid 2px #ff397f; -} - -.navigation-menu__list li.active a { - color: #ff88b2; -} - -.navigation-menu__list li a { - color: #FFFFFF; - text-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; -} - -.not-signed .navigation-menu, .not-signed .new-item { - display: none; -} - -@media (max-width: 767.98px) and (orientation: landscape) { - .navigation-menu { - background-position: center bottom; - background-size: 100vw 23vh; - } - - .navigation-menu__list { - padding: 0; - margin: 0vw 1vw 0; - } -} - -@media (min-width: 768px) { - .not-signed .navigation-menu { - display: block; - } - - .navigation-menu { - position: relative; - bottom: auto; - background: none; - width: auto; - height: auto; - max-height: none; - padding-top: 15px; - } - - .navigation-menu__list { - width: auto; - height: auto; - max-height: none; - display: block; - float: none; - -webkit-box-align: baseline; - -ms-flex-align: baseline; - align-items: baseline; - margin: 0; - } - - .navigation-menu__list li { - display: block; - width: auto; - height: auto; - max-width: none; - max-height: none; - text-align: left; - font-size: 1.6rem; - line-height: inherit; - padding: 0.5rem 0.8rem; - border-radius: 0.5rem; - } - - .navigation-menu__list li svg { - margin-right: 1.5rem; - } - - .navigation-menu__list li a { - color: #FFFFFF; - text-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; - padding: 6px 0; - box-shadow: none; - } - - .navigation-menu__list li a:hover { - color: #ff397f; - -webkit-box-shadow: none; - box-shadow: none; - } - - .navigation-menu__list li a:hover .badge { - background-color: #ff397f; - -webkit-transition: all 0.2s; - transition: all 0.2s; - } - - .navigation-menu__list li.active { - background: rgba(255, 255, 255, 0.1); - border-bottom: none; - } - - .navigation-menu__list li.active .fas { - color: #ff397f; - } - - .navigation-menu__list--feeds svg { - min-width: 2rem; - } - - .navigation-menu__list--tools { - position: fixed; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-pack: end; - -ms-flex-pack: end; - justify-content: flex-end; - top: 0px; - z-index: 10001; - background-image: url("../images/logo-area-bckgrd--md.svg"); - background-repeat: no-repeat; - background-size: 100% 80px; - background-position: left top; - height: 100px; - width: 100vw; - margin-left: -15px; - } - - .navigation-menu__list--tools:empty { - background-image: url(../images/logo-area-bckgrd--md--no-action.svg); - } - - .navigation-menu__list--tools.navigation-menu__list--single-tool { - background-image: url(../images/logo-area-bckgrd--md--one-action.svg); - } - - .navigation-menu__list--tools .navigation-menu__item { - display: inline-block; - padding: 0; - margin-left: 0px; - } - - .navigation-menu__list--tools .navigation-menu__item:only-child { - display: block; - margin: 0px 0% 0 -2.45% !important; - position: absolute; - height: 54px; - width: 54px; - } - - .navigation-menu__list--tools .navigation-menu__item:first-child { - display: block; - margin: 11px 0% 0 -8.75%; - position: absolute; - height: 54px; - width: 54px; - } - - .navigation-menu__list--tools .navigation-menu__item:nth-child(2) { - display: block; - margin: 0px 0% 0 -3.75%; - position: absolute; - height: 42px; - width: 42px; - } - - .navigation-menu__list--tools .navigation-menu__item--tool { - text-align: center; - display: inline-block; - background-image: url(../images/navigation-tools__btn__background.svg); - background-repeat: none; - color: #05111E; - } - - .navigation-menu__list--tools .navigation-menu__item--tool.navigation-menu__item--filter { - height: 54px; - width: 54px; - background-size: 54px 54px; - font-size: 2rem; - padding-top: 0.9rem; - } - - .navigation-menu__list--tools .navigation-menu__item--tool.navigation-menu__item--filter svg { - margin: auto; - } - - .navigation-menu__list--tools .navigation-menu__item--tool.navigation-menu__item--search { - background-size: 42px 42px; - display: inline-block; - line-height: 42px; - height: 42px; - width: 42px; - margin: 30px 20px 0 8px; - } - - .navigation-menu__list--tools .navigation-menu__item--tool.navigation-menu__item--search svg { - margin: auto; - } - - .navigation-menu .badge { - background: rgba(255, 255, 255, 0.8); - padding: 0rem 0.5rem 0.1rem; - border-radius: 0.5rem; - color: #05111E; - text-align: center; - } -} - -@media (min-width: 992px) { - .navigation-menu__list--tools { - background-size: 100% 80px; - background-position: left top; - height: 100px; - width: 75vw; - max-width: 900px; - margin-left: -15px; - } - - .navigation-menu__list--tools .navigation-menu__item:only-child { - display: block; - margin: 0px 0% 0 -18px !important; - position: absolute; - height: 54px; - width: 54px; - } -} - -@media (min-width: 1100px) { - .navigation-menu__list--tools .navigation-menu__item:only-child { - display: block; - margin: 0px 0% 0 -2.75% !important; - position: absolute; - height: 54px; - width: 54px; - } -} - -.newsfeed { - margin: 0 -15px; -} - -.sub-section { - border-top: solid 1px #a6a7ab; - margin-bottom: 16px; -} - -.field--type-video { - position: relative; - padding-bottom: 56.25%; - padding-top: 30px; - height: 0; - overflow: hidden; -} - -.field--type-video iframe, -.field--type-video object, -.field--type-video embed { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; -} - -.newsfeed__item h2 { - padding-left: 32px; - background: transparent left top no-repeat; - background-size: 22px 24px; - margin: 0 0 1.8rem 0; -} - -.newsfeed__item h2 .newsfeed__item__state { - opacity: 0.8; - white-space: nowrap; -} - -.newsfeed__item h2 a { - font-family: 'Raleway'; - font-weight: 800; - color: #26252B; - text-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; -} - -.newsfeed__item h2 a:hover { - color: #662D91; - text-shadow: 0 2px 0 #FFFFFF, 0 3px 0 #FFFFFF, 1px 2px 0 #FFFFFF, -1px 2px 0 #FFFFFF; - -webkit-box-shadow: 0 1px 0 0 #662D91; - box-shadow: 0 1px 0 0 #662D91; -} - -.newsfeed__item .field--name-field-ngf-cover-image, .newsfeed__item .field--name-field-media-image { - border-radius: 10px; - background: #1f1e23; - max-height: 320px; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-pack: center; - -ms-flex-pack: center; - justify-content: center; - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - overflow: hidden; -} - -.newsfeed__item .field--name-field-ngf-cover-image img.responsive, .newsfeed__item .field--name-field-media-image img.responsive { - max-height: 320px; - width: auto; - -ms-flex-negative: 0; - flex-shrink: 0; - display: block; -} - -.newsfeed__legend-copyright { - font-size: 1.3rem; - margin-top: 0.1em; - color: #05111E; - opacity: 0.8; - text-align: center; - max-width: 100%; -} - -.newsfeed__legend-copyright span:after { - content: " | "; - display: inline; -} - -.newsfeed__legend-copyright span:last-child:after { - content: ""; -} - -.newsfeed__legend-copyright span a { - color: #515155 !important; - -webkit-box-shadow: 0 1px 0 0 #515155 !important; - box-shadow: 0 1px 0 0 #515155 !important; -} - -.newsfeed__legend-copyright span a:hover { - color: #662D91 !important; - -webkit-box-shadow: 0 1px 0 0 #662D91 !important; - box-shadow: 0 1px 0 0 #662D91 !important; -} - -.newsfeed__item--ngf-discussion h2 { - background-image: url(../images/article--discussion-icon.svg); - background-size: 2.38rem 2.5rem; -} - -.newsfeed__item--ngf-event h2 { - background-image: url(../images/article--event-icon.svg); - background-size: 2.38rem 2.5rem; -} - -.newsfeed__item--unpublished h2 { - background-image: url(../images/article--draft-icon.svg); - background-size: 2.38rem 2.5rem; -} - -.newsfeed__item--pinned h2 { - background-image: url(../images/article--pinned-icon.svg); - background-size: 2.38rem 2.5rem; - padding-left: 25px; -} - -.newsfeed__item--teaser { - background-image: url(../images/hr--wavy.svg); - background-repeat: no-repeat; - background-position: center top; - padding: 7.5rem 15px 4rem 15px; - background-size: 100% 40px; - margin-top: -30px; -} - -.newsfeed__item--teaser:first-child { - padding-top: 4rem; - background-image: none !important; - margin-top: 0px; -} - -.newsfeed__item--pinned { - color: #05111E; - background-image: url(../images/hr--wavy.svg), -webkit-gradient(linear, left top, left bottom, color-stop(50%, #f0e7f7), color-stop(50%, #f0e7f7)); - background-image: url(../images/hr--wavy.svg), linear-gradient(#f0e7f7 50%, #f0e7f7 50%); - background-repeat: no-repeat, no-repeat; - background-position: center top, center bottom; - background-size: 100% 40px, 100% calc(100% - 28px); -} - -.newsfeed__item--pinned a, .newsfeed__item--pinned a:hover, .newsfeed__item--pinned h2 a, .newsfeed__item--pinned h2 a:hover { - text-shadow: 0 2px 0 #f0e7f7, 0 3px 0 #f0e7f7, 1px 2px 0 #f0e7f7, -1px 2px 0 #f0e7f7; -} - -.newsfeed__item--pinned.newsfeed__item--teaser:first-child { - background-color: #f0e7f7; -} - -.newsfeed__item--unpublished { - color: #05111E; - background-image: url(../images/hr--wavy.svg), -webkit-gradient(linear, left top, left bottom, color-stop(50%, #ffebeb), color-stop(50%, #ffebeb)); - background-image: url(../images/hr--wavy.svg), linear-gradient(#ffebeb 50%, #ffebeb 50%); - background-repeat: no-repeat, no-repeat; - background-position: center top, center bottom; - background-size: 100% 40px, 100% calc(100% - 28px); -} - -.newsfeed__item--unpublished > * a, .newsfeed__item--unpublished > * a:hover, .newsfeed__item--unpublished h2 a, .newsfeed__item--unpublished h2 a:hover { - text-shadow: 0 2px 0 #ffebeb, 0 3px 0 #ffebeb, 1px 2px 0 #ffebeb, -1px 2px 0 #ffebeb; -} - -.newsfeed__item--unpublished.newsfeed__item--teaser:first-child { - background-color: #ffebeb; -} - -.profile-shortinfo { - margin-bottom: 2rem; -} - -.profile-shortinfo.profile-shortinfo--group { - background: url(../images/profile-shortinfo--group__background.svg) no-repeat left top; - background-size: 5.7rem 8.3rem; -} - -.profile-shortinfo.profile-shortinfo--group .profile-shortinfo__ilustration { - width: 5.7rem; - height: 8.3rem; - margin-right: 1.7rem; - float: left; -} - -.profile-shortinfo.profile-shortinfo--group img.responsive.profile-shortinfo__picture--account { - margin-left: 0.5rem; - margin-top: 0.6rem; -} - -.profile-shortinfo.profile-shortinfo--no-group { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - background: none; -} - -.profile-shortinfo.profile-shortinfo--no-group .profile-shortinfo__ilustration { - width: 5.6rem; - height: 5.6rem; - margin-right: 1.7rem; - -webkit-box-flex: 0; - -ms-flex: 0 0 5.6rem; - flex: 0 0 5.6rem; - border-radius: 100px; - border: solid 5px rgba(255, 57, 127, 0.5); -} - -.profile-shortinfo.profile-shortinfo--no-group .profile-shortinfo__action { - -webkit-box-flex: 0; - -ms-flex: 0 0 5.6rem; - flex: 0 0 5.6rem; -} - -.profile-shortinfo.profile-shortinfo--no-group img.responsive.profile-shortinfo__picture--account { - margin-left: 0rem; - margin-top: 0rem; -} - -.profile-shortinfo.profile-shortinfo--no-group .profile-shortinfo__link.profile-shortinfo__link--account { - margin-left: 0rem; - margin-top: 0rem; -} - -.profile-shortinfo img.responsive.profile-shortinfo__picture--account { - width: 4.6rem; - height: 4.6rem; - border-radius: 100px; - display: block; -} - -.profile-shortinfo img.responsive.profile-shortinfo__picture--group { - margin-left: 3rem; - margin-top: 5px; - width: 2rem; - height: 2rem; - border-radius: 100px; - display: block; -} - -.profile-shortinfo .profile-shortinfo__link { - text-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; -} - -.profile-shortinfo .profile-shortinfo__link img.responsive.profile-shortinfo__picture--account { - margin-left: 0; - margin-top: 0; - width: calc(4.6rem - 4px); - height: calc(4.6rem - 4px); -} - -.profile-shortinfo .profile-shortinfo__link img.responsive.profile-shortinfo__picture--group { - margin-left: 0; - margin-top: 0; - width: calc(2rem - 2px); - height: calc(2rem - 2px); -} - -.profile-shortinfo .profile-shortinfo__link--group { - border-radius: 100px; - border: solid 1px #ff397f; - -webkit-transition: border 0.2s; - transition: border 0.2s; - display: block; - width: 2rem; - height: 2rem; - margin-left: 3rem; - margin-top: 5px; - border: solid 1px #ff397f; - transition: border 0.2s; -} - -.profile-shortinfo .profile-shortinfo__link--group:hover, .profile-shortinfo .profile-shortinfo__link--group:focus { - text-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; - background-color: #662D91; - outline: none; - border: solid 1px #662D91; - -webkit-transition: border 0.2s; - transition: border 0.2s; -} - -.profile-shortinfo .profile-shortinfo__link--group:hover img, .profile-shortinfo .profile-shortinfo__link--group:focus img { - opacity: 0.6; -} - -.profile-shortinfo .profile-shortinfo__link--account { - border-radius: 100px; - border: solid 2px #ff397f; - -webkit-transition: border 0.2s; - transition: border 0.2s; - display: block; - width: 4.6rem; - height: 4.6rem; - margin-left: 0.5rem; - margin-top: 0.6rem; -} - -.profile-shortinfo .profile-shortinfo__link--account:hover, .profile-shortinfo .profile-shortinfo__link--account:focus { - text-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; - background-color: #662D91; - outline: none; - border: solid 2px #662D91; - -webkit-transition: border 0.2s; - transition: border 0.2s; -} - -.profile-shortinfo .profile-shortinfo__link--account:hover img, .profile-shortinfo .profile-shortinfo__link--account:focus img { - opacity: 0.6; -} - -.profile-shortinfo__details { - float: left; - width: calc(100% - 7.4rem); -} - -.profile-shortinfo__details .profile-shortinfo__author { - font-size: 2rem; - font-weight: 700; - color: #515155; - margin: 0; - padding: 0.2rem 0 0 0; -} - -.profile-shortinfo__details .profile-shortinfo__author .profile-shortinfo__account-link { - text-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; - font-weight: 700; - color: #515155; -} - -.profile-shortinfo__details .profile-shortinfo__author .profile-shortinfo__account-link:hover { - color: #662D91; - text-shadow: 0 2px 0 #FFFFFF, 0 3px 0 #FFFFFF, 1px 2px 0 #FFFFFF, -1px 2px 0 #FFFFFF; - -webkit-box-shadow: 0 1px 0 0 #662D91; - box-shadow: 0 1px 0 0 #662D91; -} - -.profile-shortinfo__details .profile-shortinfo__metadata { - margin-top: 0.2rem; - line-height: 1.4; -} - -.profile-listing { - padding: 0 0px; - margin-top: 30px; -} - -header.profile { - text-align: center; - padding-left: 0px; - padding-right: 0px; -} - -header.profile ~ .inpage-nav { - margin-left: -15px; - margin-right: -15px; -} - -header.profile ~ .newsfeed { - margin-left: -15px; - margin-right: -15px; -} - -header.profile .profile__pic { - width: 100%; - height: 100%; - border-radius: 300px; -} - -header.profile a.profile__pic__link { - display: block; - width: 100px; - height: 100px; - margin: auto; - padding: 2px; - background-color: #ff397f; - border: solid 2px #ff88b2; - border-radius: 300px; - text-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; - text-decoration: none; -} - -header.profile a.profile__pic__link:hover { - text-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; - background-color: #662D91; -} - -header.profile a.profile__pic__link:hover .profile__pic { - opacity: 0.8; -} - -header.profile h2 { - margin-bottom: 0rem; - color: #26252B; -} - -header.profile h2 a { - font-weight: 600; - color: #26252B; - text-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; - -webkit-transition: all .2s ease; - transition: all .2s ease; -} - -header.profile h2 + h4 { - margin-top: 0.4rem; -} - -header.profile h2 + h4 a { - color: #515155; - font-weight: 600; -} - -header.profile .profile__link--about { - display: inline-block; - margin-bottom: 1.8rem; - font-size: 1.4rem; - line-height: 1.2; - -webkit-transition: margin .2s; - transition: margin .2s; -} - -header.profile .profile__link--about i, header.profile .profile__link--about svg { - margin-left: 0rem; - -webkit-transition: margin .2s; - transition: margin .2s; -} - -header.profile .profile__link--about:hover { - margin-left: 0.5rem; - -webkit-transition: margin .2s; - transition: margin .2s; -} - -header.profile .profile__link--about:hover i, header.profile .profile__link--about:hover svg { - margin-left: 0.5rem; - -webkit-transition: margin .2s; - transition: margin .2s; -} - -header.profile .profile__link { - -webkit-box-shadow: none; - box-shadow: none; -} - -header.profile .profile__link:hover { - -webkit-box-shadow: none; - box-shadow: none; -} - -header.profile .profile__qrcode { - max-width: 100%; - height: auto; -} - -header.profile .profile__link--back { - display: inline-block; - margin-bottom: 1.8rem; - font-size: 1.4rem; - line-height: 1.2; - -webkit-transition: margin .2s; - transition: margin .2s; -} - -header.profile .profile__link--back i, header.profile .profile__link--back svg { - margin-right: 0rem; - -webkit-transition: margin .2s; - transition: margin .2s; -} - -header.profile .profile__link--back:hover { - margin-right: 0.5rem; - -webkit-transition: margin .2s; - transition: margin .2s; -} - -header.profile .profile__link--back:hover i, header.profile .profile__link--back:hover svg { - margin-right: 0.5rem; - -webkit-transition: margin .2s; - transition: margin .2s; -} - -header.profile .profile__meta, header.profile .profile__location { - padding: 0; - margin: 0; -} - -header.profile .profile__location { - margin-top: 1.8rem; -} - -header.profile .profile__location li::after { - display: inline-block; - content: "|"; - padding: 0 1rem; -} - -header.profile .profile__location li:last-child::after { - display: inline-block; - content: ""; - padding: 0 0rem; -} - -header.profile .profile__meta li, header.profile .profile__location li { - font-weight: bold; - line-height: 1.5; - color: #515155; - display: block; - list-style: none; - max-width: 100%; -} - -header.profile .profile__location li { - font-weight: 500; - display: inline-block; -} - -header.profile .profile__meta li::after, header.profile .profile__meta li::before { - display: inline-block; - content: "—"; - padding: 0 1.5rem; -} - -header.profile .profile__networks, header.profile .profile__actions { - margin: 0; - padding: 1rem 0; - border-bottom: solid 1px #dfe0e5; -} - -header.profile .profile__networks.active { - border-bottom: none; -} - -header.profile .profile__networks li, header.profile .profile__actions li { - list-style: none; - -webkit-box-flex: 1; - -ms-flex-positive: 1; - flex-grow: 1; -} - -header.profile .profile__networks li a.active, header.profile .profile__actions li a.active { - text-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; - color: #26252B; - font-weight: 600; - cursor: auto; -} - -header.profile .profile__actions a { - text-align: center; - display: block; - text-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; - border-radius: 5px; - -webkit-transition: background-color 0.2s; - transition: background-color 0.2s; - padding: 5px; - max-width: 90px; - margin: auto; -} - -header.profile .profile__actions a:hover { - background-color: #edeff5; -} - -header.profile .profile__actions a:before { - content: ""; - display: block; - width: 38px; - height: 35px; - margin: auto; - background: transparent no-repeat; - background-size: 76px 35px; -} - -header.profile .profile__actions a.profile__actions--join:before { - background-image: url(../images/profile--action__join-sprite.svg); - background-position: 0 0; -} - -header.profile .profile__actions a.profile__actions--leave:before { - background-image: url(../images/profile--action__join-sprite.svg); - background-position: -38px 0; -} - -header.profile .profile__actions a.profile__actions--follow:before { - background-image: url(../images/profile--action__follow-sprite.svg); - background-position: 0 0; -} - -header.profile .profile__actions a.profile__actions--unfollow:before { - background-image: url(../images/profile--action__follow-sprite.svg); - background-position: -38px 0; -} - -header.profile .profile__actions a.profile__actions--contact:before { - background-image: url(../images/profile--action__contact-sprite.svg); - background-position: 0 0; -} - -header.profile .profile__actions a.profile__actions--add2list:before { - background-image: url(../images/profile--action__add2list-sprite.svg); - background-position: 0 0; -} - -.sub-section--related__title { - padding-left: 3.6rem; - min-height: 3.7rem; - margin-bottom: 0.7rem; -} - -.sub-section--related__title--discussion { - background-image: url(../images/follow-up__background.svg), url(../images/article--discussion-icon.svg); - background-position: 0rem 1.1rem, 0.5rem 0; - background-repeat: no-repeat, no-repeat; - background-size: 2.7rem 2.3rem, 2.38rem 2.5rem; -} - -.related-events h3 { - margin-bottom: 1rem; -} - -.related-events h3 a { - font-weight: 700; - font-size: 1.6rem; -} - -a.share { - background: #515155 url(../images/share-icons.svg) no-repeat; +.btn { + background: green; + color: #fff; + padding: 10px; display: inline-block; - width: 4rem; - height: 4rem; - border-radius: 4rem; - text-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; -} - -a.share--facebook { - background-position: 0 0; -} - -a.share--twitter { - background-position: -8rem 0; -} - -a.share--linkedin { - background-position: -4rem 0; -} - -a.share--googleplus { - background-position: -12rem 0; -} - -a.share--email { - background-position: -16rem 0; -} - -@media (min-width: 768px) { - a.share { - width: auto; - padding-left: 0rem; - background: none; - border-radius: 0; - text-decoration: none; - -webkit-box-shadow: none; - box-shadow: none; - height: auto; - line-height: 2rem; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - } - - a.share span { - display: inline-block; - line-height: 2.5rem; - } - - a.share:before { - content: ""; - background: #515155 url(../images/share-icons.svg) no-repeat; - display: inline-block; - width: 2rem; - height: 2rem; - border-radius: 2rem; - -webkit-box-shadow: none; - box-shadow: none; - background-size: 10rem 2rem; - margin-right: 0.5rem; - margin-top: 2px; - -ms-flex-negative: 0; - flex-shrink: 0; - } - - a.share:hover::before { - background-color: #662D91; - trnasition: background-color 0.2s; - } - - a.share--facebook:before { - background-position: 0 0; - } - - a.share--twitter:before { - background-position: -4rem 0; - } - - a.share--linkedin:before { - background-position: -2rem 0; - } - - a.share--googleplus:before { - background-position: -6rem 0; - } - - a.share--email:before { - background-position: -8rem 0; - } + margin: 0 0 10px 0; } /*# sourceMappingURL=style.css.map */ diff --git a/sass/base/_base.scss b/sass/base/_base.scss index b28b04f..a93e3f8 100644 --- a/sass/base/_base.scss +++ b/sass/base/_base.scss @@ -1,3 +1,208 @@ +<<<<<<< Updated upstream +======= +body { + font-family: $font-family-base; + font-size: 1.5rem; + background-color: $body__background-color; + color: $text-color; + margin: 0; + padding: 0; + line-height: 1.8; + background-color: adjust-lightness($gray-800, -3%); + /*background: adjust-lightness($gray-800, -3%) url(../images/body-bckgrd--md.svg) no-repeat center top; + background-size: 100% 80px;*/ + background-image: url(../images/body-bckgrd--md.svg); + background-repeat: no-repeat; + background-position: 50% top; + background-attachment: fixed; + background-size: 100% 80px; + + &.not-signed { + margin-top: 3.5rem; + background-image: url(../images/body-bckgrd--md.svg), linear-gradient($white, $white); + background-position: 50% 3.5rem, center 0; + background-size: 100% 80px, 100% 3.5rem; + } +} + +.wf-active body { + font-family: $body__font; + font-weight: $text__font-wight; +} + +p, h2, h3, h4, h5, h6, li { + max-width: 32em; + } + +h1, h2, h3, h4, h5, h6 { + font-family: $headings__font; + font-weight: bold; + line-height: 1.3; + margin-top: 2.5em; + margin-bottom: 1em; +} + +h1 + h2, +h1 + h3, +h1 + p, +h2 + h3, +h2 + h4, +h2 + p, +h3 + h4, +h3 + h5, +h3 + p, +h4 + p, +h5 + p, +h6 + p, +{ + margin-top: -0.3em; +} + +h4, h5, h6 { + opacity: 0.9; +} + +p:last-child { + //margin-bottom: 1.3em; +} + +p + h2, p + h3, p + h4 { + margin-top: 1.8em; +} + +a { + color: $purple; +} + +a:not(.toolbar-item) { + color: $purple; + transition: all 0.2s; + font-weight: 500; + text-decoration: none; + text-shadow: 0 2px 0 $body__background-color, 0 3px 0 $body__background-color, 1px 2px 0 $body__background-color, -1px 2px 0 $body__background-color; + box-shadow: 0 1px 0 0 $purple; + transition: all .2s ease; + + &:hover { + color: scale-lightness($blue, -40%); + box-shadow: 0 1px 0 0 $body__background-color; + transition: all .2s ease; + } +} + +.general-container { + width:100%; + height: 100%; + max-width: 1200px; + margin: auto; + background-color: $white; + overflow: hidden; + position: relative; + + + + &--card { + height: auto; + width: 100%; + max-width: 768px; + background-color: $white; + margin: auto; + text-align: center; + border-bottom-left-radius: 0px; + border-bottom-right-radius: 0px; + box-shadow: 0px 0px 25px rgba($black, 0.8); + + main { + + } + } + &:after { + clear: both; + content: ""; + display: table; + } +} + +.background--talk > main { + min-height: auto; + float: none; + width: 100%; + max-width: 32em; + margin: auto !important; + padding: 15px 0px 0px 0px; + text-align: left; + background: transparent; +} + +.background--talk header a { + box-shadow: none; + &:hover { + box-shadow: none; + } +} + +main { + display: block; + margin-top: -36px; + padding: 0px 15px 75px 15px; + min-height: 100vh; + background-color: #fff; +} + +main *:not(img):not(svg)::selection { + color: $white; + background: #1a3773; + text-shadow: 2px 2px 0 rgba(0,0,0,0.8), 2px 3px 0 rgba(0,0,0,0.8), 3px 2px 0 rgba(0,0,0,0.8), 4px 2px 0 rgba(0,0,0,0.8); +} + +@media (min-width: 768px) { + + body { + font-size: 1.6rem; + + &.not-signed { + margin-top: 0px; + background-image: url(../images/body-bckgrd--md.svg); + background-position: 50% 0px,; + background-size: 100% 80px; + } + } + + main { + margin-top: 0; + margin-left: 33%; + width: 66%; + padding: 100px 15px 0px 15px; + } + + .general-container--card { + border-bottom-left-radius: 25px; + border-bottom-right-radius: 25px; + } + +} + +@media (min-width: 992px) { + .general-container { + box-shadow: 0px 0px 25px rgba($black, 0.4); + } + + main { + /* margin-top: -20px; */ + margin-left: 25%; + width: 50%; + left: auto; + position: relative; + float: left; + } +} + +@media (min-width: 768px) { + .general-container { + background-color: $gray-800; + } +} +>>>>>>> Stashed changes diff --git a/sass/components/_header.scss b/sass/components/_header.scss new file mode 100644 index 0000000..f7315cb --- /dev/null +++ b/sass/components/_header.scss @@ -0,0 +1,76 @@ +.pre-banner { + width: 100%; + max-width: 768px; + + background-image: url(../images/header-arch-only.svg); + background-repeat: no-repeat; + background-size: 100% 82px; + + position: fixed; + left: 50%; + transform: translateX(-50%); + min-height: 82px; + z-index: 1200; +} + +.logo-wrapper--index { + box-shadow: 0px 0px 82px 13px rgba(255,255,255,0.60); + background-color: rgba(#FFF, 0.40); + padding: 15px; + border-radius: 35px; + max-width: calc(32em + 30px); + margin: auto; + box-sizing: border-box; +} + +.background--talk { + background-image: url(../images/homepage-illustration.jpg); + background-repeat: no-repeat; + background-size: 768px 400px; + background-size: contain; + background-position: center top; + min-height: calc(20vh + 82px); + background-color: #FFF; + padding: 120px 15px 0 15px; + text-align: center; +} + +.logo { + width: 100%; + max-width: 515px; + height: auto; + margin: auto; + } + +@media (min-width: 768px) { + .general-header { + position: fixed; + z-index: 5; + right: auto; + bottom: auto; + left:0; + top:0; + width: 33%; + background: $gray-800; + float: left; + height: 100vh; + padding: 90px 15px 130px; + overflow: auto; + } +} + +@media (min-width: 992px) { + .general-header { + position: fixed; + right: auto; + bottom: auto; + left: auto; + top:auto; + width: 25%; + max-width: 300px; + background: $gray-800; + float: left; + height: 100vh; + padding: 90px 15px 15px; + } +} diff --git a/sass/components/_modal.scss b/sass/components/_modal.scss new file mode 100644 index 0000000..ca32b35 --- /dev/null +++ b/sass/components/_modal.scss @@ -0,0 +1,38 @@ +.ui-widget-overlay { + background: $black; + opacity: 0.8; +} + +.ui-dialog { + background: transparent; + ul { + list-style: none; + margin: 0; + padding: 0; + } + .ui-dialog-titlebar { + font-weight: bold; + background: transparent; + border: none; + color: $white; + } + .ui-dialog-title { + font-size: 3rem; + } +} + +.ui-widget.ui-widget-content { + border: none; +} + +.ui-button .ui-icon { + background-image: none; + &:before { + @include fa-icon; + @extend .fas; + content: fa-content($fa-var-times); + color: $white; + text-indent: initial; + display: block; + } +} diff --git a/sass/components/_navigation.scss b/sass/components/_navigation.scss new file mode 100644 index 0000000..02fe2dd --- /dev/null +++ b/sass/components/_navigation.scss @@ -0,0 +1,334 @@ +.navigation-menu { + background: url(../images/navigation-menu__background--sm.svg) no-repeat center bottom; + + + &__list { + float: left; + display: flex; + padding:0; + justify-content: space-around; + height: 25vw; + max-height: 100px; + align-items: flex-end; + margin:0; + + li { + display: inline-block; + font-size: 2rem; + text-align: center; + line-height: 45px; + width: 16vw; + height: 12.5vw; + max-width: 54px; + max-height: 39px; + + &.active { + background: url(../images/navigation-menu__item--active__background--sm.svg) no-repeat center bottom; + background-size: cover; + border-bottom: solid 2px $pink; + + a { + /* color: scale-lightness($pink, 40); */ + color: $white; + } + } + + a { + color: $white; + text-shadow: none; + box-shadow: none; + &:hover { + color: $white; + } + } + + .create-new { + background: url(../images/new-item__button__background--sm.svg) no-repeat center center; + background-size: 42px 42px; + border: none; + height: 45px; + width: 45px; + font-size: 2.2rem; + font-weight: normal; + text-align: left; + &:before { + @include fa-icon; + @extend .fas; + padding-right: 10px; + content: fa-content($fa-var-pencil-alt); + } + } + } + } +} + +.background--talk .navigation-menu { + background: none; +} + +.not-signed .navigation-menu, .not-signed .new-item { + display: none; +} + +@media (max-width: 767.98px) { + .menu--main.navigation-menu { + overflow: hidden; + position: fixed; + bottom: 0; + width: 100vw; + background-size: 100vw 27vw; + height: 25vw; + max-height: 100px; + z-index: 1000; + } +} + +@media (max-width: 767.98px) and (orientation: landscape) { + .navigation-menu { + background-position: center bottom; + background-size: 100vw 23vh; + + &__list { + + padding:0; + margin: 0vw 1vw 0; + } + } +} + +@media (min-width: 768px) { + .not-signed .navigation-menu { + display: block; + } + + .navigation-menu { + position: relative; + bottom: auto; + background: none; + width: auto; + height: auto; + max-height: none; + padding-top: 15px; + + &__list { + width: auto; + height: auto; + max-height: none; + display: block; + float: none; + align-items: baseline; + margin:0; + + li { + display: block; + width: auto; + height: auto; + max-width: none; + max-height: none; + text-align: left; + font-size: 1.6rem; + line-height: inherit; + padding: 0.5rem 0.8rem; + border-radius: 0.5rem; + + svg { + margin-right: 1.5rem; + } + + a{ + color: $white; + text-shadow: none; + box-shadow: none; + padding: 6px 0; + box-shadow: none; + + &:hover { + color: $pink; + box-shadow: none; + + .badge { + background-color: $pink; + transition: all 0.2s; + } + } + } + + &.active { + background: rgba($white, 0.1); + border-bottom: none; + + .fas { + color: $pink; + } + } + + .create-new { + display: block; + background: rgba($white, 1); + background-size: auto; + border: none; + height: auto; + width: 100%; + font-size: 1.6rem; + line-height: 1.8; + padding: 0.5rem 0.8rem; + border-radius: 0.5rem; + border: solid 3px rgba($cyan, 1); + color: $gray-900; + text-shadow: none; + box-shadow: none; + transition: background-color 0.2s; + &:hover { + box-shadow: none; + background: rgba($cyan, 1); + transition: background-color 0.2s; + color: $gray-900; + } + + &.active { + background: rgba($white, 0.1); + border-bottom: none; + } + } + } + } + + &__list--feeds { + svg { + min-width: 2rem; + } + } + + &__list--tools { + position: fixed; + display: flex; + justify-content: flex-end; + top: 0px; + z-index: 10001; + background-image: $logo-area__background-image--md; + background-repeat: no-repeat; + background-size: 100% 80px; + background-position: left top; + height: 100px; + width: 100vw; + margin-left: -15px; + + &:empty { + background-image: url(../images/logo-area-bckgrd--md--no-action.svg); + } + + &.navigation-menu__list--single-tool { + background-image: url(../images/logo-area-bckgrd--md--one-action.svg); + } + + .navigation-menu__item { + display: inline-block; + padding:0; + margin-left: 0px; + + } + + .navigation-menu__item:only-child { + display: block; + margin: 0px 0% 0 -2.45% !important; + position: absolute; + height: 54px; + width: 54px; + } + + .navigation-menu__item:first-child { + display: block; + margin: 11px 0% 0 -8.75%; + position: absolute; + height: 54px; + width: 54px; + } + + .navigation-menu__item:nth-child(2) { + display: block; + margin: 0px 0% 0 -3.75%; + position: absolute; + height: 42px; + width: 42px; + } + + .navigation-menu__item--tool { + text-align: center; + display: inline-block; + background-image: url(../images/navigation-tools__btn__background.svg); + background-repeat: none; + color: $gray-900; + + &.navigation-menu__item--filter { + height: 54px; + width: 54px; + background-size: 54px 54px; + font-size: 2rem; + padding-top: 0.9rem; + svg { + margin: auto; + } + } + + &.navigation-menu__item--search { + background-size: 42px 42px; + display: inline-block; + line-height: 42px; + height: 42px; + width: 42px; + margin: 30px 20px 0 8px; + svg { + margin: auto; + } + } + } + + } + + .badge { + background: rgba($white, 0.8); + padding: 0rem 0.5rem 0.1rem; + border-radius: 0.5rem; + color: $gray-900; + text-align: center; + } + } +} + +@media (min-width: 992px) { + .navigation-menu { + &__list--tools { + background-size: 100% 80px; + background-position: left top; + height: 80px; + width: 75vw; + max-width: 900px; + margin-left: -15px; + + .navigation-menu__item:only-child { + display: block; + margin: 0px 0% 0 -18px !important; + position: absolute; + height: 54px; + width: 54px; + } + } + } + +} + +@media (min-width: 1100px) { + .navigation-menu { + &__list--tools { + .navigation-menu__item:only-child { + display: block; + margin: 0px 0% 0 -2.75% !important; + position: absolute; + height: 54px; + width: 54px; + } + } + + } + +} diff --git a/templates/field/show-more-link.html.twig b/templates/field/show-more-link.html.twig index dc70b93..1a6b319 100644 --- a/templates/field/show-more-link.html.twig +++ b/templates/field/show-more-link.html.twig @@ -1,3 +1,3 @@ \ No newline at end of file +
    From f945a42a2e05bd2157bc61f9c5154a5f3fbaa902 Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Thu, 16 Aug 2018 13:20:07 +0200 Subject: [PATCH 135/200] NGF-355: modal theming --- css/style.css | 3666 +------------------------------------------------ 1 file changed, 5 insertions(+), 3661 deletions(-) diff --git a/css/style.css b/css/style.css index 7e0ce44..b72afd5 100644 --- a/css/style.css +++ b/css/style.css @@ -1,3665 +1,9 @@ -@charset "UTF-8"; - -* { - -webkit-box-sizing: border-box; - box-sizing: border-box; -} - -html { - font-size: 62.5%; -} - -body { - font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, sans-serif; - font-size: 1.5rem; - background-color: #FFFFFF; - color: #515155; - margin: 0; - padding: 0; - line-height: 1.8; - background-color: #1f1e23; - background-image: url(../images/body-bckgrd--md.svg); - background-repeat: no-repeat; - background-position: 50% top; - background-attachment: fixed; - background-size: 100% 80px; -} - -body.not-signed { - margin-top: 3.5rem; - background-image: url(../images/body-bckgrd--md.svg), -webkit-gradient(linear, left top, left bottom, from(#FFFFFF), to(#FFFFFF)); - background-image: url(../images/body-bckgrd--md.svg), linear-gradient(#FFFFFF, #FFFFFF); - background-position: 50% 3.5rem, center 0; - background-size: 100% 80px, 100% 3.5rem; -} - -.wf-active body { - font-family: "Raleway"; - font-weight: 500; -} - -p, h2, h3, h4, h5, h6, li { - max-width: 32em; -} - -h1, h2, h3, h4, h5, h6 { - font-family: "Raleway"; - font-weight: bold; - line-height: 1.3; - margin-top: 2.5em; - margin-bottom: 1em; -} - -h1 + h2, -h1 + h3, -h1 + p, -h2 + h3, -h2 + h4, -h2 + p, -h3 + h4, -h3 + h5, -h3 + p, -h4 + p, -h5 + p, -h6 + p { - margin-top: -0.3em; -} - -h4, h5, h6 { - opacity: 0.9; -} - -p + h2, p + h3, p + h4 { - margin-top: 1.8em; -} - -a:not(.toolbar-item) { - color: #662D91; - -webkit-transition: all 0.2s; - transition: all 0.2s; - font-weight: 500; - text-decoration: none; - text-shadow: 0 2px 0 #FFFFFF, 0 3px 0 #FFFFFF, 1px 2px 0 #FFFFFF, -1px 2px 0 #FFFFFF; - -webkit-box-shadow: 0 1px 0 0 #662D91; - box-shadow: 0 1px 0 0 #662D91; - -webkit-transition: all .2s ease; - transition: all .2s ease; -} - -a:not(.toolbar-item):hover { - color: #003ba7; - -webkit-box-shadow: 0 1px 0 0 #FFFFFF; - box-shadow: 0 1px 0 0 #FFFFFF; - -webkit-transition: all .2s ease; - transition: all .2s ease; -} - -.general-container { - width: 100%; - height: 100%; - max-width: 1200px; - margin: auto; - background-color: #FFFFFF; - overflow: hidden; -} - -.general-container--card { - height: auto; - width: 100%; - max-width: 768px; - background-color: #FFFFFF; - margin: auto; - text-align: center; - border-bottom-left-radius: 0px; - border-bottom-right-radius: 0px; - -webkit-box-shadow: 0px 0px 25px rgba(0, 0, 0, 0.8); - box-shadow: 0px 0px 25px rgba(0, 0, 0, 0.8); -} - -.background--talk > main { - min-height: auto; - float: none; - width: 100%; - max-width: 32em; - margin: auto !important; - padding: 15px 0px 0px 0px; - text-align: left; -} - -main { - display: block; - margin-top: -36px; - padding: 0px 15px 75px 15px; - min-height: 100vh; -} - -main *:not(img):not(svg)::-moz-selection { - color: #FFFFFF; - background: #1a3773; - text-shadow: 2px 2px 0 rgba(0, 0, 0, 0.8), 2px 3px 0 rgba(0, 0, 0, 0.8), 3px 2px 0 rgba(0, 0, 0, 0.8), 4px 2px 0 rgba(0, 0, 0, 0.8); -} - -main *:not(img):not(svg)::selection { - color: #FFFFFF; - background: #1a3773; - text-shadow: 2px 2px 0 rgba(0, 0, 0, 0.8), 2px 3px 0 rgba(0, 0, 0, 0.8), 3px 2px 0 rgba(0, 0, 0, 0.8), 4px 2px 0 rgba(0, 0, 0, 0.8); -} - -@media (min-width: 768px) { - body { - font-size: 1.6rem; - } - - body.not-signed { - margin-top: 0px; - background-image: url(../images/body-bckgrd--md.svg); - background-position: 50% 0px; - background-size: 100% 80px; - } - - main { - margin-top: 0; - margin-left: 33%; - width: 66%; - padding: 100px 15px 0px 15px; - } - - .general-container--card { - border-bottom-left-radius: 25px; - border-bottom-right-radius: 25px; - } -} - -@media (min-width: 992px) { - .general-container { - -webkit-box-shadow: 0px 0px 25px rgba(0, 0, 0, 0.4); - box-shadow: 0px 0px 25px rgba(0, 0, 0, 0.4); - } - - main { - margin-top: -20px; - margin-left: 25%; - width: 50%; - left: auto; - position: relative; - float: left; - } -} - -.form-wrapper { - padding: 0px 15px 30px 15px; -} - -.wf-active input, .wf-active textarea { - font-family: "Raleway"; -} - -form__block, .form__block { - margin: 1.5rem 0 1rem; -} - -form__block label, form__fake-label, .form__block label, .form__fake-label { - display: block; - font-weight: 600; - text-align: left; - margin-bottom: 0.3em; -} - -form textarea, .form textarea { - font-family: "Raleway"; - min-height: 6rem; -} - -form input[type=text], form input[type=email], form input[type=password], form textarea, .form input[type=text], .form input[type=email], .form input[type=password], .form textarea { - padding: 0.7rem 0.9rem; - font-size: 1.6rem; - line-height: 1.8; - color: #515155; - max-width: 32em; - width: 100%; - border: solid 2px #a6a7ab; - -webkit-box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.1); - box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.1); - -webkit-transition: border-color 0.2s; - transition: border-color 0.2s; - font-family: "Raleway"; -} - -form input[type=text]:focus:hover, form input[type=text]:focus, form input[type=email]:focus:hover, form input[type=email]:focus, form input[type=password]:focus:hover, form input[type=password]:focus, form textarea:focus:hover, form textarea:focus, .form input[type=text]:focus:hover, .form input[type=text]:focus, .form input[type=email]:focus:hover, .form input[type=email]:focus, .form input[type=password]:focus:hover, .form input[type=password]:focus, .form textarea:focus:hover, .form textarea:focus { - outline: none; - border: solid 2px #662D91; - -webkit-transition: border-color 0.2s; - transition: border-color 0.2s; -} - -form input[type=text]:hover, form input[type=email]:hover, form input[type=password]:hover, form textarea:hover, .form input[type=text]:hover, .form input[type=email]:hover, .form input[type=password]:hover, .form textarea:hover { - border-color: #515155; - -webkit-transition: border-color 0.2s; - transition: border-color 0.2s; -} - -form input[type=text]::-webkit-input-placeholder, form input[type=email]::-webkit-input-placeholder, form input[type=password]::-webkit-input-placeholder, form textarea::-webkit-input-placeholder, .form input[type=text]::-webkit-input-placeholder, .form input[type=email]::-webkit-input-placeholder, .form input[type=password]::-webkit-input-placeholder, .form textarea::-webkit-input-placeholder { - opacity: 0.4; -} - -form input[type=text]:-ms-input-placeholder, form input[type=email]:-ms-input-placeholder, form input[type=password]:-ms-input-placeholder, form textarea:-ms-input-placeholder, .form input[type=text]:-ms-input-placeholder, .form input[type=email]:-ms-input-placeholder, .form input[type=password]:-ms-input-placeholder, .form textarea:-ms-input-placeholder { - opacity: 0.4; -} - -form input[type=text]::-ms-input-placeholder, form input[type=email]::-ms-input-placeholder, form input[type=password]::-ms-input-placeholder, form textarea::-ms-input-placeholder, .form input[type=text]::-ms-input-placeholder, .form input[type=email]::-ms-input-placeholder, .form input[type=password]::-ms-input-placeholder, .form textarea::-ms-input-placeholder { - opacity: 0.4; -} - -form input[type=text]::placeholder, form input[type=email]::placeholder, form input[type=password]::placeholder, form textarea::placeholder, .form input[type=text]::placeholder, .form input[type=email]::placeholder, .form input[type=password]::placeholder, .form textarea::placeholder { - opacity: 0.4; -} - -form input[type=text].error, form input[type=email].error, form input[type=password].error, form textarea.error, .form input[type=text].error, .form input[type=email].error, .form input[type=password].error, .form textarea.error { - border: solid 2px #ff3939; - -webkit-transition: border-color 0.2s; - transition: border-color 0.2s; -} - -form input[type=text] + p, form input[type=email] + p, form input[type=password] + p, form textarea + p, .form input[type=text] + p, .form input[type=email] + p, .form input[type=password] + p, .form textarea + p { - margin-top: 0.2em; - -webkit-transition: border-color 0.2s; - transition: border-color 0.2s; -} - -form .form__block--twocol, .form .form__block--twocol { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -ms-flex-wrap: wrap; - flex-wrap: wrap; -} - -form .form__block--twocol > *[class^="form__block--"], .form .form__block--twocol > *[class^="form__block--"] { - -ms-flex-preferred-size: 100%; - flex-basis: 100%; - width: 100%; - -webkit-box-flex: 1; - -ms-flex-positive: 1; - flex-grow: 1; - padding: 0rem 0px; - margin: 0.8rem 0; -} - -form .form__block--toggle input[type=checkbox], form .form__block--checkbox input[type=checkbox], .form .form__block--toggle input[type=checkbox], .form .form__block--checkbox input[type=checkbox] { - -webkit-box-sizing: border-box; - box-sizing: border-box; - padding: 0; - margin: 4px 0 0; - margin-top: 0em; - opacity: 0; - z-index: 1; - position: absolute; - margin-left: -20px; -} - -form .form__block--submit, .form .form__block--submit { - margin: 2.5rem 0 2rem; -} - -form .form__block--checkbox, .form .form__block--checkbox { - margin: 1.5rem 0 1rem; -} - -form .form__block--checkbox input[type=checkbox] + label .onoffswitch-inner, .form .form__block--checkbox input[type=checkbox] + label .onoffswitch-inner { - display: inline-block; - height: 2.2rem; - width: 2.2rem; - background: #FFFFFF; - margin: 3px 20px 0 0; - -webkit-transition: 0.2s margin; - transition: 0.2s margin; - border: solid 2px #a6a7ab; - position: absolute; -} - -form .form__block--checkbox .label-text, .form .form__block--checkbox .label-text { - margin-left: 3.5rem; - display: inline-block; - line-height: 1.5; -} - -form .form__block--checkbox input[type=checkbox]:focus + label .onoffswitch-inner, .form .form__block--checkbox input[type=checkbox]:focus + label .onoffswitch-inner { - -webkit-box-shadow: 0px 0px 0px 1px #662D91; - box-shadow: 0px 0px 0px 1px #662D91; - border: solid 2px #662D91 !important; -} - -form .form__block--checkbox input[type=checkbox]:checked + label .onoffswitch-inner, .form .form__block--checkbox input[type=checkbox]:checked + label .onoffswitch-inner { - display: inline-block; - height: 2.2rem; - width: 2.2rem; - background: #1eb49c; - margin: 3px 20px 0 0; - -webkit-transition: 0.2s margin; - transition: 0.2s margin; - border: solid 2px #a6a7ab; - position: absolute; -} - -form .form__block--checkbox input[type=checkbox]:checked + label .onoffswitch-inner:before, form .form__block--checkbox input[type=checkbox]:checked + label .onoffswitch-inner:after, .form .form__block--checkbox input[type=checkbox]:checked + label .onoffswitch-inner:before, .form .form__block--checkbox input[type=checkbox]:checked + label .onoffswitch-inner:after { - position: absolute; - content: ''; - width: 3px; - height: 2.7rem; - background-color: rgba(5, 17, 30, 0.8); -} - -form .form__block--checkbox input[type=checkbox]:checked + label .onoffswitch-inner:before, .form .form__block--checkbox input[type=checkbox]:checked + label .onoffswitch-inner:before { - -webkit-transform: rotate(45deg); - transform: rotate(45deg); - margin-left: 7px; - margin-top: -5px; -} - -form .form__block--checkbox input[type=checkbox]:checked + label .onoffswitch-inner:after, .form .form__block--checkbox input[type=checkbox]:checked + label .onoffswitch-inner:after { - -webkit-transform: rotate(-45deg); - transform: rotate(-45deg); - margin-left: 7px; - margin-top: -5px; -} - -form .form__block--toggle, .form .form__block--toggle { - margin: 1.5rem 0 1rem; -} - -form .form__block--toggle input[type=checkbox] + label:before, .form .form__block--toggle input[type=checkbox] + label:before { - background-color: #FFF; - background-size: 40rem 20rem; - content: ""; - width: 3.9rem; - height: 1.9rem; - display: inline-block; - margin-right: -40px; - margin-top: 3px; - border-radius: 20px; - border: solid 2px #c6c7cc; - -webkit-transition: background-color .2s; - transition: background-color .2s; - -webkit-box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.2); - box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.2); - position: absolute; -} - -form .form__block--toggle input[type=checkbox]:focus + label:before, .form .form__block--toggle input[type=checkbox]:focus + label:before { - -webkit-box-shadow: 0px 0px 0px 1px #662D91; - box-shadow: 0px 0px 0px 1px #662D91; - border: solid 2px #662D91 !important; -} - -form .form__block--toggle input[type=checkbox]:checked + label:before, .form .form__block--toggle input[type=checkbox]:checked + label:before { - background-color: #1eb49c; - -webkit-transition: background-color .2s; - transition: background-color .2s; - border: solid 2px rgba(0, 0, 0, 0.2); -} - -form .form__block--toggle input[type=checkbox]:checked + label .onoffswitch-inner, .form .form__block--toggle input[type=checkbox]:checked + label .onoffswitch-inner { - display: inline-block; - background: #edeff5; - margin: 3px 0 0 20px; - border: solid 2px #a6a7ab; - height: 2.2rem; - width: 2.2rem; -} - -form .form__block--toggle input[type=checkbox] + label .onoffswitch-inner, .form .form__block--toggle input[type=checkbox] + label .onoffswitch-inner { - display: inline-block; - height: 2.2rem; - width: 2.2rem; - background: #edeff5; - margin: 3px 20px 0 0; - -webkit-transition: 0.2s margin; - transition: 0.2s margin; - border-radius: 1rem; - border: solid 2px #a6a7ab; - position: absolute; -} - -form .form__block--toggle .label-text, .form .form__block--toggle .label-text { - margin-left: 5rem; -} - -.js .form__input--file { - width: 0.1px; - height: 0.1px; - opacity: 0; - overflow: hidden; - position: absolute; - z-index: -1; -} - -.form__input--file + label { - padding: 0.7rem 0.9rem; - font-size: 1.6rem; - color: #515155; - max-width: 32em; - width: 100%; - border: solid 2px #a6a7ab; - -webkit-box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.1); - box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.1); - text-overflow: ellipsis; - white-space: nowrap; - cursor: pointer; - display: inline-block; - overflow: hidden; -} - -.form__input--file + label:focus { - outline: none; - border: solid 2px #662D91; -} - -.no-js .form__input--file + label { - display: none; -} - -.form__input--file:focus + label, -.form__input--file.has-focus + label { - outline: none; - border: solid 2px #662D91; -} - -.form__input--file + label * { -} - -.form__input--file + label .form__label--file { - background-color: #88898c; - color: #FFFFFF; - text-align: right; - float: right; - -webkit-transition: background-color 0.2s; - transition: background-color 0.2s; - -webkit-transition: color 0.2s; - transition: color 0.2s; -} - -.form__input--file:hover + label .form__label--file { - background-color: #515155; - color: rgba(255, 255, 255, 0.9); - -webkit-transition: background-color 0.2s; - transition: background-color 0.2s; - -webkit-transition: color 0.2s; - transition: color 0.2s; -} - -.form__input--file:focus + label .form__label--file { - background-color: #662D91; - color: rgba(255, 255, 255, 0.9); - -webkit-transition: background-color 0.2s; - transition: background-color 0.2s; - -webkit-transition: color 0.2s; - transition: color 0.2s; -} - -.form__input--file + label .form__input--selected { - text-align: left; -} - -.form__input--file + label { - color: #515155; -} - -.form__input--file + label { - border: solid 2px #a6a7ab; - -webkit-box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.1); - box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.1); - -webkit-transition: border-color 0.2s; - transition: border-color 0.2s; - background-color: #FFFFFF; - padding: 0; -} - -.form__input--file + label:hover { - border-color: #515155; - -webkit-transition: border-color 0.2s; - transition: border-color 0.2s; -} - -.form__input--file + label span, -.form__input--file + label strong { - padding: 0.7rem 1.25rem; -} - -.form__input--file + label span { - min-height: 2em; - display: inline-block; - text-overflow: ellipsis; - white-space: nowrap; - overflow: hidden; - vertical-align: top; -} - -.chosen-container.error .chosen-single, -.chosen-container.error .chosen-single span { - line-height: inherit; -} - -.chosen-container-single .chosen-search { - display: block; -} - -.chosen-container-multi .chosen-choices li.search-field input[type="text"] { - height: auto; -} - -.chosen-container { - display: block !important; -} - -.container-inline div.chosen-container div { - display: block; -} - -.chosen-container.error .chosen-choices, -.chosen-container.error .chosen-single { - border: 2px solid red; -} - -.filter-wrapper { - overflow: visible !important; -} - -.filter-wrapper:after { - content: ""; - display: block; - clear: both; -} - -@media (min-width: 578px) { - .form .form__block--twocol { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -ms-flex-wrap: wrap; - flex-wrap: wrap; - } - - .form .form__block--twocol > *[class^="form__block--"] { - -ms-flex-preferred-size: 50%; - flex-basis: 50%; - width: calc(50% - 15px); - -webkit-box-flex: 1; - -ms-flex-positive: 1; - flex-grow: 1; - } - - .form .form__block--twocol > *[class^="form__block--"]:nth-child(odd) { - padding-right: 15px; - } -} - -@media (min-width: 768px) { - .form-wrapper { - padding: 0px 0px 30px 0px; - } - - main.form-wrapper { - padding: 75px 15px 30px 15px; - } -} - -.icon.icon--cog { - background: url(../images/settings-icon.svg) no-repeat; - background-size: cover; - display: block; - height: 100%; - width: 100%; -} - -.list--file, .list--event { - padding: 0; -} - -.list--file .list__item--file, .list--file .list__item--event, .list--event .list__item--file, .list--event .list__item--event { - list-style: none; - background: transparent no-repeat left top; - background-size: 32px 38px; - padding-left: 45px; -} - -.list--file .list__item--file.list__item--pdf, .list--file .list__item--event.list__item--pdf, .list--event .list__item--file.list__item--pdf, .list--event .list__item--event.list__item--pdf { - background-image: url(../images/file--pdf.jpg); -} - -.list--file .list__item--file.list__item--url, .list--file .list__item--event.list__item--url, .list--event .list__item--file.list__item--url, .list--event .list__item--event.list__item--url { - background-image: url(../images/file--url.jpg); -} - -.list--file .list__item--file p, .list--file .list__item--event p, .list--event .list__item--file p, .list--event .list__item--event p { - margin: 0 0 0.8rem 0; -} - -.list--file .list__item--event, .list--event .list__item--event { - background-image: url(../images/article--event-icon.svg); -} - -.list--flex-space-evenly, header.profile .profile__networks, header.profile .profile__actions { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-pack: center; - -ms-flex-pack: center; - justify-content: center; -} - -.list--taxonomy { - padding: 0; - line-height: 2.3; -} - -.list--taxonomy .list__item--tag { - display: inline-block; - margin: 0.1rem 0.5rem 0.3rem 0; -} - -.list--taxonomy .list__item--tag::last-child { - margin-right: 0; -} - -.list--social-share { - padding: 0; -} - -.list--social-share .list__item--social-media { - display: inline-block; - margin-right: 1.8rem; -} - -.list--social-share .list__item--social-media:last-child { - margin-right: 0rem; -} - -@media (min-width: 768px) { - .list--social-share { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -ms-flex-wrap: wrap; - flex-wrap: wrap; - } - - .list--social-share .list__item--social-media { - width: calc( 50% - 3.6rem); - -webkit-box-flex: 1; - -ms-flex-positive: 1; - flex-grow: 1; - padding: 0.5rem 0; - } - - .list--social-share .list__item--social-media:last-child { - margin-right: 1.8rem; - } -} - -a.tag, li.tag { - background-color: #515155; - color: #FFFFFF; - border-radius: 2rem; - text-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; - font-size: 1.3rem; - border: solid 1px #515155; -} - -a.tag.tag--deletable, li.tag.tag--deletable { - padding-right: 0.2rem; -} - -a.tag { - padding: 0.45rem 0.6rem; -} - -a.tag:hover { - background-color: #c6c7cc; - color: #05111E; -} - -li.tag { - padding: 0.2rem 0.6rem; - line-height: 1.1; -} - -.tag button.close { - line-height: 2rem; - padding: 0.1rem; - border: none; - background-color: rgba(255, 255, 255, 0.8); - -webkit-box-shadow: 0 0 0 3px #515155 !important; - box-shadow: 0 0 0 3px #515155 !important; - cursor: pointer; - color: #ff3939; - border-radius: 10rem; - font-weight: 900; - height: 2rem; - min-width: 2rem; - margin-left: 0.6rem; - -webkit-transition: all 0.2s; - transition: all 0.2s; - text-align: center; -} - -.tag button.close span { - margin-top: -0.1rem; - display: block; -} - -.tag button.close:hover { - background-color: white; - -webkit-box-shadow: 0 0 0 3px rgba(255, 57, 57, 0.5) !important; - box-shadow: 0 0 0 3px rgba(255, 57, 57, 0.5) !important; - -webkit-transition: all 0.2s; - transition: all 0.2s; -} - -.tag button.close:focus { - outline: none; - -webkit-box-shadow: 0 0 0 3px #ff3939 !important; - box-shadow: 0 0 0 3px #ff3939 !important; - -webkit-transition: all 0.2s; - transition: all 0.2s; -} - -#skip-link, .skip-link { - position: fixed; - top: 1.5em; - left: 1.5em; - z-index: 1060; - background: #FFFFFF; - pading: 15px; -} - -.visually-hidden { - position: absolute !important; - clip: rect(1px 1px 1px 1px); - clip: rect(1px, 1px, 1px, 1px); - overflow: hidden; - height: 1px; -} - -.focusable:active, .focusable:focus { - position: static !important; - clip: auto; - overflow: visible; - height: auto; -} - -.responsive { - max-width: 100%; - height: auto; -} - -.no-display--sm { - position: absolute !important; - top: -9999px !important; - left: -9999px !important; -} - -.clearfix:after { - content: "."; - display: block; - height: 0; - clear: both; - visibility: hidden; -} - -.sideinfo { - font-size: 0.7em; - opacity: 0.8; -} - -.text-danger, a span.text-danger { - color: #ff3939; -} - -.text-center { - text-align: center; - max-width: 100%; -} - -.text-small { - font-size: 0.8em; - margin: 0.4em 0; -} - -.hr-text { - line-height: 1em; - position: relative; - outline: 0; - border: 0; - color: black; - text-align: center; - height: 1.5em; - opacity: 1; - width: 80%; - margin: 5rem auto 3rem auto; -} - -.hr-text:before { - content: ''; - background: #88898c; - position: absolute; - left: 0; - top: 50%; - width: 100%; - height: 1px; - z-index: 0; -} - -.hr-text:after { - content: attr(data-content); - position: relative; - display: inline-block; - font-weight: 700; - width: 25px; - height: 25px; - padding: 0 3rem; - line-height: 3rem; - color: #88898c; - background-color: #FFF; - z-index: 0; -} - -.no-margins { - margin: 0 !important; -} - -.no-child-margins > * { - margin-top: 0 !important; - margin-bottom: 0 !important; -} - -.small-top-margin { - margin-top: 5px !important; -} - -.extra-space--top { - margin-top: 5rem !important; -} - -.extra-space--bottom { - margin-bottom: 3rem !important; -} - -@media (min-width: 768px) { - .no-display--sm { - position: inherit !important; - top: auto !important; - left: auto !important; - } - - .no-display--md { - position: absolute !important; - top: -9999px !important; - left: -9999px !important; - } -} - -.account-info { - background: url("../images/account-info__background--idle.svg") no-repeat left top; - background-size: 100% 100%; - width: 23.4vw; - height: 26.5vw; - max-width: 125px; - max-height: 115px; - position: absolute; - right: 0; - margin-right: 0.3vw; - top: 0; -} - -.account-info.account-info--menu-only { - width: 80px; - height: 88px; - background-image: url(../images/account-info__background--idle.svg); - background-position: left top; - background-size: 100% 100%; -} - -.account-info.account-info--menu-only .account-info__wrapper { - margin-top: 9px; - margin-left: 9px; -} - -.account-info.account-info--notification { - width: 93px; - height: 85px; - background-image: url(../images/account-info__background--notification.svg); - background-position: left top; - background-size: 100% 100%; -} - -.account-info.account-info--notification .account-info__wrapper { - margin-top: 11px; - margin-left: 27px; -} - -.account-info a.account-info__wrapper { - display: block; - text-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; - width: 54px; - border-radius: 48px; - margin-top: 11px; - margin-left: 27px; - padding-bottom: 10px; - color: #FFFFFF; -} - -.account-info a.account-info__wrapper:hover { - text-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; -} - -.account-info a.account-info__wrapper img { - height: 100%; - width: 100%; - max-width: 48px; - border-radius: 90px; -} - -.account-info a.account-info__wrapper .account-info__trigger-icon { - float: right; - margin-top: -11px; - padding: 0 3px; - z-index: 5005; - position: relative; -} - -.account-info__profile { - position: absolute; - right: 10px; - top: 56px; - height: 18px; - width: 18px; -} - -.account-info__profile a { - text-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; - display: block; - height: 100%; -} - -.account-info .account-info__menu { - margin-top: 15px; -} - -.account-info .account-info__menu.account-info__dropdown { - display: none; - position: absolute; - width: 200px; - margin-left: calc( 65px - 200px); - margin-right: 15px; - background-color: #0c1935; - margin-top: -5px; - border-radius: 5px; - z-index: 5004; - -webkit-box-shadow: 0px 3px 3px 2px rgba(0, 0, 0, 0.3); - box-shadow: 0px 3px 3px 2px rgba(0, 0, 0, 0.3); - border: solid 1px rgba(255, 255, 255, 0.1); -} - -.account-info .account-info__menu.account-info__dropdown ul { - margin: 0; - list-style: none; - padding: 5px 15px; -} - -.account-info .account-info__menu.account-info__dropdown ul li { - border-bottom: solid 1px rgba(255, 255, 255, 0.5); - padding: 6px 0; - font-size: 1.6rem; -} - -.account-info .account-info__menu.account-info__dropdown ul li:first-child { - padding: 3px 0 6px; -} - -.account-info .account-info__menu.account-info__dropdown ul li:last-child { - border: none; - padding: 6px 0 3px; -} - -.account-info .account-info__menu.account-info__dropdown ul li a { - color: #FFFFFF; - text-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; - padding: 6px 0; -} - -.account-info .account-info__menu.account-info__dropdown ul li a:hover { - color: #ff397f; -} - -.account-info .account-info__menu.account-info__dropdown ul li svg, .account-info .account-info__menu.account-info__dropdown ul li i { - margin-right: 15px; -} - -.account-info .account-info__notifications { - height: 21px; - width: 21px; - margin-top: -50px; - margin-left: 7px; - position: absolute; -} - -.account-info .account-info__notifications a { - display: block; - height: 21px; - width: 21px; - background: #ff397f; - border-radius: 20px; - text-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; - color: #FFF; - text-align: center; - vertical-align: middle; - font-size: 1.2rem; - line-height: 20px; - font-weight: 700; -} - -@media (min-width: 768px) { - .account-info { - position: relative !important; - z-index: 5000; - } - - .account-info a.account-info__wrapper { - width: auto; - height: auto; - text-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; - color: #FFFFFF; - margin: 0 !important; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - padding: 0; - } - - .account-info a.account-info__wrapper:hover { - text-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; - background: rgba(255, 255, 255, 0.1); - border-top-left-radius: 5rem; - border-bottom-left-radius: 5rem; - border-top-right-radius: 0.5rem; - border-bottom-right-radius: 0.5rem; - color: #ff397f; - } - - .account-info a.account-info__wrapper:hover img { - border: 2px solid #ff397f; - -webkit-box-shadow: 0px 0px 0px 2px rgba(255, 255, 255, 0.1); - box-shadow: 0px 0px 0px 2px rgba(255, 255, 255, 0.1); - -webkit-transition: all 0.2s; - transition: all 0.2s; - } - - .account-info a.account-info__wrapper img { - display: block; - width: 100%; - max-width: 46px; - height: auto; - border: 2px solid transparent; - -webkit-box-shadow: 0px 0px 0px 2px rgba(255, 255, 255, 0.75); - box-shadow: 0px 0px 0px 2px rgba(255, 255, 255, 0.75); - margin-right: 15px; - } - - .account-info a.account-info__wrapper .account-info__trigger-icon { - padding: 0px 5px 0; - margin-top: -5px; - } - - .account-info.account-info--notification { - width: calc(33vw - 30px); - height: auto; - max-width: 300px; - margin-right: 0; - background-image: none; - position: relative; - } - - .account-info.account-info--menu-only { - position: relative; - width: calc(33vw - 30px); - height: auto; - max-height: none; - max-width: 300px; - background-image: none; - } - - .account-info .account-info__menu { - border-bottom: solid 1px rgba(255, 255, 255, 0.7); - } - - .account-info .account-info__menu.account-info__dropdown { - position: relative; - width: auto; - margin: 0; - background-color: transparent; - padding: 15px 0; - -webkit-box-shadow: none; - box-shadow: none; - border: none; - } - - .account-info .account-info__menu.account-info__dropdown ul { - display: block; - padding: 0; - margin: 0; - list-style: none; - } -} - -@media (min-width: 992px) { - .account-info.account-info--notification, .account-info.account-info--menu-only { - width: calc(25vw - 30px); - max-width: 270px; - } -} - -@media (min-width: 1200px) { - .account-info { - z-index: 5000; - } - - .account-info.account-info--notification { - position: relative !important; - } -} - -input.btn { - -webkit-appearance: none; - -moz-appearance: none; - appearance: none; -} - -.btn-list--right { - width: 100%; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-align: end; - -ms-flex-align: end; - align-items: flex-end; - -webkit-box-orient: vertical; - -webkit-box-direction: normal; - -ms-flex-direction: column; - flex-direction: column; - -webkit-box-pack: end; - -ms-flex-pack: end; - justify-content: flex-end; - -ms-flex-wrap: nowrap; - flex-wrap: nowrap; - -ms-flex-line-pack: start; - align-content: flex-start; -} - -.btn-list--right > .btn { - position: relative; - -webkit-box-flex: 1; - -ms-flex-positive: 1; - flex-grow: 1; -} - -.btn-list--right .opposite { - -ms-flex-item-align: start; - align-self: flex-start; - -webkit-box-ordinal-group: 0; - -ms-flex-order: -1; - order: -1; - -webkit-box-flex: 0; - -ms-flex-positive: 0; - flex-grow: 0; - position: absolute; -} - -.btn-list--left { - text-align: left; -} - -.btn-list--byside.btn-list--left { - float: left; -} - -.btn-list--byside.btn-list--right { - float: right; -} - -.btn[disabled], .btn.disabled { - opacity: 0.7 !important; - cursor: not-allowed !important; - color: rgba(5, 17, 30, 0.5) !important; - -webkit-transition: all 0.2s; - transition: all 0.2s; -} - -.btn-list--center { - text-align: center; - width: 80%; - max-width: 512px; - margin: auto; -} - -.btn-list--center > a.btn, .btn-list--center input.btn, .btn-list--center button.btn { - display: block; - margin: 2.5rem auto 2rem auto; -} - -.btn-list--center > a.btn:not(.btn--large):last-child, .btn-list--center input.btn:not(.btn--large):last-child, .btn-list--center button.btn:not(.btn--large):last-child { - margin: 2.5rem auto 2rem auto; -} - -.btn.btn--large { - width: 100%; - max-width: 32em; - padding: 0.3rem 1rem; - font-size: 1.8rem; -} - -.btn.btn--large .icon { - height: 1.8rem; - margin-right: 1rem; - display: inline-block; -} - -a.btn, input.btn, button.btn { - color: #05111E; - font-size: 1.3rem; - text-decoration: none; - padding: 0.1rem 1.5rem; - border-radius: 300px; - text-align: center; - text-shadow: none !important; - min-width: 12rem; - font-weight: 700; - line-height: 1.3; - margin: 15px 0; - border: none; - cursor: pointer; -} - -a.btn .icon, input.btn .icon, button.btn .icon { - height: 1.3rem; - margin-right: 1rem; - display: inline-block; -} - -a.btn:not(.btn--large):last-child, input.btn:not(.btn--large):last-child, button.btn:not(.btn--large):last-child { - margin-bottom: 0px; -} - -a.btn:not([disabled]):hover, input.btn:not([disabled]):hover, button.btn:not([disabled]):hover { - color: #FFFFFF; -} - -a.btn:focus, input.btn:focus, button.btn:focus { - -webkit-box-shadow: 0 0 0 4px #662D91 !important; - box-shadow: 0 0 0 4px #662D91 !important; - outline: none; -} - -.btn--green { - display: inline-block; - background: #1eb49c; - background-image: none; - -webkit-box-shadow: 0 0 0 4px rgba(30, 180, 156, 0.5) !important; - box-shadow: 0 0 0 4px rgba(30, 180, 156, 0.5) !important; - text-shadow: none; - -webkit-transition: all 0.2s ease; - transition: all 0.2s ease; - -webkit-transform: rotateX(0deg); - transform: rotateX(0deg); - -webkit-transform-style: preserve-3d; - transform-style: preserve-3d; -} - -.btn--green:not([disabled]):hover { - background: #18917e; - -webkit-transition: all 0.2s ease; - transition: all 0.2s ease; -} - -.btn--green:active { - background: #0c473d; -} - -.btn--blue { - display: inline-block; - background: #00c9ff; - background-image: none; - -webkit-box-shadow: 0 0 0 4px rgba(0, 201, 255, 0.5) !important; - box-shadow: 0 0 0 4px rgba(0, 201, 255, 0.5) !important; - text-shadow: none; - -webkit-transition: all 0.2s ease; - transition: all 0.2s ease; - -webkit-transform: rotateX(0deg); - transform: rotateX(0deg); - -webkit-transform-style: preserve-3d; - transform-style: preserve-3d; -} - -.btn--blue:not([disabled]):hover { - background: #00a9d6; - -webkit-transition: all 0.2s ease; - transition: all 0.2s ease; -} - -.btn--blue:active { - background: #006580; -} - -.btn--grey { - display: inline-block; - background: #c6c7cc; - background-image: none; - -webkit-box-shadow: 0 0 0 4px rgba(198, 199, 204, 0.5) !important; - box-shadow: 0 0 0 4px rgba(198, 199, 204, 0.5) !important; - text-shadow: none; - -webkit-transition: all 0.2s ease; - transition: all 0.2s ease; - -webkit-transform: rotateX(0deg); - transform: rotateX(0deg); - -webkit-transform-style: preserve-3d; - transform-style: preserve-3d; -} - -.btn--grey:not([disabled]):hover { - background: #b0b2b9; - -webkit-transition: all 0.2s ease; - transition: all 0.2s ease; -} - -.btn--grey:active { - background: #838590; -} - -.btn-list { - margin-top: 3rem; -} - -.flip { - -webkit-transform: rotateX(90deg); - transform: rotateX(90deg); - -webkit-transform-style: preserve-3d; - transform-style: preserve-3d; - -webkit-transition: all 0.2s; - transition: all 0.2s; -} - -@media (min-width: 768px) { - a.btn, input.btn, button.btn { - font-size: 1.6rem; - } - - .btn.btn--large { - padding: 0.4rem 0rem; - font-size: 2rem; - } - - .btn-list--center { - text-align: center; - } - - .btn-list--center > a.btn, .btn-list--center input.btn, .btn-list--center button.btn { - display: block; - margin: 2.5rem auto 2rem auto; - } - - .btn-list--center > a.btn:not(.btn--large):last-child, .btn-list--center input.btn:not(.btn--large):last-child, .btn-list--center button.btn:not(.btn--large):last-child { - margin: 2.5rem auto 2rem auto; - } -} - -.chosen-container { - position: relative; - width: 100% !important; - border-radius: 0; - display: block !important; - padding: 0.7rem 0.9rem; - font-size: 1.6rem; - line-height: 1.8; - color: #515155; - max-width: 32em; - width: 100%; - border: solid 2px #a6a7ab; - -webkit-box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.1); - box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.1); - -webkit-transition: border-color 0.2s; - transition: border-color 0.2s; - vertical-align: middle; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - transition: border-color 0.2s; -} - -.chosen-container:hover { - border-color: #515155; - -webkit-transition: border-color 0.2s; - transition: border-color 0.2s; -} - -.chosen-container:focus:hover, .chosen-container:focus { - outline: none; - border: solid 2px #662D91; - -webkit-transition: border-color 0.2s; - transition: border-color 0.2s; -} - -.form-item label { - display: block; - font-weight: 600; - margin-bottom: 0.3em; -} - -.chosen-container * { - -webkit-box-sizing: border-box; - box-sizing: border-box; -} - -.chosen-container .chosen-drop { - position: absolute; - top: 100%; - z-index: 1010; - width: calc(100% + 0.4rem); - padding: 0.7rem 0.9rem 0.7rem 1.6rem; - margin-left: -1.1rem; - border: solid 2px #a6a7ab; - border-top: 0; - background: #fff; - clip: rect(0, 0, 0, 0); -} - -.chosen-container:hover .chosen-drop { - border-color: #515155; - -webkit-transition: border-color 0.2s; - transition: border-color 0.2s; -} - -.chosen-container.chosen-with-drop .chosen-drop { - clip: auto; -} - -.chosen-container a { - cursor: pointer; -} - -.chosen-container .search-choice .group-name, .chosen-container a.chosen-single .group-name { - margin-right: 4px; - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; - font-weight: normal; - color: #515155; - text-decoration: none; - text-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; -} - -.chosen-container .search-choice .group-name:after, .chosen-container a.chosen-single .group-name:after { - content: ":"; - padding-left: 2px; - vertical-align: top; -} - -.chosen-container-single a.chosen-single { - position: relative; - display: block; - overflow: hidden; - padding: 0 0 0 8px; - height: 25px; - text-decoration: none; - white-space: nowrap; - line-height: 24px; - color: #515155; - text-decoration: none; - text-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; - font-size: 1.6rem; - font-family: Raleway; -} - -.chosen-container-single .chosen-default { - color: #999; -} - -.chosen-container-single a.chosen-single span { - display: block; - overflow: hidden; - margin-right: 26px; - text-overflow: ellipsis; - white-space: nowrap; - color: #515155; - text-decoration: none; - text-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; -} - -.chosen-container-single .chosen-single-with-deselect span { - margin-right: 38px; -} - -.chosen-container-single .chosen-single abbr { - position: absolute; - top: 6px; - right: 26px; - display: block; - width: 12px; - height: 12px; - background: url("chosen-sprite.png") -42px 1px no-repeat; - font-size: 1px; -} - -.chosen-container-single .chosen-single abbr:hover { - background-position: -42px -10px; -} - -.chosen-container-single.chosen-disabled .chosen-single abbr:hover { - background-position: -42px -10px; -} - -.chosen-container-single .chosen-single div { - position: absolute; - top: 0; - right: 0; - display: block; - width: 18px; - height: 100%; -} - -.chosen-container-single .chosen-single div b { - display: block; - width: 100%; - height: 100%; - background: url("chosen-sprite.png") no-repeat 0px 2px; -} - -.chosen-container-single .chosen-search { - position: relative; - z-index: 1010; - margin: 0; - padding: 3px 4px; - white-space: nowrap; -} - -.chosen-container-single .chosen-search input[type="text"] { - margin: 1px 0; - padding: 4px 20px 4px 5px; - width: 100%; - height: auto; - outline: 0; - border: 1px solid #aaa; - background: url("chosen-sprite.png") no-repeat 100% -20px; - font-size: 1em; - font-family: sans-serif; - line-height: normal; - border-radius: 0; - border: solid 2px #a6a7ab; -} - -.chosen-container-single .chosen-drop { - margin-top: -1px; - border-radius: 0 0 4px 4px; - background-clip: padding-box; -} - -.chosen-container-single.chosen-container-single-nosearch .chosen-search { - position: absolute; - clip: rect(0, 0, 0, 0); -} - -.chosen-container .chosen-results { - color: #444; - position: relative; - overflow-x: hidden; - overflow-y: auto; - margin: 0 4px 4px 0; - padding: 0 0 0 4px; - max-height: 240px; - -webkit-overflow-scrolling: touch; -} - -.chosen-container .chosen-results li { - display: none; - margin: 0; - padding: 5px 6px; - list-style: none; - line-height: 15px; - word-wrap: break-word; - -webkit-touch-callout: none; -} - -.chosen-container .chosen-results li.active-result { - display: list-item; - cursor: pointer; -} - -.chosen-container .chosen-results li.disabled-result { - display: list-item; - color: #ccc; - cursor: default; -} - -.chosen-container .chosen-results li.highlighted { - background-color: #662D91; - color: #fff; -} - -.chosen-container .chosen-results li.no-results { - color: #777; - display: list-item; - background: #f4f4f4; -} - -.chosen-container .chosen-results li.group-result { - display: list-item; - font-weight: bold; - cursor: default; -} - -.chosen-container .chosen-results li.group-option { - padding-left: 15px; -} - -.chosen-container .chosen-results li em { - font-style: normal; - text-decoration: underline; -} - -.chosen-container-multi .chosen-choices { - position: relative; - overflow: hidden; - margin: 0; - padding: 0 5px; - width: 100%; - height: auto; - border: 1px solid #aaa; - background-color: #fff; - background-image: -webkit-gradient(linear, left top, left bottom, color-stop(1%, #eee), color-stop(15%, #fff)); - background-image: linear-gradient(#eee 1%, #fff 15%); - cursor: text; -} - -.chosen-container-multi .chosen-choices li { - float: left; - list-style: none; -} - -.chosen-container-multi .chosen-choices li.search-field { - margin: 0; - padding: 0; - white-space: nowrap; -} - -.chosen-container-multi .chosen-choices li.search-field input[type="text"] { - margin: 1px 0; - padding: 0; - height: 25px; - outline: 0; - border: 0 !important; - background: transparent !important; - -webkit-box-shadow: none; - box-shadow: none; - color: #999; - font-size: 100%; - font-family: sans-serif; - line-height: normal; - border-radius: 0; - width: 25px; -} - -.chosen-container-multi .chosen-choices li.search-choice { - position: relative; - margin: 3px 5px 3px 0; - padding: 3px 20px 3px 5px; - border: 1px solid #aaa; - max-width: 100%; - border-radius: 3px; - background-color: #eeeeee; - background-image: -webkit-gradient(linear, left top, left bottom, color-stop(20%, #f4f4f4), color-stop(50%, #f0f0f0), color-stop(52%, #e8e8e8), to(#eee)); - background-image: linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eee 100%); - background-size: 100% 19px; - background-repeat: repeat-x; - background-clip: padding-box; - -webkit-box-shadow: 0 0 2px #fff inset, 0 1px 0 rgba(0, 0, 0, 0.05); - box-shadow: 0 0 2px #fff inset, 0 1px 0 rgba(0, 0, 0, 0.05); - color: #333; - line-height: 13px; - cursor: default; -} - -.chosen-container-multi .chosen-choices li.search-choice span { - word-wrap: break-word; -} - -.chosen-container-multi .chosen-choices li.search-choice .search-choice-close { - position: absolute; - top: 4px; - right: 3px; - display: block; - width: 12px; - height: 12px; - background: url("chosen-sprite.png") -42px 1px no-repeat; - font-size: 1px; -} - -.chosen-container-multi .chosen-choices li.search-choice .search-choice-close:hover { - background-position: -42px -10px; -} - -.chosen-container-multi .chosen-choices li.search-choice-disabled { - padding-right: 5px; - border: 1px solid #ccc; - background-color: #e4e4e4; - background-image: -webkit-gradient(linear, left top, left bottom, color-stop(20%, #f4f4f4), color-stop(50%, #f0f0f0), color-stop(52%, #e8e8e8), to(#eee)); - background-image: linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eee 100%); - color: #666; -} - -.chosen-container-multi .chosen-choices li.search-choice-focus { - background: #d4d4d4; -} - -.chosen-container-multi .chosen-choices li.search-choice-focus .search-choice-close { - background-position: -42px -10px; -} - -.chosen-container-multi .chosen-results { - margin: 0; - padding: 0; -} - -.chosen-container-multi .chosen-drop .result-selected { - display: list-item; - color: #ccc; - cursor: default; -} - -.chosen-container-active a.chosen-single { - color: #515155; - text-decoration: none; - text-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; -} - -.chosen-container-active.chosen-with-drop a.chosen-single div { - border-left: none; - background: transparent; -} - -.chosen-container-active.chosen-with-drop a.chosen-single div b { - background-position: -18px 2px; -} - -.chosen-container-active .chosen-choices { - border: 1px solid #5897fb; - -webkit-box-shadow: 0 0 5px rgba(0, 0, 0, 0.3); - box-shadow: 0 0 5px rgba(0, 0, 0, 0.3); -} - -.chosen-container-active .chosen-choices li.search-field input[type="text"] { - color: #222 !important; -} - -.chosen-disabled { - opacity: 0.5 !important; - cursor: default; -} - -.chosen-disabled .chosen-single { - cursor: default; -} - -.chosen-disabled .chosen-choices .search-choice .search-choice-close { - cursor: default; -} - -.chosen-rtl { - text-align: right; -} - -.chosen-rtl .chosen-single { - overflow: visible; - padding: 0 8px 0 0; -} - -.chosen-rtl .chosen-single span { - margin-right: 0; - margin-left: 26px; - direction: rtl; -} - -.chosen-rtl .chosen-single-with-deselect span { - margin-left: 38px; -} - -.chosen-rtl .chosen-single div { - right: auto; - left: 3px; -} - -.chosen-rtl .chosen-single abbr { - right: auto; - left: 26px; -} - -.chosen-rtl .chosen-choices li { - float: right; -} - -.chosen-rtl .chosen-choices li.search-field input[type="text"] { - direction: rtl; -} - -.chosen-rtl .chosen-choices li.search-choice { - margin: 3px 5px 3px 0; - padding: 3px 5px 3px 19px; -} - -.chosen-rtl .chosen-choices li.search-choice .search-choice-close { - right: auto; - left: 4px; -} - -.chosen-rtl.chosen-container-single .chosen-results { - margin: 0 0 4px 4px; - padding: 0 4px 0 0; -} - -.chosen-rtl .chosen-results li.group-option { - padding-right: 15px; - padding-left: 0; -} - -.chosen-rtl.chosen-container-active.chosen-with-drop .chosen-single div { - border-right: none; -} - -.chosen-rtl .chosen-search input[type="text"] { - padding: 4px 5px 4px 20px; - background: url("chosen-sprite.png") no-repeat -30px -20px; - direction: rtl; -} - -.chosen-rtl.chosen-container-single .chosen-single div b { - background-position: 6px 2px; -} - -.chosen-rtl.chosen-container-single.chosen-with-drop .chosen-single div b { - background-position: -12px 2px; -} - -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), only screen and (min-resolution: 144dpi), only screen and (min-resolution: 1.5dppx) { - .chosen-rtl .chosen-search input[type="text"], - .chosen-container-single .chosen-single abbr, - .chosen-container-single .chosen-single div b, - .chosen-container-single .chosen-search input[type="text"], - .chosen-container-multi .chosen-choices .search-choice .search-choice-close, - .chosen-container .chosen-results-scroll-down span, - .chosen-container .chosen-results-scroll-up span { - background-image: url("chosen-sprite@2x.png") !important; - background-size: 52px 37px !important; - background-repeat: no-repeat !important; - } -} - -.sub-section--comments__title { - padding-left: 3.6rem; - min-height: 3.7rem; - margin-bottom: 0.7rem; - background-image: url(../images/article--comment-icon.svg); - background-position: 0.5rem 0; - background-repeat: no-repeat; - background-size: 2.38rem 2.5rem; -} - -.sub-section--comments .indented { - margin-left: 0rem !important; - border-left: solid 2px #CCC; - padding-left: 1.5rem; -} - -.sub-section--comments .indented > .indented > .indented > .indented { - margin-left: 0rem; - border-left: none; - padding-left: 0rem; -} - -.sub-section--comments > ul { - padding: 0; - margin: 0; -} - -.sub-section--comments ul.links.inline { - margin: 0; - padding: 0; - padding-bottom: 15px; -} - -.sub-section--comments ul.links.inline li { - display: inline-block; -} - -.sub-section--comments li { - list-style: none; -} - -.sub-section--comments li .profile-shortinfo { - margin-top: 15px; -} - -.sub-section--comments .profile-shortinfo { - margin-bottom: -2rem; -} - -.sub-section--comments .profile-shortinfo ~ p { - border-left: solid 2px #CCC; - padding-left: 1.5rem; -} - -.sub-section--comments .profile-shortinfo ~ p + p { - border-left: solid 2px #CCC; - padding-left: 1.5rem; - margin-top: -1.6rem; - padding-top: 1.6rem; -} - -.sub-section--comments .comment-reply a { - padding-left: 2.6rem; - min-height: 3.7rem; - background-image: url(../images/article--comment-outline-icon.svg); - background-position: 0.5rem 0; - background-repeat: no-repeat; - background-size: 1.7rem 1.7rem; - text-decoration: none; -} - -.sub-section--comments .comment-edit a { - padding-left: 2.6rem; - min-height: 3.7rem; - background-image: url(../images/article--edit-outline-icon.svg); - background-position: 0.5rem 0; - background-repeat: no-repeat; - background-size: 1.7rem 1.7rem; - text-decoration: none; -} - -.sub-section--comments .comment-delete a { - padding-left: 2.6rem; - min-height: 3.7rem; - background-image: url(../images/article--delete-outline-icon.svg); - background-position: 0.5rem 0; - background-repeat: no-repeat; - background-size: 1.7rem 1.7rem; - text-decoration: none; -} - -.cta--wrapper { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - position: absolute; - top: 0; - width: 100%; -} - -.cta--sidebar { - color: #FFFFFF; - display: inline-block; - text-align: center; - width: 100%; - height: 3.5rem; - cursor: pointer; -} - -.cta--sidebar h3 { - margin-top: 0; - text-shadow: none; - color: #000; -} - -.cta--sidebar p { - margin: 0; - font-weight: 700; - text-shadow: none; - color: #000; - line-height: 3.5rem; - max-width: 100%; -} - -.cta--sidebar p span { - font-weight: 400; -} - -.cta--join { - background: rgba(102, 45, 145, 0.5); -} - -.cta--join:hover { - background: rgba(102, 45, 145, 0.8); - -webkit-transition: all 0.2s; - transition: all 0.2s; -} - -.cta--join:hover p { - color: #FFFFFF; -} - -.cta--signin { - background: rgba(102, 45, 145, 0.3); -} - -.cta--signin:hover { - background: rgba(102, 45, 145, 0.8); - -webkit-transition: all 0.2s; - transition: all 0.2s; -} - -.cta--signin:hover p { - color: #FFFFFF; -} - -@media (min-width: 768px) { - .cta--wrapper { - display: block; - position: relative; - top: auto; - } - - .cta--sidebar { - position: relative; - height: auto; - border-radius: 15px; - background-color: rgba(255, 255, 255, 0.2); - margin: 0px; - margin-bottom: 15px; - padding: 15px; - text-align: left; - -webkit-box-shadow: none; - box-shadow: none; - } - - .cta--sidebar h3, .cta--sidebar p { - color: #FFFFFF; - } - - .cta--sidebar p { - margin-bottom: 0; - margin-top: 1.4rem; - line-height: 1.8; - } -} - -.media--type-file { - margin-top: 16px; -} - -.field--type-file .file { - list-style: none; - background: transparent no-repeat left top; - background-size: 32px 38px; - padding-left: 45px; - display: block; - min-height: 38px; -} - -.field--type-file .file.file--mime-application-pdf { - background-image: url(../images/file--pdf.jpg); -} - -.field--type-file .file.file--mime-application-txt, .field--type-file .file.file--mime-application-rtf, .field--type-file .file.file--mime-application-doc, .field--type-file .file.file--mime-application-docx, .field--type-file .file.file--mime-application-odf, .field--type-file .file.file--mime-application-odg, .field--type-file .file.file--mime-application-odp, .field--type-file .file.file--mime-application-ods, .field--type-file .file.file--mime-application-odt, .field--type-file .file.file--mime-application-fodt, .field--type-file .file.file--mime-application-fodg, .field--type-file .file.file--mime-application-apges { - background-image: url(../images/file--txt.jpg); -} - -.field--type-file .file.file--mime-application-ppt, .field--type-file .file.file--mime-application-pptx, .field--type-file .file.file--mime-application-key { - background-image: url(../images/file--ppt.ppt); -} - -.field--type-file .file.file--mime-application-xls, .field--type-file .file.file--mime-application-xlsx, .field--type-file .file.file--mime-application-numbers { - background-image: url(../images/file--xls.jpg); -} - -.general-footer--card { - position: relative !important; - bottom: auto; - z-index: auto; - width: 100%; -} - -.general-footer--card ul.menu { - padding: 0; - margin: 1.5rem; - margin-top: 3rem; -} - -.general-footer--card ul.menu li { - display: inline-block; -} - -.general-footer--card ul.menu li::after { - content: " | "; -} - -.general-footer--card ul.menu li:last-child::after { - content: ""; -} - -.general-footer--card ul.menu li a { - color: #a6a7ab; - text-shadow: 0 2px 0 #FFFFFF, 0 3px 0 #FFFFFF, 1px 2px 0 #FFFFFF, -1px 2px 0 #FFFFFF; - -webkit-box-shadow: 0 1px 0 0 #662D91; - box-shadow: 0 1px 0 0 #662D91; - -webkit-transition: all .2s ease; - transition: all .2s ease; -} - -.general-footer--card ul.menu li a:hover { - color: #1a3773; - -webkit-box-shadow: 0 1px 0 0 #662D91; - box-shadow: 0 1px 0 0 #662D91; - -webkit-transition: all .2s ease; - transition: all .2s ease; -} - -@media (min-width: 768px) { - .general-footer { - position: fixed !important; - bottom: 10px; - z-index: 500; - width: 33%; - background: #26252B; - } - - .general-footer ul.menu { - padding: 0; - margin: 1.5rem; - margin-top: 3rem; - } - - .general-footer ul.menu li { - display: inline-block; - } - - .general-footer ul.menu li::after { - content: " | "; - } - - .general-footer ul.menu li a { - color: #a6a7ab; - text-shadow: 0 2px 0 #26252B, 0 3px 0 #26252B, 1px 2px 0 #26252B, -1px 2px 0 #26252B; - -webkit-box-shadow: 0 1px 0 0 #c6c7cc; - box-shadow: 0 1px 0 0 #c6c7cc; - -webkit-transition: all .2s ease; - transition: all .2s ease; - } - - .general-footer ul.menu li a:hover { - color: #1a3773; - -webkit-box-shadow: 0 1px 0 0 #FFFFFF; - box-shadow: 0 1px 0 0 #FFFFFF; - -webkit-transition: all .2s ease; - transition: all .2s ease; - } - - .general-footer--card { - position: relative !important; - bottom: auto; - z-index: auto; - width: 100%; - } - - .general-footer--card ul.menu { - padding: 0; - margin: 1.5rem; - margin-top: 3rem; - } - - .general-footer--card ul.menu li { - display: inline-block; - } - - .general-footer--card ul.menu li::after { - content: " | "; - } - - .general-footer--card ul.menu li a { - color: #a6a7ab; - text-shadow: 0 2px 0 #FFFFFF, 0 3px 0 #FFFFFF, 1px 2px 0 #FFFFFF, -1px 2px 0 #FFFFFF; - -webkit-box-shadow: 0 1px 0 0 #662D91; - box-shadow: 0 1px 0 0 #662D91; - -webkit-transition: all .2s ease; - transition: all .2s ease; - } - - .general-footer--card ul.menu li a:hover { - color: #1a3773; - -webkit-box-shadow: 0 1px 0 0 #662D91; - box-shadow: 0 1px 0 0 #662D91; - -webkit-transition: all .2s ease; - transition: all .2s ease; - } -} - -@media (min-width: 992px) { - .general-footer { - width: 25%; - max-width: 300px; - position: relative !important; - top: auto !important; - left: auto !important; - right: auto !important; - bottom: auto; - height: 100vh; - float: right; - background-color: #26252B; - background-image: url(../images/body-bckgrd--md.svg); - background-repeat: no-repeat; - background-position: 50% top; - background-attachment: fixed; - background-size: 100% 80px; - z-index: 4; - padding: 60px 15px; - padding-bottom: 500em; - margin-bottom: -500em; - } - - .general-footer > * { - position: fixed; - width: calc(25% - 30px); - max-width: 270px; - } - - .general-footer ul.menu { - position: fixed; - width: 100%; - bottom: 0; - } - - .general-footer--card { - background-color: transparent; - bottom: auto; - z-index: auto; - width: 100%; - height: auto; - padding: 0; - margin-bottom: 0; - } - - .general-footer--card > * { - position: auto; - width: 100%; - max-width: 100%; - } - - .general-footer--card ul.menu { - position: relative; - width: 100%; - bottom: 0; - } -} - -.new-item { - position: fixed; - right: 0px; - bottom: 10px; - width: 21vw; - text-align: center; -} - -.new-item .create-new { - background: url(../images/new-item__button__background--sm.svg) no-repeat center center; - background-size: 42px 42px; - border: none; - height: 45px; - width: 45px; - font-size: 2.2rem; -} - -.pre-banner { - width: 100%; - max-width: 768px; - background-image: url(../images/header-arch-only.svg); - background-repeat: no-repeat; - background-size: 100% 82px; - position: fixed; - left: 50%; - -webkit-transform: translateX(-50%); - transform: translateX(-50%); - min-height: 82px; - z-index: 1200; -} - -.logo-wrapper--index { - -webkit-box-shadow: 0px 0px 82px 13px rgba(255, 255, 255, 0.6); - box-shadow: 0px 0px 82px 13px rgba(255, 255, 255, 0.6); - background-color: rgba(255, 255, 255, 0.4); - padding: 15px; - border-radius: 35px; - max-width: calc(32em + 30px); - margin: auto; - -webkit-box-sizing: border-box; - box-sizing: border-box; -} - -.background--talk { - background-image: url(../images/homepage-illustration.jpg); - background-repeat: no-repeat; - background-size: 768px 400px; - background-size: contain; - background-position: center top; - min-height: calc(20vh + 82px); - background-color: #FFF; - padding-top: 120px; - text-align: center; -} - -.logo { - width: 100%; - max-width: 515px; - height: auto; - margin: auto; -} - -@media (min-width: 768px) { - .general-header { - position: fixed; - z-index: 5; - right: auto; - bottom: auto; - left: 0; - top: 0; - width: 33%; - background: #26252B; - float: left; - height: 100vh; - padding: 90px 15px 130px; - overflow: auto; - } - - .new-item { - position: relative; - right: auto; - bottom: auto; - width: 100%; - text-align: left; - } - - .new-item .create-new { - display: block; - background: white; - background-size: auto; - border: none; - height: auto; - width: 100%; - font-size: 1.6rem; - line-height: 1.8; - padding: 0.5rem 0.8rem; - border-radius: 0.5rem; - border: solid 3px #00c9ff; - color: #05111E; - text-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; - -webkit-transition: background-color 0.2s; - transition: background-color 0.2s; - } - - .new-item .create-new svg { - margin-right: 1.5rem; - } - - .new-item .create-new:hover { - -webkit-box-shadow: none; - box-shadow: none; - background: #00c9ff; - -webkit-transition: background-color 0.2s; - transition: background-color 0.2s; - color: #05111E; - } - - .new-item .create-new.active { - background: rgba(255, 255, 255, 0.1); - border-bottom: none; - } -} - -@media (min-width: 992px) { - .general-header { - position: fixed; - right: auto; - bottom: auto; - left: auto; - top: auto; - width: 25%; - max-width: 300px; - background: #26252B; - float: left; - height: 100vh; - padding: 90px 15px 15px; - } -} - -.nav--tabs::-webkit-scrollbar { - width: 2px; - height: 2px; -} - -.nav--tabs::-webkit-scrollbar-button { - width: 2px; - height: 2px; -} - -.inpage-nav { - border-bottom: solid 1px #dfe0e5; -} - -.inpage-nav .nav--tabs { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-orient: horizontal; - -webkit-box-direction: normal; - -ms-flex-direction: row; - flex-direction: row; - -ms-flex-wrap: nowrap; - flex-wrap: nowrap; - margin-bottom: 0; - padding: 0 0 0 15px; - width: 100%; - overflow-y: auto; -} - -.inpage-nav .nav--tabs li { - list-style: none; - display: block; - -ms-flex-preferred-size: 100px; - flex-basis: 100px; - -webkit-box-flex: 0; - -ms-flex: 0; - flex: 0; - padding: 0 15px 2px; -} - -.inpage-nav .nav--tabs li:first-child { - padding-left: 0; -} - -.inpage-nav .nav--tabs li a { - display: block; - white-space: nowrap; - -webkit-box-shadow: none; - box-shadow: none; - box-shadow: none; -} - -.inpage-nav .nav--tabs li a:after { - content: ""; - display: block; - height: 0px; - background-color: #FFFFFF; - margin-top: 8px; - padding: 0 9px; - margin-bottom: -4px; - -webkit-transition: all 0.2s; - transition: all 0.2s; -} - -.inpage-nav .nav--tabs li a:hover::after { - margin-top: 2px; - height: 5px; - background-color: #a6a7ab; - -webkit-transition: all 0.2s; - transition: all 0.2s; -} - -.inpage-nav .nav--tabs li a.active { - color: #515155; - font-weight: 600; -} - -.inpage-nav .nav--tabs li a.active::after { - margin-top: 2px; - height: 5px; - background-color: #662D91; - -webkit-transition: all 0.2s; - transition: all 0.2s; -} - -.inpage-nav .nav--tabs li a.active:hover { - cursor: default; -} - -.tab-content .tab-pane { - display: none; -} - -.tab-content .tab-pane.active { - display: block; -} - -.logo-area { - background-image: -webkit-gradient(linear, left top, left bottom, from(#1a3773), to(#1a3773)), url("../images/logo-area-bckgrd--sm.svg"); - background-image: linear-gradient(#1a3773, #1a3773), url("../images/logo-area-bckgrd--sm.svg"); - background-repeat: no-repeat; - background-size: 100vw 25px, 100vw 10vh; - background-position: center 0, center 25px; - height: 100px; - width: 100vw; -} - -img.logo { - height: auto; -} - -img.logo-cover { - max-width: 100%; - height: auto; -} - -h1.logo--title { - margin: 0; - padding: 15px; - padding-bottom: 0; -} - -a.logo__link { - text-decoration: none; - text-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; - display: block; - background-image: url(../images/logo_futurium_lab_negatif.svg); - background-size: contain; - background-repeat: no-repeat; - width: calc(70vw - 15px); - max-width: 300px; - height: 0; - padding-top: 13.6%; -} - -a.logo__link span { - visibility: hidden; -} - -@media (min-width: 768px) { - .logo-area { - position: fixed; - z-index: 6; - top: 0; - background-image: none; - width: 33%; - padding: 15px; - } - - h1.logo--title { - margin: 0; - padding: 0px; - } - - a.logo__link { - width: 100%; - background-size: cover; - } -} - -@media (min-width: 992px) { - .logo-area { - width: 25%; - max-width: 300px; - } - - h1.logo--title { - max-width: 270px; - } -} - -.navigation-menu { - position: fixed; - bottom: 0px; - background: url(../images/navigation-menu__background--sm.svg) no-repeat center bottom; - background-size: 100vw 27vw; - width: 100vw; - height: 25vw; - max-height: 100px; - z-index: 1000; -} - -.navigation-menu__list { - float: left; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - padding: 0; - -ms-flex-pack: distribute; - justify-content: space-around; - width: 36vw; - height: 25vw; - max-height: 100px; - -webkit-box-align: end; - -ms-flex-align: end; - align-items: flex-end; - margin: 0; -} - -.navigation-menu__list li { - display: inline-block; - font-size: 2rem; - text-align: center; - line-height: 45px; - width: 16vw; - height: 12.5vw; - max-width: 54px; - max-height: 39px; -} - -.navigation-menu__list li.active { - background: url(../images/navigation-menu__item--active__background--sm.svg) no-repeat center bottom; - background-size: cover; - border-bottom: solid 2px #ff397f; -} - -.navigation-menu__list li.active a { - color: #ff88b2; -} - -.navigation-menu__list li a { - color: #FFFFFF; - text-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; -} - -.not-signed .navigation-menu, .not-signed .new-item { - display: none; -} - -@media (max-width: 767.98px) and (orientation: landscape) { - .navigation-menu { - background-position: center bottom; - background-size: 100vw 23vh; - } - - .navigation-menu__list { - padding: 0; - margin: 0vw 1vw 0; - } -} - -@media (min-width: 768px) { - .not-signed .navigation-menu { - display: block; - } - - .navigation-menu { - position: relative; - bottom: auto; - background: none; - width: auto; - height: auto; - max-height: none; - padding-top: 15px; - } - - .navigation-menu__list { - width: auto; - height: auto; - max-height: none; - display: block; - float: none; - -webkit-box-align: baseline; - -ms-flex-align: baseline; - align-items: baseline; - margin: 0; - } - - .navigation-menu__list li { - display: block; - width: auto; - height: auto; - max-width: none; - max-height: none; - text-align: left; - font-size: 1.6rem; - line-height: inherit; - padding: 0.5rem 0.8rem; - border-radius: 0.5rem; - } - - .navigation-menu__list li svg { - margin-right: 1.5rem; - } - - .navigation-menu__list li a { - color: #FFFFFF; - text-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; - padding: 6px 0; - box-shadow: none; - } - - .navigation-menu__list li a:hover { - color: #ff397f; - -webkit-box-shadow: none; - box-shadow: none; - } - - .navigation-menu__list li a:hover .badge { - background-color: #ff397f; - -webkit-transition: all 0.2s; - transition: all 0.2s; - } - - .navigation-menu__list li.active { - background: rgba(255, 255, 255, 0.1); - border-bottom: none; - } - - .navigation-menu__list li.active .fas { - color: #ff397f; - } - - .navigation-menu__list--feeds svg { - min-width: 2rem; - } - - .navigation-menu__list--tools { - position: fixed; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-pack: end; - -ms-flex-pack: end; - justify-content: flex-end; - top: 0px; - z-index: 10001; - background-image: url("../images/logo-area-bckgrd--md.svg"); - background-repeat: no-repeat; - background-size: 100% 80px; - background-position: left top; - height: 100px; - width: 100vw; - margin-left: -15px; - } - - .navigation-menu__list--tools:empty { - background-image: url(../images/logo-area-bckgrd--md--no-action.svg); - } - - .navigation-menu__list--tools.navigation-menu__list--single-tool { - background-image: url(../images/logo-area-bckgrd--md--one-action.svg); - } - - .navigation-menu__list--tools .navigation-menu__item { - display: inline-block; - padding: 0; - margin-left: 0px; - } - - .navigation-menu__list--tools .navigation-menu__item:only-child { - display: block; - margin: 0px 0% 0 -2.45% !important; - position: absolute; - height: 54px; - width: 54px; - } - - .navigation-menu__list--tools .navigation-menu__item:first-child { - display: block; - margin: 11px 0% 0 -8.75%; - position: absolute; - height: 54px; - width: 54px; - } - - .navigation-menu__list--tools .navigation-menu__item:nth-child(2) { - display: block; - margin: 0px 0% 0 -3.75%; - position: absolute; - height: 42px; - width: 42px; - } - - .navigation-menu__list--tools .navigation-menu__item--tool { - text-align: center; - display: inline-block; - background-image: url(../images/navigation-tools__btn__background.svg); - background-repeat: none; - color: #05111E; - } - - .navigation-menu__list--tools .navigation-menu__item--tool.navigation-menu__item--filter { - height: 54px; - width: 54px; - background-size: 54px 54px; - font-size: 2rem; - padding-top: 0.9rem; - } - - .navigation-menu__list--tools .navigation-menu__item--tool.navigation-menu__item--filter svg { - margin: auto; - } - - .navigation-menu__list--tools .navigation-menu__item--tool.navigation-menu__item--search { - background-size: 42px 42px; - display: inline-block; - line-height: 42px; - height: 42px; - width: 42px; - margin: 30px 20px 0 8px; - } - - .navigation-menu__list--tools .navigation-menu__item--tool.navigation-menu__item--search svg { - margin: auto; - } - - .navigation-menu .badge { - background: rgba(255, 255, 255, 0.8); - padding: 0rem 0.5rem 0.1rem; - border-radius: 0.5rem; - color: #05111E; - text-align: center; - } -} - -@media (min-width: 992px) { - .navigation-menu__list--tools { - background-size: 100% 80px; - background-position: left top; - height: 100px; - width: 75vw; - max-width: 900px; - margin-left: -15px; - } - - .navigation-menu__list--tools .navigation-menu__item:only-child { - display: block; - margin: 0px 0% 0 -18px !important; - position: absolute; - height: 54px; - width: 54px; - } -} - -@media (min-width: 1100px) { - .navigation-menu__list--tools .navigation-menu__item:only-child { - display: block; - margin: 0px 0% 0 -2.75% !important; - position: absolute; - height: 54px; - width: 54px; - } -} - -.newsfeed { - margin: 0 -15px; -} - -.sub-section { - border-top: solid 1px #a6a7ab; - margin-bottom: 16px; -} - -.field--type-video { - position: relative; - padding-bottom: 56.25%; - padding-top: 30px; - height: 0; - overflow: hidden; -} - -.field--type-video iframe, -.field--type-video object, -.field--type-video embed { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; -} - -.newsfeed__item h2 { - padding-left: 32px; - background: transparent left top no-repeat; - background-size: 22px 24px; - margin: 0 0 1.8rem 0; -} - -.newsfeed__item h2 .newsfeed__item__state { - opacity: 0.8; - white-space: nowrap; -} - -.newsfeed__item h2 a { - font-family: 'Raleway'; - font-weight: 800; - color: #26252B; - text-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; -} - -.newsfeed__item h2 a:hover { - color: #662D91; - text-shadow: 0 2px 0 #FFFFFF, 0 3px 0 #FFFFFF, 1px 2px 0 #FFFFFF, -1px 2px 0 #FFFFFF; - -webkit-box-shadow: 0 1px 0 0 #662D91; - box-shadow: 0 1px 0 0 #662D91; -} - -.newsfeed__item .field--name-field-ngf-cover-image, .newsfeed__item .field--name-field-media-image { - border-radius: 10px; - background: #1f1e23; - max-height: 320px; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-pack: center; - -ms-flex-pack: center; - justify-content: center; - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - overflow: hidden; -} - -.newsfeed__item .field--name-field-ngf-cover-image img.responsive, .newsfeed__item .field--name-field-media-image img.responsive { - max-height: 320px; - width: auto; - -ms-flex-negative: 0; - flex-shrink: 0; - display: block; -} - -.newsfeed__legend-copyright { - font-size: 1.3rem; - margin-top: 0.1em; - color: #05111E; - opacity: 0.8; - text-align: center; - max-width: 100%; -} - -.newsfeed__legend-copyright span:after { - content: " | "; - display: inline; -} - -.newsfeed__legend-copyright span:last-child:after { - content: ""; -} - -.newsfeed__legend-copyright span a { - color: #515155 !important; - -webkit-box-shadow: 0 1px 0 0 #515155 !important; - box-shadow: 0 1px 0 0 #515155 !important; -} - -.newsfeed__legend-copyright span a:hover { - color: #662D91 !important; - -webkit-box-shadow: 0 1px 0 0 #662D91 !important; - box-shadow: 0 1px 0 0 #662D91 !important; -} - -.newsfeed__item--ngf-discussion h2 { - background-image: url(../images/article--discussion-icon.svg); - background-size: 2.38rem 2.5rem; -} - -.newsfeed__item--ngf-event h2 { - background-image: url(../images/article--event-icon.svg); - background-size: 2.38rem 2.5rem; -} - -.newsfeed__item--unpublished h2 { - background-image: url(../images/article--draft-icon.svg); - background-size: 2.38rem 2.5rem; -} - -.newsfeed__item--pinned h2 { - background-image: url(../images/article--pinned-icon.svg); - background-size: 2.38rem 2.5rem; - padding-left: 25px; -} - -.newsfeed__item--teaser { - background-image: url(../images/hr--wavy.svg); - background-repeat: no-repeat; - background-position: center top; - padding: 7.5rem 15px 4rem 15px; - background-size: 100% 40px; - margin-top: -30px; -} - -.newsfeed__item--teaser:first-child { - padding-top: 4rem; - background-image: none !important; - margin-top: 0px; -} - -.newsfeed__item--pinned { - color: #05111E; - background-image: url(../images/hr--wavy.svg), -webkit-gradient(linear, left top, left bottom, color-stop(50%, #f0e7f7), color-stop(50%, #f0e7f7)); - background-image: url(../images/hr--wavy.svg), linear-gradient(#f0e7f7 50%, #f0e7f7 50%); - background-repeat: no-repeat, no-repeat; - background-position: center top, center bottom; - background-size: 100% 40px, 100% calc(100% - 28px); -} - -.newsfeed__item--pinned a, .newsfeed__item--pinned a:hover, .newsfeed__item--pinned h2 a, .newsfeed__item--pinned h2 a:hover { - text-shadow: 0 2px 0 #f0e7f7, 0 3px 0 #f0e7f7, 1px 2px 0 #f0e7f7, -1px 2px 0 #f0e7f7; -} - -.newsfeed__item--pinned.newsfeed__item--teaser:first-child { - background-color: #f0e7f7; -} - -.newsfeed__item--unpublished { - color: #05111E; - background-image: url(../images/hr--wavy.svg), -webkit-gradient(linear, left top, left bottom, color-stop(50%, #ffebeb), color-stop(50%, #ffebeb)); - background-image: url(../images/hr--wavy.svg), linear-gradient(#ffebeb 50%, #ffebeb 50%); - background-repeat: no-repeat, no-repeat; - background-position: center top, center bottom; - background-size: 100% 40px, 100% calc(100% - 28px); -} - -.newsfeed__item--unpublished > * a, .newsfeed__item--unpublished > * a:hover, .newsfeed__item--unpublished h2 a, .newsfeed__item--unpublished h2 a:hover { - text-shadow: 0 2px 0 #ffebeb, 0 3px 0 #ffebeb, 1px 2px 0 #ffebeb, -1px 2px 0 #ffebeb; -} - -.newsfeed__item--unpublished.newsfeed__item--teaser:first-child { - background-color: #ffebeb; -} - -.profile-shortinfo { - margin-bottom: 2rem; -} - -.profile-shortinfo.profile-shortinfo--group { - background: url(../images/profile-shortinfo--group__background.svg) no-repeat left top; - background-size: 5.7rem 8.3rem; -} - -.profile-shortinfo.profile-shortinfo--group .profile-shortinfo__ilustration { - width: 5.7rem; - height: 8.3rem; - margin-right: 1.7rem; - float: left; -} - -.profile-shortinfo.profile-shortinfo--group img.responsive.profile-shortinfo__picture--account { - margin-left: 0.5rem; - margin-top: 0.6rem; -} - -.profile-shortinfo.profile-shortinfo--no-group { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - background: none; -} - -.profile-shortinfo.profile-shortinfo--no-group .profile-shortinfo__ilustration { - width: 5.6rem; - height: 5.6rem; - margin-right: 1.7rem; - -webkit-box-flex: 0; - -ms-flex: 0 0 5.6rem; - flex: 0 0 5.6rem; - border-radius: 100px; - border: solid 5px rgba(255, 57, 127, 0.5); -} - -.profile-shortinfo.profile-shortinfo--no-group .profile-shortinfo__action { - -webkit-box-flex: 0; - -ms-flex: 0 0 5.6rem; - flex: 0 0 5.6rem; -} - -.profile-shortinfo.profile-shortinfo--no-group img.responsive.profile-shortinfo__picture--account { - margin-left: 0rem; - margin-top: 0rem; -} - -.profile-shortinfo.profile-shortinfo--no-group .profile-shortinfo__link.profile-shortinfo__link--account { - margin-left: 0rem; - margin-top: 0rem; -} - -.profile-shortinfo img.responsive.profile-shortinfo__picture--account { - width: 4.6rem; - height: 4.6rem; - border-radius: 100px; - display: block; -} - -.profile-shortinfo img.responsive.profile-shortinfo__picture--group { - margin-left: 3rem; - margin-top: 5px; - width: 2rem; - height: 2rem; - border-radius: 100px; - display: block; -} - -.profile-shortinfo .profile-shortinfo__link { - text-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; -} - -.profile-shortinfo .profile-shortinfo__link img.responsive.profile-shortinfo__picture--account { - margin-left: 0; - margin-top: 0; - width: calc(4.6rem - 4px); - height: calc(4.6rem - 4px); -} - -.profile-shortinfo .profile-shortinfo__link img.responsive.profile-shortinfo__picture--group { - margin-left: 0; - margin-top: 0; - width: calc(2rem - 2px); - height: calc(2rem - 2px); -} - -.profile-shortinfo .profile-shortinfo__link--group { - border-radius: 100px; - border: solid 1px #ff397f; - -webkit-transition: border 0.2s; - transition: border 0.2s; - display: block; - width: 2rem; - height: 2rem; - margin-left: 3rem; - margin-top: 5px; - border: solid 1px #ff397f; - transition: border 0.2s; -} - -.profile-shortinfo .profile-shortinfo__link--group:hover, .profile-shortinfo .profile-shortinfo__link--group:focus { - text-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; - background-color: #662D91; - outline: none; - border: solid 1px #662D91; - -webkit-transition: border 0.2s; - transition: border 0.2s; -} - -.profile-shortinfo .profile-shortinfo__link--group:hover img, .profile-shortinfo .profile-shortinfo__link--group:focus img { - opacity: 0.6; -} - -.profile-shortinfo .profile-shortinfo__link--account { - border-radius: 100px; - border: solid 2px #ff397f; - -webkit-transition: border 0.2s; - transition: border 0.2s; - display: block; - width: 4.6rem; - height: 4.6rem; - margin-left: 0.5rem; - margin-top: 0.6rem; -} - -.profile-shortinfo .profile-shortinfo__link--account:hover, .profile-shortinfo .profile-shortinfo__link--account:focus { - text-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; - background-color: #662D91; - outline: none; - border: solid 2px #662D91; - -webkit-transition: border 0.2s; - transition: border 0.2s; -} - -.profile-shortinfo .profile-shortinfo__link--account:hover img, .profile-shortinfo .profile-shortinfo__link--account:focus img { - opacity: 0.6; -} - -.profile-shortinfo__details { - float: left; - width: calc(100% - 7.4rem); -} - -.profile-shortinfo__details .profile-shortinfo__author { - font-size: 2rem; - font-weight: 700; - color: #515155; - margin: 0; - padding: 0.2rem 0 0 0; -} - -.profile-shortinfo__details .profile-shortinfo__author .profile-shortinfo__account-link { - text-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; - font-weight: 700; - color: #515155; -} - -.profile-shortinfo__details .profile-shortinfo__author .profile-shortinfo__account-link:hover { - color: #662D91; - text-shadow: 0 2px 0 #FFFFFF, 0 3px 0 #FFFFFF, 1px 2px 0 #FFFFFF, -1px 2px 0 #FFFFFF; - -webkit-box-shadow: 0 1px 0 0 #662D91; - box-shadow: 0 1px 0 0 #662D91; -} - -.profile-shortinfo__details .profile-shortinfo__metadata { - margin-top: 0.2rem; - line-height: 1.4; -} - -.profile-listing { - padding: 0 0px; - margin-top: 30px; -} - -header.profile { - text-align: center; - padding-left: 0px; - padding-right: 0px; -} - -header.profile ~ .inpage-nav { - margin-left: -15px; - margin-right: -15px; -} - -header.profile ~ .newsfeed { - margin-left: -15px; - margin-right: -15px; -} - -header.profile .profile__pic { - width: 100%; - height: 100%; - border-radius: 300px; -} - -header.profile a.profile__pic__link { - display: block; - width: 100px; - height: 100px; - margin: auto; - padding: 2px; - background-color: #ff397f; - border: solid 2px #ff88b2; - border-radius: 300px; - text-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; - text-decoration: none; -} - -header.profile a.profile__pic__link:hover { - text-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; - background-color: #662D91; -} - -header.profile a.profile__pic__link:hover .profile__pic { - opacity: 0.8; -} - -header.profile h2 { - margin-bottom: 0rem; - color: #26252B; -} - -header.profile h2 a { - font-weight: 600; - color: #26252B; - text-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; - -webkit-transition: all .2s ease; - transition: all .2s ease; -} - -header.profile h2 + h4 { - margin-top: 0.4rem; -} - -header.profile h2 + h4 a { - color: #515155; - font-weight: 600; -} - -header.profile .profile__link--about { - display: inline-block; - margin-bottom: 1.8rem; - font-size: 1.4rem; - line-height: 1.2; - -webkit-transition: margin .2s; - transition: margin .2s; -} - -header.profile .profile__link--about i, header.profile .profile__link--about svg { - margin-left: 0rem; - -webkit-transition: margin .2s; - transition: margin .2s; -} - -header.profile .profile__link--about:hover { - margin-left: 0.5rem; - -webkit-transition: margin .2s; - transition: margin .2s; -} - -header.profile .profile__link--about:hover i, header.profile .profile__link--about:hover svg { - margin-left: 0.5rem; - -webkit-transition: margin .2s; - transition: margin .2s; -} - -header.profile .profile__link { - -webkit-box-shadow: none; - box-shadow: none; -} - -header.profile .profile__link:hover { - -webkit-box-shadow: none; - box-shadow: none; -} - -header.profile .profile__qrcode { - max-width: 100%; - height: auto; -} - -header.profile .profile__link--back { - display: inline-block; - margin-bottom: 1.8rem; - font-size: 1.4rem; - line-height: 1.2; - -webkit-transition: margin .2s; - transition: margin .2s; -} - -header.profile .profile__link--back i, header.profile .profile__link--back svg { - margin-right: 0rem; - -webkit-transition: margin .2s; - transition: margin .2s; -} - -header.profile .profile__link--back:hover { - margin-right: 0.5rem; - -webkit-transition: margin .2s; - transition: margin .2s; -} - -header.profile .profile__link--back:hover i, header.profile .profile__link--back:hover svg { - margin-right: 0.5rem; - -webkit-transition: margin .2s; - transition: margin .2s; -} - -header.profile .profile__meta, header.profile .profile__location { - padding: 0; - margin: 0; -} - -header.profile .profile__location { - margin-top: 1.8rem; -} - -header.profile .profile__location li::after { - display: inline-block; - content: "|"; - padding: 0 1rem; -} - -header.profile .profile__location li:last-child::after { - display: inline-block; - content: ""; - padding: 0 0rem; -} - -header.profile .profile__meta li, header.profile .profile__location li { - font-weight: bold; - line-height: 1.5; - color: #515155; - display: block; - list-style: none; - max-width: 100%; -} - -header.profile .profile__location li { - font-weight: 500; - display: inline-block; -} - -header.profile .profile__meta li::after, header.profile .profile__meta li::before { - display: inline-block; - content: "—"; - padding: 0 1.5rem; -} - -header.profile .profile__networks, header.profile .profile__actions { - margin: 0; - padding: 1rem 0; - border-bottom: solid 1px #dfe0e5; -} - -header.profile .profile__networks.active { - border-bottom: none; -} - -header.profile .profile__networks li, header.profile .profile__actions li { - list-style: none; - -webkit-box-flex: 1; - -ms-flex-positive: 1; - flex-grow: 1; -} - -header.profile .profile__networks li a.active, header.profile .profile__actions li a.active { - text-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; - color: #26252B; - font-weight: 600; - cursor: auto; -} - -header.profile .profile__actions a { - text-align: center; - display: block; - text-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; - border-radius: 5px; - -webkit-transition: background-color 0.2s; - transition: background-color 0.2s; - padding: 5px; - max-width: 90px; - margin: auto; -} - -header.profile .profile__actions a:hover { - background-color: #edeff5; -} - -header.profile .profile__actions a:before { - content: ""; - display: block; - width: 38px; - height: 35px; - margin: auto; - background: transparent no-repeat; - background-size: 76px 35px; -} - -header.profile .profile__actions a.profile__actions--join:before { - background-image: url(../images/profile--action__join-sprite.svg); - background-position: 0 0; -} - -header.profile .profile__actions a.profile__actions--leave:before { - background-image: url(../images/profile--action__join-sprite.svg); - background-position: -38px 0; -} - -header.profile .profile__actions a.profile__actions--follow:before { - background-image: url(../images/profile--action__follow-sprite.svg); - background-position: 0 0; -} - -header.profile .profile__actions a.profile__actions--unfollow:before { - background-image: url(../images/profile--action__follow-sprite.svg); - background-position: -38px 0; -} - -header.profile .profile__actions a.profile__actions--contact:before { - background-image: url(../images/profile--action__contact-sprite.svg); - background-position: 0 0; -} - -header.profile .profile__actions a.profile__actions--add2list:before { - background-image: url(../images/profile--action__add2list-sprite.svg); - background-position: 0 0; -} - -.sub-section--related__title { - padding-left: 3.6rem; - min-height: 3.7rem; - margin-bottom: 0.7rem; -} - -.sub-section--related__title--discussion { - background-image: url(../images/follow-up__background.svg), url(../images/article--discussion-icon.svg); - background-position: 0rem 1.1rem, 0.5rem 0; - background-repeat: no-repeat, no-repeat; - background-size: 2.7rem 2.3rem, 2.38rem 2.5rem; -} - -.related-events h3 { - margin-bottom: 1rem; -} - -.related-events h3 a { - font-weight: 700; - font-size: 1.6rem; -} - -a.share { - background: #515155 url(../images/share-icons.svg) no-repeat; +.btn { + background: green; + color: #fff; + padding: 10px; display: inline-block; - width: 4rem; - height: 4rem; - border-radius: 4rem; - text-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; -} - -a.share--facebook { - background-position: 0 0; -} - -a.share--twitter { - background-position: -8rem 0; -} - -a.share--linkedin { - background-position: -4rem 0; -} - -a.share--googleplus { - background-position: -12rem 0; -} - -a.share--email { - background-position: -16rem 0; -} - -@media (min-width: 768px) { - a.share { - width: auto; - padding-left: 0rem; - background: none; - border-radius: 0; - text-decoration: none; - -webkit-box-shadow: none; - box-shadow: none; - height: auto; - line-height: 2rem; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - } - - a.share span { - display: inline-block; - line-height: 2.5rem; - } - - a.share:before { - content: ""; - background: #515155 url(../images/share-icons.svg) no-repeat; - display: inline-block; - width: 2rem; - height: 2rem; - border-radius: 2rem; - -webkit-box-shadow: none; - box-shadow: none; - background-size: 10rem 2rem; - margin-right: 0.5rem; - margin-top: 2px; - -ms-flex-negative: 0; - flex-shrink: 0; - } - - a.share:hover::before { - background-color: #662D91; - trnasition: background-color 0.2s; - } - - a.share--facebook:before { - background-position: 0 0; - } - - a.share--twitter:before { - background-position: -4rem 0; - } - - a.share--linkedin:before { - background-position: -2rem 0; - } - - a.share--googleplus:before { - background-position: -6rem 0; - } - - a.share--email:before { - background-position: -8rem 0; - } + margin: 0 0 10px 0; } /*# sourceMappingURL=style.css.map */ From b8da0cfc1223937a3ce7ef648e9411761f8b5c80 Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Thu, 16 Aug 2018 17:03:45 +0200 Subject: [PATCH 136/200] NGF-356: create-new class added and theming for create-new button --- css/style.css | 25 +- sass/components/_navigation.scss | 284 ++++++++++++---------- templates/navigation/menu--main.html.twig | 1 + 3 files changed, 173 insertions(+), 137 deletions(-) diff --git a/css/style.css b/css/style.css index 4c99a9f..e9183b3 100644 --- a/css/style.css +++ b/css/style.css @@ -7790,6 +7790,7 @@ a.logo__link span { font-size: 2.2rem; font-weight: normal; text-align: left; + padding: 12px; } .navigation-menu__list li .create-new:before { @@ -7805,6 +7806,19 @@ a.logo__link span { content: "\f303"; } +.navigation-menu__list li .create-new:hover { + -webkit-box-shadow: none; + box-shadow: none; +} + +.navigation-menu__list li.create-new { + position: absolute; + right: 0px; + bottom: 10px; + width: 21vw; + text-align: center; +} + .background--talk .navigation-menu { background: none; } @@ -7912,7 +7926,7 @@ a.logo__link span { color: #ff397f; } - .navigation-menu__list li .create-new { + .navigation-menu__list li a.create-new { display: block; background: white; background-size: auto; @@ -7932,7 +7946,7 @@ a.logo__link span { transition: background-color 0.2s; } - .navigation-menu__list li .create-new:hover { + .navigation-menu__list li a.create-new:hover { -webkit-box-shadow: none; box-shadow: none; background: #00c9ff; @@ -7941,11 +7955,16 @@ a.logo__link span { color: #05111E; } - .navigation-menu__list li .create-new.active { + .navigation-menu__list li a.create-new.active { background: rgba(255, 255, 255, 0.1); border-bottom: none; } + .navigation-menu__list li.create-new { + position: inherit; + width: auto; + } + .navigation-menu__list--feeds svg { min-width: 2rem; } diff --git a/sass/components/_navigation.scss b/sass/components/_navigation.scss index bb2b7e0..dab3987 100644 --- a/sass/components/_navigation.scss +++ b/sass/components/_navigation.scss @@ -52,14 +52,25 @@ font-size: 2.2rem; font-weight: normal; text-align: left; + padding: 12px; &:before { @include fa-icon; @extend .fas; padding-right: 10px; content: fa-content($fa-var-pencil-alt); } + &:hover { + box-shadow: none; + } } } + li.create-new { + position: absolute; + right: 0px; + bottom: 10px; + width: 21vw; + text-align: center; + } } } @@ -112,187 +123,192 @@ padding-top: 15px; &__list { - width: auto; - height: auto; - max-height: none; - display: block; - float: none; - align-items: baseline; - margin:0; - - li { - display: block; width: auto; height: auto; - max-width: none; max-height: none; - text-align: left; - font-size: 1.6rem; - line-height: inherit; - padding: 0.5rem 0.8rem; - border-radius: 0.5rem; - - svg { - margin-right: 1.5rem; - } - - a{ - color: $white; - text-shadow: none; - box-shadow: none; - padding: 6px 0; - box-shadow: none; - - &:hover { - color: $pink; - box-shadow: none; - - .badge { - background-color: $pink; - transition: all 0.2s; - } - } - } - - &.active { - background: rgba($white, 0.1); - border-bottom: none; - - .fas { - color: $pink; - } - } + display: block; + float: none; + align-items: baseline; + margin:0; - .create-new { + li { display: block; - background: rgba($white, 1); - background-size: auto; - border: none; + width: auto; height: auto; - width: 100%; + max-width: none; + max-height: none; + text-align: left; font-size: 1.6rem; - line-height: 1.8; + line-height: inherit; padding: 0.5rem 0.8rem; border-radius: 0.5rem; - border: solid 3px rgba($cyan, 1); - color: $gray-900; - text-shadow: none; - box-shadow: none; - transition: background-color 0.2s; - &:hover { + + svg { + margin-right: 1.5rem; + } + + a { + color: $white; + text-shadow: none; box-shadow: none; - background: rgba($cyan, 1); - transition: background-color 0.2s; - color: $gray-900; + padding: 6px 0; + box-shadow: none; + + &:hover { + color: $pink; + box-shadow: none; + + .badge { + background-color: $pink; + transition: all 0.2s; + } + } } &.active { background: rgba($white, 0.1); border-bottom: none; + + .fas { + color: $pink; + } + } + + a.create-new { + display: block; + background: rgba($white, 1); + background-size: auto; + border: none; + height: auto; + width: 100%; + font-size: 1.6rem; + line-height: 1.8; + padding: 0.5rem 0.8rem; + border-radius: 0.5rem; + border: solid 3px rgba($cyan, 1); + color: $gray-900; + text-shadow: none; + box-shadow: none; + transition: background-color 0.2s; + &:hover { + box-shadow: none; + background: rgba($cyan, 1); + transition: background-color 0.2s; + color: $gray-900; + } + + &.active { + background: rgba($white, 0.1); + border-bottom: none; + } } } - } - } - &__list--feeds { - svg { - min-width: 2rem; + li.create-new { + position: inherit; + width: auto; + } } - } - - &__list--tools { - position: fixed; - display: flex; - justify-content: flex-end; - top: 0px; - z-index: 10001; - background-image: $logo-area__background-image--md; - background-repeat: no-repeat; - background-size: 100% 80px; - background-position: left top; - height: 100px; - width: 100vw; - margin-left: -15px; - &:empty { - background-image: url(../images/logo-area-bckgrd--md--no-action.svg); + &__list--feeds { + svg { + min-width: 2rem; + } } - &.navigation-menu__list--single-tool { - background-image: url(../images/logo-area-bckgrd--md--one-action.svg); - } + &__list--tools { + position: fixed; + display: flex; + justify-content: flex-end; + top: 0px; + z-index: 10001; + background-image: $logo-area__background-image--md; + background-repeat: no-repeat; + background-size: 100% 80px; + background-position: left top; + height: 100px; + width: 100vw; + margin-left: -15px; + + &:empty { + background-image: url(../images/logo-area-bckgrd--md--no-action.svg); + } - .navigation-menu__item { - display: inline-block; - padding:0; - margin-left: 0px; + &.navigation-menu__list--single-tool { + background-image: url(../images/logo-area-bckgrd--md--one-action.svg); + } - } + .navigation-menu__item { + display: inline-block; + padding:0; + margin-left: 0px; - .navigation-menu__item:only-child { - display: block; + } + + .navigation-menu__item:only-child { + display: block; margin: 0px 0% 0 -2.45% !important; position: absolute; height: 54px; width: 54px; - } + } - .navigation-menu__item:first-child { - display: block; + .navigation-menu__item:first-child { + display: block; margin: 11px 0% 0 -8.75%; position: absolute; height: 54px; width: 54px; - } + } - .navigation-menu__item:nth-child(2) { - display: block; + .navigation-menu__item:nth-child(2) { + display: block; margin: 0px 0% 0 -3.75%; position: absolute; height: 42px; width: 42px; - } + } - .navigation-menu__item--tool { - text-align: center; - display: inline-block; - background-image: url(../images/navigation-tools__btn__background.svg); - background-repeat: none; - color: $gray-900; + .navigation-menu__item--tool { + text-align: center; + display: inline-block; + background-image: url(../images/navigation-tools__btn__background.svg); + background-repeat: none; + color: $gray-900; - &.navigation-menu__item--filter { - height: 54px; - width: 54px; - background-size: 54px 54px; - font-size: 2rem; - padding-top: 0.9rem; - svg { - margin: auto; + &.navigation-menu__item--filter { + height: 54px; + width: 54px; + background-size: 54px 54px; + font-size: 2rem; + padding-top: 0.9rem; + svg { + margin: auto; + } } - } - &.navigation-menu__item--search { - background-size: 42px 42px; - display: inline-block; - line-height: 42px; - height: 42px; - width: 42px; - margin: 30px 20px 0 8px; - svg { - margin: auto; + &.navigation-menu__item--search { + background-size: 42px 42px; + display: inline-block; + line-height: 42px; + height: 42px; + width: 42px; + margin: 30px 20px 0 8px; + svg { + margin: auto; + } } } - } - } + } - .badge { - background: rgba($white, 0.8); - padding: 0rem 0.5rem 0.1rem; - border-radius: 0.5rem; - color: $gray-900; - text-align: center; - } + .badge { + background: rgba($white, 0.8); + padding: 0rem 0.5rem 0.1rem; + border-radius: 0.5rem; + color: $gray-900; + text-align: center; + } } } diff --git a/templates/navigation/menu--main.html.twig b/templates/navigation/menu--main.html.twig index 4cbaea8..4ef3459 100644 --- a/templates/navigation/menu--main.html.twig +++ b/templates/navigation/menu--main.html.twig @@ -41,6 +41,7 @@ item.is_expanded ? 'menu-item--expanded', item.is_collapsed ? 'menu-item--collapsed', item.in_active_trail ? 'active list', + item.title|clean_class, ] %} From 77a4f5d2fbfe5dd18f68d72567c6b4067d73a516 Mon Sep 17 00:00:00 2001 From: Nikolay Lobachev Date: Fri, 17 Aug 2018 10:39:17 +0200 Subject: [PATCH 137/200] Fix default no-group class --- funkywave.theme | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/funkywave.theme b/funkywave.theme index 3ae46b0..5690fe5 100644 --- a/funkywave.theme +++ b/funkywave.theme @@ -156,12 +156,13 @@ function funkywave_preprocess_user(&$variables) { function funkywave_preprocess_group(&$variables) { $group = $variables['group']; $view_mode = $variables['view_mode']; + $group_type_id = $group->getGroupType()->id(); //* Create url for the default group image to be called in group templates. $variables['group_pic'] = file_create_url($variables['directory'] . '/images/default_group.jpg'); + $variables['ngf_group_container_class'] = 'profile-shortinfo--no-group'; - if ($group->getGroupType()->id() == 'ngf_event') { - + if ($group_type_id == 'ngf_event') { $display_modes = [ 'full', 'teaser', @@ -177,7 +178,7 @@ function funkywave_preprocess_group(&$variables) { } } - else if ($group->getGroupType()->id() == 'ngf_discussion_group') { + elseif ($group_type_id == 'ngf_discussion_group') { $display_modes = [ 'teaser', @@ -185,7 +186,6 @@ function funkywave_preprocess_group(&$variables) { ]; if (in_array($view_mode, $display_modes)) { - $variables['ngf_group_container_class'] = 'profile-shortinfo--no-group'; if ($group->field_ngf_group_visibility->value == NGF_GROUP_PUBLIC) { $variables['ngf_context_text'] = t('Public group'); } @@ -211,7 +211,6 @@ function funkywave_preprocess_group(&$variables) { ])->toString(); } } - } } From 0f4f82725cb45661a85c2cee56725295f6b41f1f Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Fri, 17 Aug 2018 10:42:25 +0200 Subject: [PATCH 138/200] NGF-356: header 1 fix --- css/style.css | 4 ++++ sass/base/_base.scss | 6 +++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/css/style.css b/css/style.css index e9183b3..9542914 100644 --- a/css/style.css +++ b/css/style.css @@ -4913,6 +4913,10 @@ h1, h2, h3, h4, h5, h6 { margin-bottom: 1em; } +h1 { + margin-top: 0; +} + h1 + h2, h1 + h3, h1 + p, diff --git a/sass/base/_base.scss b/sass/base/_base.scss index 0d351b8..6dde4ff 100644 --- a/sass/base/_base.scss +++ b/sass/base/_base.scss @@ -41,7 +41,7 @@ body { p, h2, h3, h4, h5, h6, li { max-width: 32em; - } +} h1, h2, h3, h4, h5, h6 { font-family: $headings__font; @@ -51,6 +51,10 @@ h1, h2, h3, h4, h5, h6 { margin-bottom: 1em; } +h1 { + margin-top: 0; +} + h1 + h2, h1 + h3, h1 + p, From 34c4e9189c80a98a49eea294f41012eb3b49c325 Mon Sep 17 00:00:00 2001 From: Nikolay Lobachev Date: Fri, 17 Aug 2018 11:27:45 +0200 Subject: [PATCH 139/200] Add context for event and switch the link to the user --- funkywave.theme | 71 ++++++++++++------- .../pattern-profile-shortinfo.html.twig | 2 - templates/content/group--ngf-event.html.twig | 8 +-- 3 files changed, 47 insertions(+), 34 deletions(-) diff --git a/funkywave.theme b/funkywave.theme index 5690fe5..69c5d22 100644 --- a/funkywave.theme +++ b/funkywave.theme @@ -24,8 +24,8 @@ function funkywave_preprocess_form_element_label(&$variables) { } /** -* Implement template_preprocess_node(). -*/ + * Implement template_preprocess_node(). + */ function funkywave_preprocess_node(&$variables) { $node = $variables['elements']['#node']; $view_mode = $variables['view_mode']; @@ -43,17 +43,17 @@ function funkywave_preprocess_node(&$variables) { $variables['ngf_sub_picture'] = NULL; $variables['ngf_context_text'] = t( 'Posted @created_date ago', [ - '@created_date' => \Drupal::service('date.formatter')->formatTimeDiffSince($node->created->value) + '@created_date' => \Drupal::service('date.formatter') + ->formatTimeDiffSince($node->created->value), ]); $variables['ngf_group_container_class'] = 'profile-shortinfo--no-group'; if (isset($node->group) && $group = $node->group) { _funkywave_group_context($node, $node->group, $variables); - } elseif ($view_mode == 'ngf_teaser_user_commented') { + } + elseif ($view_mode == 'ngf_teaser_user_commented') { $variables['ngf_context_text'] = t('Commented'); } - - } } @@ -71,7 +71,7 @@ function _funkywave_group_context($entity, $group, &$variables) { '#attributes' => [ 'class' => ['profile-shortinfo__picture profile-shortinfo__picture--group responsive'], 'alt' => $group->label(), - ] + ], ]; } else { @@ -81,7 +81,7 @@ function _funkywave_group_context($entity, $group, &$variables) { '#attributes' => [ 'class' => ['profile-shortinfo__picture profile-shortinfo__picture--group responsive'], 'alt' => $group->label(), - ] + ], ]; } @@ -91,22 +91,26 @@ function _funkywave_group_context($entity, $group, &$variables) { '#url' => $group->toUrl(), '#attributes' => [ 'class' => [ - 'profile-shortinfo__link profile-shortinfo__link--group' - ] - ] + 'profile-shortinfo__link profile-shortinfo__link--group', + ], + ], ]; $variables['ngf_sub_picture'] = $link_render; $variables['ngf_context_text'] = t( - 'Posted @created_date ago in @group_title', - [ - '@created_date' => \Drupal::service('date.formatter')->formatTimeDiffSince($entity->created->value), - ':group_url' => $group->url(), - '@group_title' => $group->label(), - ] - ); + 'Posted @created_date ago in @group_title', + [ + '@created_date' => \Drupal::service('date.formatter') + ->formatTimeDiffSince($entity->created->value), + ':group_url' => $group->url(), + '@group_title' => $group->label(), + ] + ); } +/** + * Implements template_preprocess_user(). + */ function funkywave_preprocess_user(&$variables) { $user = $variables['user']; @@ -119,7 +123,8 @@ function funkywave_preprocess_user(&$variables) { if (!empty($user->user_picture->entity)) { $cover_image = $user->user_picture->entity->getFileUri(); - $variables['user_pic'] = ImageStyle::load('thumbnail')->buildUrl($cover_image); + $variables['user_pic'] = ImageStyle::load('thumbnail') + ->buildUrl($cover_image); } else { $variables['user_pic'] = file_create_url($variables['directory'] . '/images/default_user.jpg'); @@ -129,7 +134,8 @@ function funkywave_preprocess_user(&$variables) { $variables['full_name'] = $user->full_name->value; if ($user->id() == \Drupal::currentUser()->id()) { - $variables['profile_uri'] = Url::fromRoute('ngf_user_profile.page.profile')->toString(); + $variables['profile_uri'] = Url::fromRoute('ngf_user_profile.page.profile') + ->toString(); } else { $variables['profile_uri'] = Url::fromRoute('ngf_user_profile.page.user_profile', [ @@ -137,7 +143,8 @@ function funkywave_preprocess_user(&$variables) { ])->toString(); } - if (\Drupal::routeMatch()->getRouteName() == 'ngf_user_profile.page.user_about') { + if (\Drupal::routeMatch() + ->getRouteName() == 'ngf_user_profile.page.user_about') { $variables['profile_uri_back'] = $variables['profile_uri']; $variables['profile_uri_more'] = ''; } @@ -151,8 +158,8 @@ function funkywave_preprocess_user(&$variables) { } /** -* Implements template_preprocess_group -*/ + * Implements template_preprocess_group. + */ function funkywave_preprocess_group(&$variables) { $group = $variables['group']; $view_mode = $variables['view_mode']; @@ -175,6 +182,15 @@ function funkywave_preprocess_group(&$variables) { if (!empty($group->group)) { _funkywave_group_context($group, $group->group, $variables); } + else { + $variables['ngf_context_text'] = t( + 'Posted @created_date ago', + [ + '@created_date' => \Drupal::service('date.formatter') + ->formatTimeDiffSince($group->created->value), + ] + ); + } } } @@ -217,7 +233,7 @@ function funkywave_preprocess_group(&$variables) { /** * Implements hook_theme_suggestions_HOOK_alter() * Create theme suggestions for user profile templates -**/ + **/ function funkywave_theme_suggestions_user_alter(&$suggestions, array $variables) { $suggestions[] = 'user__' . $variables['elements']['#view_mode']; } @@ -225,7 +241,7 @@ function funkywave_theme_suggestions_user_alter(&$suggestions, array $variables) /** * Implements hook_theme_form_alter() * The form id becomes the data attribute on the input fields and submit button -**/ + **/ function funkywave_form_alter(&$form, FormStateInterface $form_state, $form_id) { if (!empty($form['actions']['submit'])) { $form['actions']['submit']['#attributes']['data-twig-suggestion'] = $form['#id']; @@ -238,8 +254,9 @@ function funkywave_form_alter(&$form, FormStateInterface $form_state, $form_id) } /** - * theme suggestions input alter to create the completely custom and flexible template suggestion -**/ + * theme suggestions input alter to create the completely custom and flexible + * template suggestion + **/ function funkywave_theme_suggestions_input_alter(&$suggestions, array $variables) { $element = $variables['element']; if (isset($element['#attributes']['data-twig-suggestion'])) { diff --git a/patterns/profile-shortinfo/pattern-profile-shortinfo.html.twig b/patterns/profile-shortinfo/pattern-profile-shortinfo.html.twig index c669494..826749c 100644 --- a/patterns/profile-shortinfo/pattern-profile-shortinfo.html.twig +++ b/patterns/profile-shortinfo/pattern-profile-shortinfo.html.twig @@ -4,7 +4,6 @@ * post info pattern. */ #} -
    {% if image_url %}
    @@ -12,7 +11,6 @@

    {{ label }} -

    {% else %} -

    {{ label }} -

    {% endif %} + {# block postinfo #} {% block postinfo %} @@ -75,6 +72,7 @@ title: group.uid.entity.name.value, image_url: image_url, logged_in: logged_in, + url: path('entity.user.canonical', {'user': group.uid.entity.id }), context_text: ngf_context_text, subpic: ngf_sub_picture, container_class: ngf_group_container_class, From 6ca281b0382769bc06386126f674617edc3465f6 Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Fri, 17 Aug 2018 15:10:21 +0200 Subject: [PATCH 140/200] added twig file for paragraph teaser used for library items page --- css/style.css | 10 ++-- sass/components/_newsfeed.scss | 8 +-- templates/content/message.html.twig | 32 +++++++++++ .../paragraphs/paragraph--teaser.html.twig | 57 +++++++++++++++++++ 4 files changed, 95 insertions(+), 12 deletions(-) create mode 100644 templates/content/message.html.twig create mode 100644 templates/paragraphs/paragraph--teaser.html.twig diff --git a/css/style.css b/css/style.css index 9542914..400fef9 100644 --- a/css/style.css +++ b/css/style.css @@ -8160,7 +8160,7 @@ a.logo__link span { box-shadow: 0 1px 0 0 #662D91; } -.newsfeed__item .field--name-field-ngf-cover-image, .newsfeed__item .field--name-field-media-image { +.newsfeed__item .field--name-field-ngf-cover-image { border-radius: 10px; background: #1f1e23; max-height: 320px; @@ -8176,7 +8176,7 @@ a.logo__link span { overflow: hidden; } -.newsfeed__item .field--name-field-ngf-cover-image img.responsive, .newsfeed__item .field--name-field-media-image img.responsive { +.newsfeed__item .field--name-field-ngf-cover-image img.responsive { max-height: 320px; width: auto; -ms-flex-negative: 0; @@ -8239,8 +8239,7 @@ a.logo__link span { padding-left: 25px; } -.newsfeed__item--teaser, -.paragraph--view-mode--teaser { +.newsfeed__item--teaser { background-image: url(../images/hr--wavy.svg); background-repeat: no-repeat; background-position: center top; @@ -8249,8 +8248,7 @@ a.logo__link span { margin-top: -30px; } -.newsfeed__item--teaser:first-child, - .paragraph--view-mode--teaser:first-child { +.newsfeed__item--teaser:first-child { padding-top: 4rem; background-image: none !important; margin-top: 0px; diff --git a/sass/components/_newsfeed.scss b/sass/components/_newsfeed.scss index c2b1675..0e72836 100644 --- a/sass/components/_newsfeed.scss +++ b/sass/components/_newsfeed.scss @@ -55,7 +55,7 @@ } } - .field--name-field-ngf-cover-image, .field--name-field-media-image + .field--name-field-ngf-cover-image, { border-radius: 10px; background: adjust-lightness($gray-800, -3%); @@ -139,20 +139,16 @@ } } - .newsfeed__item--teaser, - .paragraph--view-mode--teaser { + .newsfeed__item--teaser { background-image: url(../images/hr--wavy.svg); background-repeat: no-repeat; background-position: center top; padding: 7.5rem 15px 4rem 15px; background-size: 100% 40px; - margin-top: -30px; - &:first-child { padding-top: 4rem; background-image: none !important; - margin-top: 0px; } } diff --git a/templates/content/message.html.twig b/templates/content/message.html.twig new file mode 100644 index 0000000..aee4a63 --- /dev/null +++ b/templates/content/message.html.twig @@ -0,0 +1,32 @@ +{# +/** + * @file + * Default theme implementation for message entities. + * + * Available variables: + * - $content: An array of comment items. Use render($content) to print them all, or + * print a subset such as render($content['field_example']). Use + * hide($content['field_example']) to temporarily suppress the printing of a + * given element. + * - $title: The (sanitized) entity label. + * - $url: Direct url of the current entity if specified. + * - $page: Flag for the full page state. + * - $classes: String of classes that can be used to style contextually through + * CSS. It can be manipulated through the variable $classes_array from + * preprocess functions. By default the following classes are available, where + * the parts enclosed by {} are replaced by the appropriate values: + * - entity-{ENTITY_TYPE} + * - {ENTITY_TYPE}-{BUNDLE} + * + * Other variables: + * - $classes_array: Array of html class attribute values. It is flattened + * into a string within the variable $classes. + * + * @see template_preprocess() + * @see template_preprocess_message() + * @see template_process() + */ +#} + + {{ content }} +
    diff --git a/templates/paragraphs/paragraph--teaser.html.twig b/templates/paragraphs/paragraph--teaser.html.twig new file mode 100644 index 0000000..28dbd69 --- /dev/null +++ b/templates/paragraphs/paragraph--teaser.html.twig @@ -0,0 +1,57 @@ +{# +/** + * @file + * Default theme implementation to display a paragraph. + * + * Available variables: + * - paragraph: Full paragraph entity. + * Only method names starting with "get", "has", or "is" and a few common + * methods such as "id", "label", and "bundle" are available. For example: + * - paragraph.getCreatedTime() will return the paragraph creation timestamp. + * - paragraph.id(): The paragraph ID. + * - paragraph.bundle(): The type of the paragraph, for example, "image" or "text". + * - paragraph.getOwnerId(): The user ID of the paragraph author. + * See Drupal\paragraphs\Entity\Paragraph for a full list of public properties + * and methods for the paragraph object. + * - content: All paragraph items. Use {{ content }} to print them all, + * or print a subset such as {{ content.field_example }}. Use + * {{ content|without('field_example') }} to temporarily suppress the printing + * of a given child element. + * - attributes: HTML attributes for the containing element. + * The attributes.class element may contain one or more of the following + * classes: + * - paragraphs: The current template type (also known as a "theming hook"). + * - paragraphs--type-[type]: The current paragraphs type. For example, if the paragraph is an + * "Image" it would result in "paragraphs--type--image". Note that the machine + * name will often be in a short form of the human readable label. + * - paragraphs--view-mode--[view_mode]: The View Mode of the paragraph; for example, a + * preview would result in: "paragraphs--view-mode--preview", and + * default: "paragraphs--view-mode--default". + * - view_mode: View mode; for example, "preview" or "full". + * - logged_in: Flag for authenticated user status. Will be true when the + * current user is a logged-in member. + * - is_admin: Flag for admin user status. Will be true when the current user + * is an administrator. + * + * @see template_preprocess_paragraph() + * + * @ingroup themeable + */ +#} +{% + set classes = [ + 'paragraph', + 'paragraph--type--' ~ paragraph.bundle|clean_class, + view_mode ? 'paragraph--view-mode--' ~ view_mode|clean_class, + not paragraph.isPublished() ? 'paragraph--unpublished', + 'newsfeed__item', + 'newsfeed__item--teaser', + ] +%} +{% block paragraph %} + + {% block content %} + {{ content }} + {% endblock %} +
    +{% endblock paragraph %} From 22f3781eed93373e11d5bb75e8b848d309682f1a Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Fri, 17 Aug 2018 16:37:52 +0200 Subject: [PATCH 141/200] class added for theming messages --- templates/content/message.html.twig | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/templates/content/message.html.twig b/templates/content/message.html.twig index aee4a63..8cb159a 100644 --- a/templates/content/message.html.twig +++ b/templates/content/message.html.twig @@ -27,6 +27,13 @@ * @see template_process() */ #} - + +{% + set classes = [ + 'newsfeed__item--teaser', + ] +%} + + {{ content }} From 0a914a7f7d3aeecc491f7e8d7ed289b1df74f395 Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Mon, 20 Aug 2018 17:23:48 +0200 Subject: [PATCH 142/200] NGF-369: theming for cover image and other images same now --- css/override.css | 10 ++++------ css/style.css | 10 +++++----- sass/base/_base.scss | 4 +++- sass/components/_newsfeed.scss | 8 +++----- .../group--ngf-discussion-group--teaser.html.twig | 2 +- templates/paragraphs/paragraph--teaser.html.twig | 1 - 6 files changed, 16 insertions(+), 19 deletions(-) diff --git a/css/override.css b/css/override.css index 127cbf1..8e5f843 100644 --- a/css/override.css +++ b/css/override.css @@ -287,12 +287,10 @@ fieldset { padding-bottom: 0; } -/* -.js-form-item.form-wrapper .form-wrapper { - padding: 0 10px 0 10px; -} -*/ - tr.draggable.even { background: #f5f5f2; } + +.ui-widget.ui-widget-content.ui-autocomplete { + border: 1px solid #cccccc; +} diff --git a/css/style.css b/css/style.css index 400fef9..948cb14 100644 --- a/css/style.css +++ b/css/style.css @@ -4913,7 +4913,7 @@ h1, h2, h3, h4, h5, h6 { margin-bottom: 1em; } -h1 { +h1, h2.page-title { margin-top: 0; } @@ -8160,7 +8160,7 @@ a.logo__link span { box-shadow: 0 1px 0 0 #662D91; } -.newsfeed__item .field--name-field-ngf-cover-image { +.newsfeed__item .field--name-field-ngf-cover-image, .newsfeed__item .field--name-field-media-image { border-radius: 10px; background: #1f1e23; max-height: 320px; @@ -8176,7 +8176,7 @@ a.logo__link span { overflow: hidden; } -.newsfeed__item .field--name-field-ngf-cover-image img.responsive { +.newsfeed__item .field--name-field-ngf-cover-image img.responsive, .newsfeed__item .field--name-field-media-image img.responsive { max-height: 320px; width: auto; -ms-flex-negative: 0; @@ -8239,7 +8239,7 @@ a.logo__link span { padding-left: 25px; } -.newsfeed__item--teaser { +.newsfeed__item--teaser, .paragraph--view-mode--teaser { background-image: url(../images/hr--wavy.svg); background-repeat: no-repeat; background-position: center top; @@ -8248,7 +8248,7 @@ a.logo__link span { margin-top: -30px; } -.newsfeed__item--teaser:first-child { +.newsfeed__item--teaser:first-child, .paragraph--view-mode--teaser:first-child { padding-top: 4rem; background-image: none !important; margin-top: 0px; diff --git a/sass/base/_base.scss b/sass/base/_base.scss index 6dde4ff..3e070fe 100644 --- a/sass/base/_base.scss +++ b/sass/base/_base.scss @@ -51,10 +51,12 @@ h1, h2, h3, h4, h5, h6 { margin-bottom: 1em; } -h1 { +h1, h2.page-title { margin-top: 0; } + + h1 + h2, h1 + h3, h1 + p, diff --git a/sass/components/_newsfeed.scss b/sass/components/_newsfeed.scss index 0e72836..5810ffd 100644 --- a/sass/components/_newsfeed.scss +++ b/sass/components/_newsfeed.scss @@ -55,7 +55,7 @@ } } - .field--name-field-ngf-cover-image, + .field--name-field-ngf-cover-image, .field--name-field-media-image { border-radius: 10px; background: adjust-lightness($gray-800, -3%); @@ -63,9 +63,7 @@ display: flex; justify-content: center; align-items: center; - overflow:hidden; - - + overflow:hidden; img.responsive { max-height: 320px; @@ -139,7 +137,7 @@ } } - .newsfeed__item--teaser { + .newsfeed__item--teaser, .paragraph--view-mode--teaser { background-image: url(../images/hr--wavy.svg); background-repeat: no-repeat; background-position: center top; diff --git a/templates/group/group--ngf-discussion-group--teaser.html.twig b/templates/group/group--ngf-discussion-group--teaser.html.twig index 4b7d14e..ff28e3d 100644 --- a/templates/group/group--ngf-discussion-group--teaser.html.twig +++ b/templates/group/group--ngf-discussion-group--teaser.html.twig @@ -54,4 +54,4 @@ context_text: ngf_context_text, container_class: ngf_group_container_class, } -%} \ No newline at end of file +%} diff --git a/templates/paragraphs/paragraph--teaser.html.twig b/templates/paragraphs/paragraph--teaser.html.twig index 28dbd69..07225b6 100644 --- a/templates/paragraphs/paragraph--teaser.html.twig +++ b/templates/paragraphs/paragraph--teaser.html.twig @@ -45,7 +45,6 @@ view_mode ? 'paragraph--view-mode--' ~ view_mode|clean_class, not paragraph.isPublished() ? 'paragraph--unpublished', 'newsfeed__item', - 'newsfeed__item--teaser', ] %} {% block paragraph %} From 27061579873044b3bdc944634f4a1c7d91ff0ab1 Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Tue, 21 Aug 2018 10:44:35 +0200 Subject: [PATCH 143/200] NGF-357 theming pager --- css/style.css | 56 +++++++++++++++++++++++++++++++++++++ sass/components/_pager.scss | 49 ++++++++++++++++++++++++++++++++ 2 files changed, 105 insertions(+) create mode 100644 sass/components/_pager.scss diff --git a/css/style.css b/css/style.css index 948cb14..74e6923 100644 --- a/css/style.css +++ b/css/style.css @@ -8288,6 +8288,62 @@ a.logo__link span { background-color: #ffebeb; } +.pager { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + margin: 0 0 1em 0; +} + +.pager__items { + list-style: none; + margin: 0; + padding: 0; +} + +.pager__item { + float: left; + margin: 0 5px 0 0; +} + +.pager__item a { + padding: 5px 9px; + border-radius: 50%; + text-decoration: none; + text-shadow: none; + -webkit-box-shadow: none; + box-shadow: none; +} + +.pager__item a:hover { + cursor: pointer; +} + +.pager__item.is-active a { + background: #662D91; + color: #FFFFFF; +} + +.pager__item--first, .pager__item--previous, .pager__item--next, .pager__item--last { + display: none; +} + +@media (min-width: 768px) { + .pager__item--first, .pager__item--previous, .pager__item--next, .pager__item--last { + display: block; + } + + .pager__item--first a, .pager__item--previous a, .pager__item--next a, .pager__item--last a { + padding: 0 3px 0 3px; + } +} + .profile-shortinfo { margin-bottom: 2rem; } diff --git a/sass/components/_pager.scss b/sass/components/_pager.scss new file mode 100644 index 0000000..e0431ec --- /dev/null +++ b/sass/components/_pager.scss @@ -0,0 +1,49 @@ +.pager { + display: flex; + justify-content: center; + align-items: center; + margin: 0 0 1em 0; + &__items { + list-style: none; + margin: 0; + padding: 0; + } + &__item { + float: left; + margin: 0 5px 0 0; + a { + padding: 5px 9px; + border-radius: 50%; + text-decoration: none; + text-shadow: none; + box-shadow: none; + &:hover { + cursor: pointer; + } + } + } + &__item.is-active a{ + background: $purple; + color: $white; + } + &__item--first, + &__item--previous, + &__item--next, + &__item--last { + display: none; + } +} + +@media (min-width: 768px) { + .pager { + &__item--first, + &__item--previous, + &__item--next, + &__item--last { + display: block; + a { + padding: 0 3px 0 3px; + } + } + } +} From 0bbbeb8b2328441c5833f9230653cbbec0432230 Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Tue, 21 Aug 2018 18:06:55 +0200 Subject: [PATCH 144/200] NGF-372 class added for not logged in users and theming register and sign in button --- css/style.css | 64 +++++++++++++++++++++++++-- sass/base/_base.scss | 16 +++---- sass/components/_cta.scss | 76 +++++++++++++++++++++++++++------ templates/layout/html.html.twig | 1 + 4 files changed, 132 insertions(+), 25 deletions(-) diff --git a/css/style.css b/css/style.css index 74e6923..2c01a03 100644 --- a/css/style.css +++ b/css/style.css @@ -4888,7 +4888,7 @@ body { background-size: 100% 80px; } -body.not-signed { +body.user-not-logged-in { margin-top: 3.5rem; background-image: url(../images/body-bckgrd--md.svg), -webkit-gradient(linear, left top, left bottom, from(#FFFFFF), to(#FFFFFF)); background-image: url(../images/body-bckgrd--md.svg), linear-gradient(#FFFFFF, #FFFFFF); @@ -4972,7 +4972,6 @@ a:not(.toolbar-item):hover { margin: auto; background-color: #FFFFFF; overflow: hidden; - position: relative; } .general-container--card { @@ -5040,7 +5039,7 @@ main *:not(img):not(svg)::selection { font-size: 1.6rem; } - body.not-signed { + body.user-not-logged-in { margin-top: 0px; background-image: url(../images/body-bckgrd--md.svg); background-position: 50% 0px; @@ -5064,6 +5063,7 @@ main *:not(img):not(svg)::selection { .general-container { -webkit-box-shadow: 0px 0px 25px rgba(0, 0, 0, 0.4); box-shadow: 0px 0px 25px rgba(0, 0, 0, 0.4); + position: relative; } main { @@ -7093,7 +7093,65 @@ button.paragraphs-dropdown-action { color: #FFFFFF; } +.block-useraccountblock { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + position: absolute; + top: 0; + height: 3.5rem; + width: 100%; + text-align: center; + width: 100%; + background: rgba(102, 45, 145, 0.3); +} + +.block-useraccountblock a { + text-shadow: none; + -webkit-box-shadow: none; + box-shadow: none; +} + +.block-useraccountblock a:hover { + text-shadow: none; + -webkit-box-shadow: none; + box-shadow: none; +} + @media (min-width: 768px) { + .block-useraccountblock { + position: relative; + height: auto; + border-radius: 15px; + background-color: rgba(255, 255, 255, 0.1); + margin: 0px; + margin-bottom: 15px; + padding: 15px; + text-align: left; + -webkit-box-shadow: none; + box-shadow: none; + } + + .block-useraccountblock a { + color: #FFFFFF; + padding: 0.5rem 0.8rem; + } + + .block-useraccountblock a:hover { + color: #ff397f; + } + + .block-useraccountblock a:last-child { + border: 1px solid #FFFFFF; + padding: 8px 16px; + border-radius: 0.5rem; + background: #26252B; + } + + .block-useraccountblock a:last-child:hover { + border: 1px solid #ff397f; + } + .cta--wrapper { display: block; position: relative; diff --git a/sass/base/_base.scss b/sass/base/_base.scss index 3e070fe..cceb785 100644 --- a/sass/base/_base.scss +++ b/sass/base/_base.scss @@ -26,7 +26,7 @@ body { background-attachment: fixed; background-size: 100% 80px; - &.not-signed { + &.user-not-logged-in { margin-top: 3.5rem; background-image: url(../images/body-bckgrd--md.svg), linear-gradient($white, $white); background-position: 50% 3.5rem, center 0; @@ -112,9 +112,6 @@ a:not(.toolbar-item) { margin: auto; background-color: $white; overflow: hidden; - position: relative; - - &--card { height: auto; @@ -175,11 +172,11 @@ main *:not(img):not(svg)::selection { body { font-size: 1.6rem; - &.not-signed { - margin-top: 0px; - background-image: url(../images/body-bckgrd--md.svg); - background-position: 50% 0px,; - background-size: 100% 80px; + &.user-not-logged-in { + margin-top: 0px; + background-image: url(../images/body-bckgrd--md.svg); + background-position: 50% 0px,; + background-size: 100% 80px; } } @@ -200,6 +197,7 @@ main *:not(img):not(svg)::selection { @media (min-width: 992px) { .general-container { box-shadow: 0px 0px 25px rgba($black, 0.4); + position: relative; } main { diff --git a/sass/components/_cta.scss b/sass/components/_cta.scss index b480066..fc3cd40 100644 --- a/sass/components/_cta.scss +++ b/sass/components/_cta.scss @@ -12,13 +12,13 @@ width: 100%; height: 3.5rem; cursor: pointer; - + h3 { margin-top: 0; text-shadow: none; color: #000; } - + p { margin: 0; font-weight: 700; @@ -26,7 +26,7 @@ color: $black; line-height: 3.5rem; max-width: 100%; - + span { font-weight: 400; } @@ -38,11 +38,11 @@ &:hover{ background: rgba($purple, 0.8); transition: all 0.2s; - + p { color: $white; } - + } } .cta--signin { @@ -50,25 +50,74 @@ &:hover{ background: rgba($purple, 0.8); transition: all 0.2s; - + p { color: $white; } } } +.block-useraccountblock { + display: flex; + position: absolute; + top: 0; + height: 3.5rem; + width: 100%; + text-align: center; + width: 100%; + background: rgba($purple, 0.3); + a { + text-shadow: none; + box-shadow: none; + &:hover { + text-shadow: none; + box-shadow: none; + } + } +} + @media (min-width: 768px) { - + + .block-useraccountblock { + position: relative; + height: auto; + border-radius: 15px; + background-color: rgba($white, 0.1); + margin: 0px; + margin-bottom: 15px; + padding: 15px; + text-align: left; + box-shadow: none; + a { + color: $white; + padding: 0.5rem 0.8rem; + + &:hover { + color: $pink; + } + &:last-child { + border: 1px solid $white; + padding: 8px 16px; + border-radius: 0.5rem; + background: $gray-800; + &:hover { + border: 1px solid $pink; + + } + } + } + } + .cta--wrapper { display: block; position: relative; top: auto; } - + .cta--join, .cta--signin{ - + } - + .cta--sidebar { position: relative; height: auto; @@ -79,12 +128,12 @@ padding: 15px; text-align: left; box-shadow: none; - - + + h3, p { color: $white; } - + p { margin-bottom: 0; margin-top: 1.4rem; @@ -93,3 +142,4 @@ } } + diff --git a/templates/layout/html.html.twig b/templates/layout/html.html.twig index 4fe57a0..4c41eea 100644 --- a/templates/layout/html.html.twig +++ b/templates/layout/html.html.twig @@ -26,6 +26,7 @@ {% set body_classes = [ logged_in ? 'user-logged-in', + not logged_in ? 'user-not-logged-in', not root_path ? 'path-frontpage' : 'path-' ~ root_path|clean_class, node_type ? 'page-node-type-' ~ node_type|clean_class, db_offline ? 'db-offline', From b6aaded67030418bc1353f2c8b6d27db1ceb85cb Mon Sep 17 00:00:00 2001 From: Nikolay Lobachev Date: Wed, 22 Aug 2018 11:12:49 +0200 Subject: [PATCH 145/200] Add context for subgroups and subimage --- funkywave.theme | 6 ++++++ .../group/group--ngf-discussion-group--teaser.html.twig | 1 + 2 files changed, 7 insertions(+) diff --git a/funkywave.theme b/funkywave.theme index 69c5d22..303d2b2 100644 --- a/funkywave.theme +++ b/funkywave.theme @@ -202,6 +202,11 @@ function funkywave_preprocess_group(&$variables) { ]; if (in_array($view_mode, $display_modes)) { + if (!empty($group->group)) { + _funkywave_group_context($group, $group->group, $variables); + } + + /* if ($group->field_ngf_group_visibility->value == NGF_GROUP_PUBLIC) { $variables['ngf_context_text'] = t('Public group'); } @@ -213,6 +218,7 @@ function funkywave_preprocess_group(&$variables) { $visibility_icon = 'fa fa-eye-slash'; $variables['ngf_context_text'] = ' ' . t('Secret group'); } + */ } if ($view_mode == 'ngf_header') { diff --git a/templates/group/group--ngf-discussion-group--teaser.html.twig b/templates/group/group--ngf-discussion-group--teaser.html.twig index 4b7d14e..0854929 100644 --- a/templates/group/group--ngf-discussion-group--teaser.html.twig +++ b/templates/group/group--ngf-discussion-group--teaser.html.twig @@ -53,5 +53,6 @@ url: url, context_text: ngf_context_text, container_class: ngf_group_container_class, + subpic: ngf_sub_picture, } %} \ No newline at end of file From 6f104a0b69e622307e29073efed46cac5bfe472b Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Wed, 22 Aug 2018 11:14:27 +0200 Subject: [PATCH 146/200] NGF-372 changes for login --- css/style.css | 22 +++++++++++++++------- sass/base/_base.scss | 5 +++++ sass/components/_cta.scss | 16 +++++++++------- 3 files changed, 29 insertions(+), 14 deletions(-) diff --git a/css/style.css b/css/style.css index 2c01a03..36fdb83 100644 --- a/css/style.css +++ b/css/style.css @@ -4993,6 +4993,10 @@ a:not(.toolbar-item):hover { display: table; } +.general-container--card { + margin-top: -3.5rem; +} + .background--talk > main { min-height: auto; float: none; @@ -5056,6 +5060,7 @@ main *:not(img):not(svg)::selection { .general-container--card { border-bottom-left-radius: 25px; border-bottom-right-radius: 25px; + margin-top: 0; } } @@ -7097,11 +7102,13 @@ button.paragraphs-dropdown-action { display: -webkit-box; display: -ms-flexbox; display: flex; + -webkit-box-pack: end; + -ms-flex-pack: end; + justify-content: flex-end; position: absolute; top: 0; height: 3.5rem; - width: 100%; - text-align: center; + line-height: 3.5rem; width: 100%; background: rgba(102, 45, 145, 0.3); } @@ -7110,6 +7117,9 @@ button.paragraphs-dropdown-action { text-shadow: none; -webkit-box-shadow: none; box-shadow: none; + color: #000; + font-weight: 700; + margin: 0 15px 0 0; } .block-useraccountblock a:hover { @@ -7121,20 +7131,18 @@ button.paragraphs-dropdown-action { @media (min-width: 768px) { .block-useraccountblock { position: relative; - height: auto; - border-radius: 15px; - background-color: rgba(255, 255, 255, 0.1); - margin: 0px; margin-bottom: 15px; - padding: 15px; text-align: left; -webkit-box-shadow: none; box-shadow: none; + display: initial; + background: initial; } .block-useraccountblock a { color: #FFFFFF; padding: 0.5rem 0.8rem; + font-weight: normal; } .block-useraccountblock a:hover { diff --git a/sass/base/_base.scss b/sass/base/_base.scss index cceb785..d449189 100644 --- a/sass/base/_base.scss +++ b/sass/base/_base.scss @@ -135,6 +135,10 @@ a:not(.toolbar-item) { } } +.general-container--card { + margin-top: -3.5rem; +} + .background--talk > main { min-height: auto; float: none; @@ -190,6 +194,7 @@ main *:not(img):not(svg)::selection { .general-container--card { border-bottom-left-radius: 25px; border-bottom-right-radius: 25px; + margin-top: 0; } } diff --git a/sass/components/_cta.scss b/sass/components/_cta.scss index fc3cd40..0b9750e 100644 --- a/sass/components/_cta.scss +++ b/sass/components/_cta.scss @@ -59,16 +59,19 @@ .block-useraccountblock { display: flex; + justify-content: flex-end; position: absolute; top: 0; height: 3.5rem; - width: 100%; - text-align: center; + line-height: 3.5rem; width: 100%; background: rgba($purple, 0.3); a { text-shadow: none; box-shadow: none; + color: $black; + font-weight: 700; + margin: 0 15px 0 0; &:hover { text-shadow: none; box-shadow: none; @@ -80,17 +83,16 @@ .block-useraccountblock { position: relative; - height: auto; - border-radius: 15px; - background-color: rgba($white, 0.1); - margin: 0px; margin-bottom: 15px; - padding: 15px; text-align: left; box-shadow: none; + display: initial; + background: initial; + a { color: $white; padding: 0.5rem 0.8rem; + font-weight: normal; &:hover { color: $pink; From 29960d1d52647b9c7576236d283bd1b8a98d4f7b Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Wed, 22 Aug 2018 11:51:10 +0200 Subject: [PATCH 147/200] NGF-372 sign in and register buttons --- css/style.css | 15 ++++----------- sass/components/_cta.scss | 16 +++++----------- 2 files changed, 9 insertions(+), 22 deletions(-) diff --git a/css/style.css b/css/style.css index 36fdb83..6ca9559 100644 --- a/css/style.css +++ b/css/style.css @@ -7141,22 +7141,15 @@ button.paragraphs-dropdown-action { .block-useraccountblock a { color: #FFFFFF; - padding: 0.5rem 0.8rem; + padding: 0.5rem 1rem; font-weight: normal; - } - - .block-useraccountblock a:hover { - color: #ff397f; - } - - .block-useraccountblock a:last-child { border: 1px solid #FFFFFF; - padding: 8px 16px; border-radius: 0.5rem; - background: #26252B; + margin: 0 10px 0 0; } - .block-useraccountblock a:last-child:hover { + .block-useraccountblock a:hover { + color: #ff397f; border: 1px solid #ff397f; } diff --git a/sass/components/_cta.scss b/sass/components/_cta.scss index 0b9750e..6dc58e7 100644 --- a/sass/components/_cta.scss +++ b/sass/components/_cta.scss @@ -91,21 +91,15 @@ a { color: $white; - padding: 0.5rem 0.8rem; + padding: 0.5rem 1rem; font-weight: normal; + border: 1px solid $white; + border-radius: 0.5rem; + margin: 0 10px 0 0; &:hover { color: $pink; - } - &:last-child { - border: 1px solid $white; - padding: 8px 16px; - border-radius: 0.5rem; - background: $gray-800; - &:hover { - border: 1px solid $pink; - - } + border: 1px solid $pink; } } } From f894e06ffe813eacc80f7ee70e6cdbe3bad569a7 Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Wed, 22 Aug 2018 14:28:15 +0200 Subject: [PATCH 148/200] small fix for sign in and register buttons --- css/style.css | 8 ++++---- sass/components/_cta.scss | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/css/style.css b/css/style.css index 6ca9559..36fa937 100644 --- a/css/style.css +++ b/css/style.css @@ -7113,7 +7113,7 @@ button.paragraphs-dropdown-action { background: rgba(102, 45, 145, 0.3); } -.block-useraccountblock a { +.block-useraccountblock > a { text-shadow: none; -webkit-box-shadow: none; box-shadow: none; @@ -7122,7 +7122,7 @@ button.paragraphs-dropdown-action { margin: 0 15px 0 0; } -.block-useraccountblock a:hover { +.block-useraccountblock > a:hover { text-shadow: none; -webkit-box-shadow: none; box-shadow: none; @@ -7139,7 +7139,7 @@ button.paragraphs-dropdown-action { background: initial; } - .block-useraccountblock a { + .block-useraccountblock > a { color: #FFFFFF; padding: 0.5rem 1rem; font-weight: normal; @@ -7148,7 +7148,7 @@ button.paragraphs-dropdown-action { margin: 0 10px 0 0; } - .block-useraccountblock a:hover { + .block-useraccountblock > a:hover { color: #ff397f; border: 1px solid #ff397f; } diff --git a/sass/components/_cta.scss b/sass/components/_cta.scss index 6dc58e7..a32eac4 100644 --- a/sass/components/_cta.scss +++ b/sass/components/_cta.scss @@ -66,7 +66,7 @@ line-height: 3.5rem; width: 100%; background: rgba($purple, 0.3); - a { + > a { text-shadow: none; box-shadow: none; color: $black; @@ -89,7 +89,7 @@ display: initial; background: initial; - a { + > a { color: $white; padding: 0.5rem 1rem; font-weight: normal; From 628a7cfef7f0d43537f57829f868aa37d53af6bd Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Thu, 23 Aug 2018 11:46:30 +0200 Subject: [PATCH 149/200] added sass for autocomplete deluxe --- css/style.css | 58 ++++++++++++++++++++------------------ sass/base/_form.scss | 2 -- sass/base/_tag.scss | 67 +++++++++++++++++++++++++++++--------------- 3 files changed, 76 insertions(+), 51 deletions(-) diff --git a/css/style.css b/css/style.css index 36fa937..4e4baa7 100644 --- a/css/style.css +++ b/css/style.css @@ -5470,8 +5470,6 @@ form .form__block--toggle .label-text, .form .form__block--toggle .label-text { } ul.ui-menu { - width: 100%; - max-width: 32em; z-index: 2000; margin: 0; padding: 0; @@ -5637,7 +5635,7 @@ ul.ui-menu .ui-menu-item-wrapper.ui-state-active { } } -a.tag, li.tag { +a.tag, li.tag, .autocomplete-deluxe-item { background-color: #515155; color: #FFFFFF; border-radius: 2rem; @@ -5646,27 +5644,14 @@ a.tag, li.tag { box-shadow: none; font-size: 1.3rem; border: solid 1px #515155; + background-image: none; } -a.tag.tag--deletable, li.tag.tag--deletable { - padding-right: 0.2rem; -} - -a.tag { - padding: 0.45rem 0.6rem; -} - -a.tag:hover { - background-color: #c6c7cc; - color: #05111E; -} - -li.tag { - padding: 0.2rem 0.6rem; - line-height: 1.1; +.autocomplete-deluxe-item { + padding: 0.6rem 30px 0.6rem 1rem; } -.tag button.close { +.autocomplete-deluxe-item-delete { line-height: 2rem; padding: 0.1rem; border: none; @@ -5683,14 +5668,11 @@ li.tag { -webkit-transition: all 0.2s; transition: all 0.2s; text-align: center; + background-repeat: no-repeat; + background-position: center; } -.tag button.close span { - margin-top: -0.1rem; - display: block; -} - -.tag button.close:hover { +.autocomplete-deluxe-item-delete:hover { background-color: white; -webkit-box-shadow: 0 0 0 3px rgba(255, 57, 57, 0.5) !important; box-shadow: 0 0 0 3px rgba(255, 57, 57, 0.5) !important; @@ -5698,7 +5680,7 @@ li.tag { transition: all 0.2s; } -.tag button.close:focus { +.autocomplete-deluxe-item-delete:focus { outline: none; -webkit-box-shadow: 0 0 0 3px #ff3939 !important; box-shadow: 0 0 0 3px #ff3939 !important; @@ -5706,6 +5688,28 @@ li.tag { transition: all 0.2s; } +.autocomplete-deluxe-container .form__block { + margin: 5px 0 0 0; +} + +a.tag.tag--deletable, li.tag.tag--deletable { + padding-right: 0.2rem; +} + +a.tag { + padding: 0.45rem 0.6rem; +} + +a.tag:hover { + background-color: #c6c7cc; + color: #05111E; +} + +li.tag { + padding: 0.2rem 0.6rem; + line-height: 1.1; +} + #skip-link, .skip-link { position: fixed; top: 1.5em; diff --git a/sass/base/_form.scss b/sass/base/_form.scss index c4ec17d..243e406 100644 --- a/sass/base/_form.scss +++ b/sass/base/_form.scss @@ -361,8 +361,6 @@ form, .form { /* Registration (city) Autocomplete */ ul.ui-menu { - width: 100%; - max-width: 32em; z-index: 2000; margin: 0; padding: 0; diff --git a/sass/base/_tag.scss b/sass/base/_tag.scss index 7637416..a70c728 100644 --- a/sass/base/_tag.scss +++ b/sass/base/_tag.scss @@ -1,34 +1,37 @@ -a.tag, li.tag { +a.tag, li.tag, .autocomplete-deluxe-item { background-color: $gray-700; color: $white; border-radius: 2rem; text-shadow: none; box-shadow: none; - font-size: 1.3rem; border: solid 1px $gray-700; -} -a.tag.tag--deletable, li.tag.tag--deletable { - padding-right: 0.2rem; + background-image: none; } -a.tag { - padding: 0.45rem 0.6rem; -} +/* -a.tag:hover { - background-color: $gray-400; - color: $gray-900; +.autocomplete-deluxe-item { + float: left; + background-clip: padding-box; + + background-image: -moz-linear-gradient(center top , #F4F4F4 20%, #F0F0F0 50%, #E8E8E8 52%, #EEEEEE 100%); + + cursor: move; + line-height: 13px; + margin: 3px 0 3px 5px; + padding: 3px 20px 3px 5px; + position: relative; } +*/ -li.tag { - padding: 0.2rem 0.6rem; - line-height: 1.1; +.autocomplete-deluxe-item { + padding: 0.6rem 30px 0.6rem 1rem; } -.tag button.close { +.autocomplete-deluxe-item-delete { line-height: 2rem; padding: 0.1rem; border: none; @@ -43,21 +46,41 @@ li.tag { margin-left: 0.6rem; transition: all 0.2s; text-align: center; - - span { - margin-top: -0.1rem; - display: block; - } - + background-repeat: no-repeat; + background-position: center; + &:hover { background-color: rgba($white,1); box-shadow: 0 0 0 3px rgba($red, 0.5) !important; transition: all 0.2s; } - + &:focus { outline: none; box-shadow: 0 0 0 3px $red !important; transition: all 0.2s; } } + +.autocomplete-deluxe-container .form__block { + margin: 5px 0 0 0; +} + +a.tag.tag--deletable, li.tag.tag--deletable { + padding-right: 0.2rem; +} + +a.tag { + padding: 0.45rem 0.6rem; +} + +a.tag:hover { + background-color: $gray-400; + color: $gray-900; +} + + +li.tag { + padding: 0.2rem 0.6rem; + line-height: 1.1; +} From a565d58e45f0961caae22d575b6f2b65237a3cd5 Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Thu, 23 Aug 2018 14:43:32 +0200 Subject: [PATCH 150/200] NGF-370 drag & drop fix for images --- css/style.css | 6 +++++- sass/base/_form.scss | 5 +++++ sass/components/_chosen.scss | 2 +- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/css/style.css b/css/style.css index 4e4baa7..62a33cd 100644 --- a/css/style.css +++ b/css/style.css @@ -5509,6 +5509,10 @@ ul.ui-menu .ui-menu-item-wrapper.ui-state-active { padding: 0; } +.fiu-add-element .form-type-managed-file--advanced label { + height: 140px; +} + @media (min-width: 578px) { .form .form__block--twocol { display: -webkit-box; @@ -6487,7 +6491,7 @@ button.paragraphs-dropdown-action { transition: border-color 0.2s; } -.form-item label { +.form-item label, label { display: block; font-weight: 600; margin-bottom: 0.3em; diff --git a/sass/base/_form.scss b/sass/base/_form.scss index 243e406..a1855d8 100644 --- a/sass/base/_form.scss +++ b/sass/base/_form.scss @@ -402,6 +402,11 @@ ul.ui-menu { /* End Registration (city) Autocomplete */ +/* drag & drop images */ + +.fiu-add-element .form-type-managed-file--advanced label { + height: 140px; +} @media (min-width: 578px) { diff --git a/sass/components/_chosen.scss b/sass/components/_chosen.scss index 878cf32..cddf01e 100644 --- a/sass/components/_chosen.scss +++ b/sass/components/_chosen.scss @@ -35,7 +35,7 @@ transition: border-color 0.2s; } -.form-item label { +.form-item label, label { display: block; font-weight: 600; margin-bottom: 0.3em; From 4ac473bf3983b0b0f7457db549bdbb3934eef8c8 Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Thu, 23 Aug 2018 16:40:49 +0200 Subject: [PATCH 151/200] small css fixes --- css/style.css | 10 +++++++++- sass/base/_tag.scss | 4 ++++ sass/base/_utilities.scss | 30 ++++++++++++++++++------------ 3 files changed, 31 insertions(+), 13 deletions(-) diff --git a/css/style.css b/css/style.css index 62a33cd..320a34a 100644 --- a/css/style.css +++ b/css/style.css @@ -5696,6 +5696,10 @@ a.tag, li.tag, .autocomplete-deluxe-item { margin: 5px 0 0 0; } +div.autocomplete-deluxe-container input.autocomplete-deluxe-form { + border: 1px solid #a6a7ab; +} + a.tag.tag--deletable, li.tag.tag--deletable { padding-right: 0.2rem; } @@ -5720,7 +5724,7 @@ li.tag { left: 1.5em; z-index: 1060; background: #FFFFFF; - pading: 15px; + padding: 15px; } .visually-hidden { @@ -5741,6 +5745,10 @@ ul.links.inline li { display: inline-block; } +.item-list li { + margin: 0 15px 0 0; +} + .focusable:active, .focusable:focus { position: static !important; clip: auto; diff --git a/sass/base/_tag.scss b/sass/base/_tag.scss index a70c728..50511b5 100644 --- a/sass/base/_tag.scss +++ b/sass/base/_tag.scss @@ -66,6 +66,10 @@ a.tag, li.tag, .autocomplete-deluxe-item { margin: 5px 0 0 0; } +div.autocomplete-deluxe-container input.autocomplete-deluxe-form { + border: 1px solid $gray-500; +} + a.tag.tag--deletable, li.tag.tag--deletable { padding-right: 0.2rem; } diff --git a/sass/base/_utilities.scss b/sass/base/_utilities.scss index e59c1e9..2cefda5 100644 --- a/sass/base/_utilities.scss +++ b/sass/base/_utilities.scss @@ -1,10 +1,10 @@ #skip-link, .skip-link { - position: fixed; - top: 1.5em; - left: 1.5em; - z-index: 1060; + position: fixed; + top: 1.5em; + left: 1.5em; + z-index: 1060; background: $white; - pading: 15px; + padding: 15px; } .visually-hidden { @@ -16,15 +16,21 @@ } - ul.links.inline { - margin: 0; - padding: 0; - padding-bottom: 15px; +ul.links.inline { + margin: 0; + padding: 0; + padding-bottom: 15px; - li { - display: inline-block; - } + li { + display: inline-block; } +} + +.item-list { + li { + margin: 0 15px 0 0; + } +} .focusable:active, .focusable:focus { position: static !important; From 8eeb54a196d0717273e6dcfba76a8ef1771515d0 Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Thu, 23 Aug 2018 17:51:29 +0200 Subject: [PATCH 152/200] NGF-371 hide navigation-menu__list--tools for mobile --- css/style.css | 16 ++++-- sass/base/_base.scss | 3 +- sass/components/_cta.scss | 2 +- sass/components/_inpage-nav.scss | 2 +- sass/components/_navigation.scss | 4 ++ sass/components/_profile.scss | 98 ++++++++++++++++---------------- 6 files changed, 67 insertions(+), 58 deletions(-) diff --git a/css/style.css b/css/style.css index 320a34a..e5667fb 100644 --- a/css/style.css +++ b/css/style.css @@ -5020,7 +5020,7 @@ a:not(.toolbar-item):hover { main { display: block; - margin-top: -36px; + margin-top: -18px; padding: 0px 15px 75px 15px; min-height: 100vh; background-color: #fff; @@ -7114,7 +7114,7 @@ button.paragraphs-dropdown-action { color: #FFFFFF; } -.block-useraccountblock { +.user-not-logged-in .block-useraccountblock { display: -webkit-box; display: -ms-flexbox; display: flex; @@ -7129,7 +7129,7 @@ button.paragraphs-dropdown-action { background: rgba(102, 45, 145, 0.3); } -.block-useraccountblock > a { +.user-not-logged-in .block-useraccountblock > a { text-shadow: none; -webkit-box-shadow: none; box-shadow: none; @@ -7138,7 +7138,7 @@ button.paragraphs-dropdown-action { margin: 0 15px 0 0; } -.block-useraccountblock > a:hover { +.user-not-logged-in .block-useraccountblock > a:hover { text-shadow: none; -webkit-box-shadow: none; box-shadow: none; @@ -7603,7 +7603,7 @@ button.paragraphs-dropdown-action { flex-direction: row; -ms-flex-wrap: nowrap; flex-wrap: nowrap; - margin-bottom: 0; + margin: 0; padding: 0 0 0 15px; width: 100%; overflow-y: auto; @@ -7898,6 +7898,10 @@ a.logo__link span { text-align: center; } +.navigation-menu__list--tools { + display: none; +} + .background--talk .navigation-menu { background: none; } @@ -8788,7 +8792,7 @@ header.profile .profile__meta li::after, header.profile .profile__meta li::befor header.profile .profile__networks, header.profile .profile__actions { margin: 0; - padding: 1rem 0; + padding: 2rem 0; border-bottom: solid 1px #dfe0e5; } diff --git a/sass/base/_base.scss b/sass/base/_base.scss index d449189..921073b 100644 --- a/sass/base/_base.scss +++ b/sass/base/_base.scss @@ -159,7 +159,8 @@ a:not(.toolbar-item) { main { display: block; - margin-top: -36px; + /* margin-top: -28px; */ + margin-top: -18px; padding: 0px 15px 75px 15px; min-height: 100vh; background-color: #fff; diff --git a/sass/components/_cta.scss b/sass/components/_cta.scss index a32eac4..9985ab9 100644 --- a/sass/components/_cta.scss +++ b/sass/components/_cta.scss @@ -57,7 +57,7 @@ } } -.block-useraccountblock { +.user-not-logged-in .block-useraccountblock { display: flex; justify-content: flex-end; position: absolute; diff --git a/sass/components/_inpage-nav.scss b/sass/components/_inpage-nav.scss index 72b5a64..f249178 100644 --- a/sass/components/_inpage-nav.scss +++ b/sass/components/_inpage-nav.scss @@ -10,7 +10,7 @@ display: flex; flex-direction: row; flex-wrap: nowrap; - margin-bottom: 0; + margin: 0; padding: 0 0 0 15px; width:100%; overflow-y: auto; diff --git a/sass/components/_navigation.scss b/sass/components/_navigation.scss index dab3987..672fb15 100644 --- a/sass/components/_navigation.scss +++ b/sass/components/_navigation.scss @@ -72,6 +72,10 @@ text-align: center; } } + + &__list--tools { + display: none; + } } .background--talk .navigation-menu { diff --git a/sass/components/_profile.scss b/sass/components/_profile.scss index fef9589..b757e58 100644 --- a/sass/components/_profile.scss +++ b/sass/components/_profile.scss @@ -2,25 +2,25 @@ header.profile { text-align: center; padding-left: 0px; padding-right: 0px; - + ~ .inpage-nav { margin-left: -15px; margin-right: -15px; } - - + + ~ .newsfeed { margin-left: -15px; margin-right: -15px; } - - + + .profile__pic { width: 100%; height: 100%; border-radius: 300px; } - + a.profile__pic__link { display: block; width: 100px; @@ -34,119 +34,119 @@ header.profile { box-shadow: none; text-decoration: none; } - + a.profile__pic__link:hover { text-shadow: none; box-shadow: none; background-color: $purple; - + .profile__pic { opacity: 0.8; } } - + h2 { margin-bottom: 0rem; color: $gray-800; - + a { font-weight: 600; color: #26252B; text-shadow: none; box-shadow: none; transition: all .2s ease; - + } } - + h2 + h4 { margin-top: 0.4rem; - + a { color: $gray-700; font-weight: 600; } } - + .profile__link--about{ display: inline-block; margin-bottom: 1.8rem; font-size: 1.4rem; line-height: 1.2; transition: margin .2s; - + i, svg { margin-left: 0rem; transition: margin .2s; } - + &:hover { margin-left: 0.5rem; transition: margin .2s; } - + &:hover i, &:hover svg{ margin-left: 0.5rem; - transition: margin .2s; + transition: margin .2s; } } - + .profile__link { box-shadow: none; &:hover{ box-shadow: none; } } - + .profile__qrcode { max-width: 100%; height: auto; } - + .profile__link--back{ display: inline-block; margin-bottom: 1.8rem; font-size: 1.4rem; line-height: 1.2; transition: margin .2s; - + i, svg { margin-right: 0rem; transition: margin .2s; } - + &:hover { margin-right: 0.5rem; transition: margin .2s; } - + &:hover i, &:hover svg{ margin-right: 0.5rem; - transition: margin .2s; + transition: margin .2s; } } - + .profile__meta, .profile__location { padding:0; margin:0; } - - .profile__location { + + .profile__location { margin-top: 1.8rem; } - + .profile__location li::after { display: inline-block; content: "|"; padding: 0 1rem; } - + .profile__location li:last-child::after { display: inline-block; content: ""; padding: 0 0rem; } - + .profile__meta li, .profile__location li { //margin-top: 0.6rem; font-weight: bold; @@ -156,33 +156,33 @@ header.profile { list-style: none; max-width: 100%; } - + .profile__location li { font-weight: 500; display: inline-block; } - + .profile__meta li::after, .profile__meta li::before { display: inline-block; content: "—"; padding: 0 1.5rem; } - + .profile__networks, .profile__actions{ @extend .list--flex-space-evenly; - margin:0; - padding:1rem 0; + margin: 0; + padding: 2rem 0; border-bottom: solid 1px $gray-300; } - + .profile__networks.active { border-bottom: none; } - + .profile__networks li, .profile__actions li{ - list-style: none; + list-style: none; flex-grow: 1; - + a.active { text-shadow: none; box-shadow: none; @@ -190,10 +190,10 @@ header.profile { font-weight: 600; cursor: auto; } - } - + } + + - .profile__actions a{ text-align: center; display: block; @@ -204,11 +204,11 @@ header.profile { padding: 5px; max-width: 90px; margin: auto; - + &:hover { background-color: $gray-200; } - + &:before{ content: ""; display: block; @@ -218,7 +218,7 @@ header.profile { background: transparent no-repeat; background-size: 76px 35px; } - + &.profile__actions--join:before{ background-image: url(../images/profile--action__join-sprite.svg); background-position: 0 0; @@ -243,8 +243,8 @@ header.profile { background-image: url(../images/profile--action__add2list-sprite.svg); background-position: 0 0; } - - + + } - + } From 97da018bd2baa1e3eabd76392b062c9acef9ccc2 Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Tue, 28 Aug 2018 16:24:19 +0200 Subject: [PATCH 153/200] NGF-333 removed flex property --- css/style.css | 3 -- sass/components/_post-info.scss | 61 ++++++++++++++++----------------- 2 files changed, 30 insertions(+), 34 deletions(-) diff --git a/css/style.css b/css/style.css index e5667fb..83c9189 100644 --- a/css/style.css +++ b/css/style.css @@ -8455,9 +8455,6 @@ a.logo__link span { width: 5.6rem; height: 5.6rem; margin-right: 1.7rem; - -webkit-box-flex: 0; - -ms-flex: 0 0 5.6rem; - flex: 0 0 5.6rem; border-radius: 100px; border: solid 5px rgba(255, 57, 127, 0.5); } diff --git a/sass/components/_post-info.scss b/sass/components/_post-info.scss index edd898c..041a193 100644 --- a/sass/components/_post-info.scss +++ b/sass/components/_post-info.scss @@ -2,63 +2,62 @@ margin-bottom: 2rem; &.profile-shortinfo--group { - + background: url(../images/profile-shortinfo--group__background.svg) no-repeat left top; background-size: 5.7rem 8.3rem; - + .profile-shortinfo__ilustration { width: 5.7rem; height: 8.3rem; margin-right: 1.7rem; float: left; } - + img.responsive.profile-shortinfo__picture--account { margin-left: 0.5rem; margin-top: 0.6rem; } - + } - + &.profile-shortinfo--no-group { - + display: flex; background: none; - + .profile-shortinfo__ilustration { width: 5.6rem; height: 5.6rem; margin-right: 1.7rem; - flex: 0 0 5.6rem; border-radius: 100px; border: solid 5px rgba($pink, 0.5); } - + .profile-shortinfo__action { flex: 0 0 5.6rem; } - + img.responsive.profile-shortinfo__picture--account { margin-left: 0rem; margin-top: 0rem; } - + .profile-shortinfo__link.profile-shortinfo__link--account { margin-left: 0rem; margin-top: 0rem; } - + } - - - + + + img.responsive.profile-shortinfo__picture--account { width: 4.6rem; height: 4.6rem; border-radius: 100px; display: block; } - + img.responsive.profile-shortinfo__picture--group { margin-left: 3rem; margin-top: 5px; @@ -67,25 +66,25 @@ border-radius: 100px; display: block; } - + .profile-shortinfo__link { text-shadow: none; box-shadow: none; - + img.responsive.profile-shortinfo__picture--account { margin-left: 0; margin-top: 0; width: calc(4.6rem - 4px); height: calc(4.6rem - 4px); } - + img.responsive.profile-shortinfo__picture--group { margin-left: 0; margin-top: 0; width: calc(2rem - 2px); height: calc(2rem - 2px); } - + &--group { border-radius: 100px; border: solid 1px $pink; @@ -97,7 +96,7 @@ margin-top: 5px; border: solid 1px $pink; transition: border 0.2s; - + &:hover, &:focus { text-shadow: none; box-shadow: none; @@ -107,7 +106,7 @@ transition: border 0.2s; img { - opacity: 0.6; + opacity: 0.6; } } } @@ -121,7 +120,7 @@ height: 4.6rem; margin-left: 0.5rem; margin-top: 0.6rem; - + &:hover, &:focus { text-shadow: none; box-shadow: none; @@ -131,30 +130,30 @@ transition: border 0.2s; img { - opacity: 0.6; + opacity: 0.6; } } } } - + &__details { float: left; width: calc(100% - 7.4rem); - + .profile-shortinfo__author { - + font-size: 2rem; font-weight: 700; color: $gray-700; margin: 0; padding: 0.2rem 0 0 0; - + .profile-shortinfo__account-link { text-shadow: none; box-shadow: none; font-weight: 700; color: $gray-700; - + &:hover { color: $purple; text-shadow: 0 2px 0 $body__background-color, 0 3px 0 $body__background-color, 1px 2px 0 $body__background-color, -1px 2px 0 $body__background-color; @@ -162,10 +161,10 @@ } } } - + .profile-shortinfo__metadata { margin-top: 0.2rem; line-height: 1.4; } } -} \ No newline at end of file +} From 5670f46dfa22cbe9f1121ab5a2de54382f621085 Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Tue, 28 Aug 2018 16:46:32 +0200 Subject: [PATCH 154/200] NGF-334 fixed tabs for ie by removing flex properties --- css/style.css | 7 +------ sass/components/_inpage-nav.scss | 4 +--- 2 files changed, 2 insertions(+), 9 deletions(-) diff --git a/css/style.css b/css/style.css index 83c9189..99b7080 100644 --- a/css/style.css +++ b/css/style.css @@ -7606,17 +7606,12 @@ button.paragraphs-dropdown-action { margin: 0; padding: 0 0 0 15px; width: 100%; - overflow-y: auto; + overflow-x: auto; } .inpage-nav .nav--tabs li { list-style: none; display: block; - -ms-flex-preferred-size: 100px; - flex-basis: 100px; - -webkit-box-flex: 0; - -ms-flex: 0; - flex: 0; padding: 2px 15px 2px 0; } diff --git a/sass/components/_inpage-nav.scss b/sass/components/_inpage-nav.scss index f249178..0223d4e 100644 --- a/sass/components/_inpage-nav.scss +++ b/sass/components/_inpage-nav.scss @@ -13,13 +13,11 @@ margin: 0; padding: 0 0 0 15px; width:100%; - overflow-y: auto; + overflow-x: auto; li { list-style: none; display: block; - flex-basis: 100px; - flex: 0; padding: 2px 15px 2px 0; a{ From 04481d309b37a32e4243e5d54b28d236407d1559 Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Thu, 30 Aug 2018 13:29:24 +0200 Subject: [PATCH 155/200] js fixes --- js/script.js | 146 ++++++++++++++++++++++++----------------------- js_min/script.js | 2 +- 2 files changed, 76 insertions(+), 72 deletions(-) diff --git a/js/script.js b/js/script.js index d5dadd3..f465b97 100644 --- a/js/script.js +++ b/js/script.js @@ -1,97 +1,101 @@ (function ($) { - // - $(document).ready(function() { - $(".disabled").click(function (e) { - e.preventDefault(); - }) - - $("a.account-info__wrapper").click(function(e) { - e.preventDefault(); - - var $menu = $(".account-info__dropdown"); + Drupal.behaviors.dialogAutoFit = { + attach: function (context, settings) { + $(window).once().on('dialog:aftercreate', function (e, dialog, $element, settings) { + $("#drupal-modal").dialog({height:'auto'}); + }); + } + }; - $menu.toggle(200); - }) + Drupal.behaviors.buttonBehaviors = { + attach: function (context, settings) { + $(".disabled").once().click(function (e) { + e.preventDefault(); + }); - function addInterest ($btn) { + $(".btn--interest:not([disabled])").click(function (e) { + e.preventDefault(); + addInterest( $(this) ); + }); + } + }; - var $interestedBtn = $btn; - var $cancelBtn = $('
    '); - var marginGap = 0; + Drupal.behaviors.userMenuToggle = { + attach: function (context, settings) { + $("a.account-info__wrapper", context).once().click(function(e) { + e.preventDefault(); + $(".account-info__dropdown").toggle(200); + }) + } + }; - $interestedBtn.off("click"); - $interestedBtn.toggleClass("flip"); - $interestedBtn.blur(); - setTimeout(function() { - $interestedBtn.prepend(' '); - //$interestedBtn.css({transform: "rotateX(0deg)"}); - $interestedBtn.removeClass("flip"); - $interestedBtn.prop("disabled", true); - $interestedBtn.addClass("disabled"); + function addInterest ($btn) { - $(".disabled").click(function (e) { - e.preventDefault(); - }) + var $interestedBtn = $btn; + var $cancelBtn = $('
    '); + var marginGap = 0; - }, 200); + $interestedBtn.off("click"); + $interestedBtn.toggleClass("flip"); + $interestedBtn.blur(); + setTimeout(function() { + $interestedBtn.prepend(' '); + //$interestedBtn.css({transform: "rotateX(0deg)"}); + $interestedBtn.removeClass("flip"); + $interestedBtn.prop("disabled", true); + $interestedBtn.addClass("disabled"); + }, 200); - $cancelBtn.css({opacity: 0}); - $interestedBtn.after($cancelBtn); + $cancelBtn.css({opacity: 0}); + $interestedBtn.after($cancelBtn); - console.log("hello sergey"); + console.log("hello sergey"); - if (!$interestedBtn.parent().hasClass("btn-list--center")) { - marginGap = $interestedBtn.offset().top - $cancelBtn.offset().top - 4; - } + if (!$interestedBtn.parent().hasClass("btn-list--center")) { + marginGap = $interestedBtn.offset().top - $cancelBtn.offset().top - 4; + } - $cancelBtn.css({display: "none", marginTop : marginGap}); + $cancelBtn.css({display: "none", marginTop : marginGap}); - $cancelBtn.slideToggle(200); - $cancelBtn.animate({opacity: 1}, 200); + $cancelBtn.slideToggle(200); + $cancelBtn.animate({opacity: 1}, 200); - $cancelBtn.children(".btn").click(function (e) { - e.preventDefault(); + $cancelBtn.children(".btn").click(function (e) { + e.preventDefault(); - cancelInterest( $(this) ); - }); - } + cancelInterest( $(this) ); + }); + } - function cancelInterest ($btn) { + function cancelInterest ($btn) { - var $cancelBtn = $btn.parent(), - $interestedBtn = $cancelBtn.prev(".btn--interest"); + var $cancelBtn = $btn.parent(), + $interestedBtn = $cancelBtn.prev(".btn--interest"); - $cancelBtn.off("click"); - $cancelBtn.animate({opacity: 0}, 200); - $cancelBtn.slideToggle(200, function () { - $cancelBtn.remove(); - }); + $cancelBtn.off("click"); + $cancelBtn.animate({opacity: 0}, 200); + $cancelBtn.slideToggle(200, function () { + $cancelBtn.remove(); + }); + $interestedBtn.prop("disabled", false); + $interestedBtn.removeClass("disabled"); + $interestedBtn.toggleClass("flip"); + setTimeout(function() { + $interestedBtn.find("svg").remove(); + $interestedBtn.removeClass("flip"); $interestedBtn.prop("disabled", false); $interestedBtn.removeClass("disabled"); - $interestedBtn.toggleClass("flip"); - setTimeout(function() { - $interestedBtn.find("svg").remove(); - $interestedBtn.removeClass("flip"); - $interestedBtn.prop("disabled", false); - $interestedBtn.removeClass("disabled"); - $interestedBtn.click(function (e) { - e.preventDefault(); - - addInterest( $(this) ); - }); + $interestedBtn.click(function (e) { + e.preventDefault(); - }, 200); + addInterest( $(this) ); + }); - } + }, 200); - $(".btn--interest:not([disabled])").click(function (e) { - e.preventDefault(); + } - addInterest( $(this) ); - }); - }); -// -})(jQuery); \ No newline at end of file +})(jQuery); diff --git a/js_min/script.js b/js_min/script.js index f2e39f3..7a78ad3 100644 --- a/js_min/script.js +++ b/js_min/script.js @@ -1 +1 @@ -$(document).ready(function(){function n(e){var t=e,i=$('
    "),a=0;t.off("click"),t.toggleClass("flip"),t.blur(),setTimeout(function(){t.prepend(' '),t.removeClass("flip"),t.prop("disabled",!0),t.addClass("disabled"),$(".disabled").click(function(e){e.preventDefault()})},200),i.css({opacity:0}),t.after(i),t.parent().hasClass("btn-list--center")||(a=t.offset().top-i.offset().top-4),i.css({display:"none",marginTop:a}),i.slideToggle(200),i.animate({opacity:1},200),i.children(".btn").click(function(e){var t,i,a;e.preventDefault(),t=$(this),i=t.parent(),a=i.prev(".btn--interest"),i.off("click"),i.animate({opacity:0},200),i.slideToggle(200,function(){i.remove()}),a.prop("disabled",!1),a.removeClass("disabled"),a.toggleClass("flip"),setTimeout(function(){a.find("svg").remove(),a.removeClass("flip"),a.prop("disabled",!1),a.removeClass("disabled"),a.click(function(e){e.preventDefault(),n($(this))})},200)})}$(".disabled").click(function(e){e.preventDefault()}),$("a.account-info__wrapper").click(function(e){e.preventDefault(),$(".account-info__dropdown").toggle(200)}),$(".btn--interest:not([disabled])").click(function(e){e.preventDefault(),n($(this))})}); \ No newline at end of file +!function(i){function n(e){var t=e,a=i('
    "),o=0;t.off("click"),t.toggleClass("flip"),t.blur(),setTimeout(function(){t.prepend(' '),t.removeClass("flip"),t.prop("disabled",!0),t.addClass("disabled")},200),a.css({opacity:0}),t.after(a),console.log("hello sergey"),t.parent().hasClass("btn-list--center")||(o=t.offset().top-a.offset().top-4),a.css({display:"none",marginTop:o}),a.slideToggle(200),a.animate({opacity:1},200),a.children(".btn").click(function(e){var t,a,o;e.preventDefault(),t=i(this),a=t.parent(),o=a.prev(".btn--interest"),a.off("click"),a.animate({opacity:0},200),a.slideToggle(200,function(){a.remove()}),o.prop("disabled",!1),o.removeClass("disabled"),o.toggleClass("flip"),setTimeout(function(){o.find("svg").remove(),o.removeClass("flip"),o.prop("disabled",!1),o.removeClass("disabled"),o.click(function(e){e.preventDefault(),n(i(this))})},200)})}Drupal.behaviors.dialogAutoFit={attach:function(e,t){i(window).once().on("dialog:aftercreate",function(e,t,a,o){i("#drupal-modal").dialog({height:"auto"})})}},Drupal.behaviors.buttonBehaviors={attach:function(e,t){i(".disabled").once().click(function(e){e.preventDefault()}),i(".btn--interest:not([disabled])").click(function(e){e.preventDefault(),n(i(this))})}},Drupal.behaviors.userMenuToggle={attach:function(e,t){i("a.account-info__wrapper",e).once().click(function(e){e.preventDefault(),i(".account-info__dropdown").toggle(200)})}}}(jQuery); \ No newline at end of file From 7b7af9b07eaeea9fd5d487f5cd05234e74d01f63 Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Mon, 3 Sep 2018 13:34:42 +0200 Subject: [PATCH 156/200] NGF-394 node template added for basic pages --- templates/content/node.html.twig | 101 +++++++++++++++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 templates/content/node.html.twig diff --git a/templates/content/node.html.twig b/templates/content/node.html.twig new file mode 100644 index 0000000..7478320 --- /dev/null +++ b/templates/content/node.html.twig @@ -0,0 +1,101 @@ +{# +/** + * @file + * Theme override to display a node. + * + * Available variables: + * - node: The node entity with limited access to object properties and methods. + * Only method names starting with "get", "has", or "is" and a few common + * methods such as "id", "label", and "bundle" are available. For example: + * - node.getCreatedTime() will return the node creation timestamp. + * - node.hasField('field_example') returns TRUE if the node bundle includes + * field_example. (This does not indicate the presence of a value in this + * field.) + * - node.isPublished() will return whether the node is published or not. + * Calling other methods, such as node.delete(), will result in an exception. + * See \Drupal\node\Entity\Node for a full list of public properties and + * methods for the node object. + * - label: The title of the node. + * - content: All node items. Use {{ content }} to print them all, + * or print a subset such as {{ content.field_example }}. Use + * {{ content|without('field_example') }} to temporarily suppress the printing + * of a given child element. + * - author_picture: The node author user entity, rendered using the "compact" + * view mode. + * - metadata: Metadata for this node. + * - date: Themed creation date field. + * - author_name: Themed author name field. + * - url: Direct URL of the current node. + * - display_submitted: Whether submission information should be displayed. + * - attributes: HTML attributes for the containing element. + * The attributes.class element may contain one or more of the following + * classes: + * - node: The current template type (also known as a "theming hook"). + * - node--type-[type]: The current node type. For example, if the node is an + * "Article" it would result in "node--type-article". Note that the machine + * name will often be in a short form of the human readable label. + * - node--view-mode-[view_mode]: The View Mode of the node; for example, a + * teaser would result in: "node--view-mode-teaser", and + * full: "node--view-mode-full". + * The following are controlled through the node publishing options. + * - node--promoted: Appears on nodes promoted to the front page. + * - node--sticky: Appears on nodes ordered above other non-sticky nodes in + * teaser listings. + * - node--unpublished: Appears on unpublished nodes visible only to site + * admins. + * - title_attributes: Same as attributes, except applied to the main title + * tag that appears in the template. + * - content_attributes: Same as attributes, except applied to the main + * content tag that appears in the template. + * - author_attributes: Same as attributes, except applied to the author of + * the node tag that appears in the template. + * - title_prefix: Additional output populated by modules, intended to be + * displayed in front of the main title tag that appears in the template. + * - title_suffix: Additional output populated by modules, intended to be + * displayed after the main title tag that appears in the template. + * - view_mode: View mode; for example, "teaser" or "full". + * - teaser: Flag for the teaser state. Will be true if view_mode is 'teaser'. + * - page: Flag for the full page state. Will be true if view_mode is 'full'. + * - readmore: Flag for more state. Will be true if the teaser content of the + * node cannot hold the main body content. + * - logged_in: Flag for authenticated user status. Will be true when the + * current user is a logged-in member. + * - is_admin: Flag for admin user status. Will be true when the current user + * is an administrator. + * + * @see template_preprocess_node() + * + * @todo Remove the id attribute (or make it a class), because if that gets + * rendered twice on a page this is invalid CSS for example: two lists + * in different view modes. + */ +#} +{% + set classes = [ + 'newsfeed__item', + 'newsfeed__item--' ~ node.bundle|clean_class, + node.isPromoted() ? 'newsfeed__item--promoted', + node.isSticky() ? 'newsfeed__item--sticky', + not node.isPublished() ? 'node--unpublished newsfeed__item--unpublished', + view_mode ? 'newsfeed__item--' ~ view_mode|clean_class, + ] +%} +{{ attach_library('classy/node') }} + + {% block header %} +
    + {{ title_prefix }} + {% if not page %} + + {{ label }} + + {% endif %} + {{ title_suffix }} +
    + {% endblock header %} + + + {{ content }} + + + From 674e5e200d350097fde86af65d776f850f783680 Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Mon, 3 Sep 2018 15:53:40 +0200 Subject: [PATCH 157/200] group introtext added to group header --- css/style.css | 16 ++++++++++++---- .../pattern-profileheader-top.html.twig | 4 ++++ sass/components/_profile.scss | 17 +++++++++++++---- ...--ngf-discussion-group--ngf-header.html.twig | 3 +++ 4 files changed, 32 insertions(+), 8 deletions(-) diff --git a/css/style.css b/css/style.css index 99b7080..336b843 100644 --- a/css/style.css +++ b/css/style.css @@ -8649,7 +8649,6 @@ header.profile a.profile__pic__link:hover .profile__pic { } header.profile h2 { - margin-bottom: 0rem; color: #26252B; } @@ -8674,7 +8673,7 @@ header.profile h2 + h4 a { header.profile .profile__link--about { display: inline-block; - margin-bottom: 1.8rem; + margin: 0 0 3.6rem 0; font-size: 1.4rem; line-height: 1.2; -webkit-transition: margin .2s; @@ -8746,8 +8745,8 @@ header.profile .profile__meta, header.profile .profile__location { margin: 0; } -header.profile .profile__location { - margin-top: 1.8rem; +header.profile .profile__intro { + margin-bottom: 1.8rem; } header.profile .profile__location li::after { @@ -8866,6 +8865,15 @@ header.profile .profile__actions a.profile__actions--add2list:before { background-position: 0 0; } +@media (min-width: 992px) { + .profile__intro { + max-width: 80%; + text-align: center; + margin-left: auto; + margin-right: auto; + } +} + .sub-section--related__title { padding-left: 3.6rem; min-height: 3.7rem; diff --git a/patterns/profile_header_top/pattern-profileheader-top.html.twig b/patterns/profile_header_top/pattern-profileheader-top.html.twig index 6ba0cb7..bb57881 100644 --- a/patterns/profile_header_top/pattern-profileheader-top.html.twig +++ b/patterns/profile_header_top/pattern-profileheader-top.html.twig @@ -18,6 +18,10 @@

    {{ profile_title }}

    {% endif %} +{% if profile_intro %} +
    {{ profile_intro }}
    +{% endif %} + {% if profile_uri_more %} {% trans %} Learn more {% endtrans %}{% trans %} about {% endtrans %}{{ profile_title }} diff --git a/sass/components/_profile.scss b/sass/components/_profile.scss index b757e58..e8d3ace 100644 --- a/sass/components/_profile.scss +++ b/sass/components/_profile.scss @@ -46,7 +46,7 @@ header.profile { } h2 { - margin-bottom: 0rem; + /* margin-bottom: 0rem; */ color: $gray-800; a { @@ -70,7 +70,7 @@ header.profile { .profile__link--about{ display: inline-block; - margin-bottom: 1.8rem; + margin: 0 0 3.6rem 0; font-size: 1.4rem; line-height: 1.2; transition: margin .2s; @@ -131,8 +131,8 @@ header.profile { margin:0; } - .profile__location { - margin-top: 1.8rem; + .profile__intro { + margin-bottom: 1.8rem; } .profile__location li::after { @@ -248,3 +248,12 @@ header.profile { } } + +@media (min-width: 992px) { + .profile__intro { + max-width: 80%; + text-align: center; + margin-left: auto; + margin-right: auto; + } +} diff --git a/templates/group/group--ngf-discussion-group--ngf-header.html.twig b/templates/group/group--ngf-discussion-group--ngf-header.html.twig index 135674b..013a0d3 100644 --- a/templates/group/group--ngf-discussion-group--ngf-header.html.twig +++ b/templates/group/group--ngf-discussion-group--ngf-header.html.twig @@ -47,11 +47,14 @@
    + {% set introtext = content.field_ngf_introtext[0]['#context'].value %} + {# profile header top #} {% include '@patterns/profile_header_top/pattern-profileheader-top.html.twig' with { profile_pic_uri: image_url, profile_title: label, + profile_intro: introtext, profile_uri: url, profile_uri_back: profile_uri_back, profile_uri_more: profile_uri_more From 7afc2f3a703f10c696301a84c93f597dfd8e567e Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Mon, 3 Sep 2018 16:16:28 +0200 Subject: [PATCH 158/200] NGF-384 favicon added --- favicon.ico | Bin 0 -> 1150 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 favicon.ico diff --git a/favicon.ico b/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..544f9fff858bb28e3c0bd8bd3c9778060e968072 GIT binary patch literal 1150 zcmb`_T}V@59LMqhLhYg=sYnzn2|VZ6+T7aN2(t3Ba-%RRObKLGVlUboy)YpREP}d{ z^&S}H$|XTib|H0Bc9BIGL4v7e_eD@@iuQeUM`UZmAjaqXpXWLM-+3O+nTU;FW~Ok> zlj<~)r6OX0C03@^DI(lkG;hk}JjG>Co>ySQ0^}eKDH5Xkt;|Bkh1iBl1TYr~d9?<$ z&teqgIIiFZE}|Bjk%5GK`7*D-gO?S{y}i^ocvPP24e!qNhRSk$!Cl$DjXSb@={vK0 z3Hh6qPJ#bc&^gq+-}&wC0mndVo#Xw(6RSHPhwM)~&e@}{E*D(uzo&)1M77g6gHzBU zU)v@HsH1}qw28l=Zz9eZ^X)1h6QGVFzAxE4Wq#%vl00)dug*W%rmdy6)BCKaS?_vx z)#&ZMZhZW3+vx7OqrdKJ(O;;0GjuTC06FCH$YHlZ^2f@4f=l zU*j-6C)cgX?rJhJ*dv{cWsb@>mbm47iL0n_i@WoJ-}U@bsVmx4Rv6}+G(-+MYM<2G zE8d2UO`lt}_4Hec7%x%zPc6FQ?~CZe{Sj@9@AP}%zBYnkGDG-9-_JNdm~U12nE(3z xd1kWjX01=Z|JeS1>IlYXN&Qz!VV!>^<2oF}(OEb`Pd;RPg~)fDwb&T{gFk}a+BN_H literal 0 HcmV?d00001 From 6a826de262f6a406fbd6f5683d9237167f29c250 Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Mon, 3 Sep 2018 17:22:18 +0200 Subject: [PATCH 159/200] NGF-248 temp fix for error pages --- templates/layout/page--error--404.html.twig | 11 +++++++++-- templates/layout/page--error.html.twig | 11 +++++++++-- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/templates/layout/page--error--404.html.twig b/templates/layout/page--error--404.html.twig index fcd9f7b..973748d 100644 --- a/templates/layout/page--error--404.html.twig +++ b/templates/layout/page--error--404.html.twig @@ -49,9 +49,16 @@
    - {{ page.header }} + {{ page.header }} + + + + +
    - +
    {# link is in html.html.twig #} diff --git a/templates/layout/page--error.html.twig b/templates/layout/page--error.html.twig index fcd9f7b..973748d 100644 --- a/templates/layout/page--error.html.twig +++ b/templates/layout/page--error.html.twig @@ -49,9 +49,16 @@
    - {{ page.header }} + {{ page.header }} + + + + +
    - +
    {# link is in html.html.twig #} From dcf8157a13d7d304c3273f292fbfba0ee926de79 Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Tue, 4 Sep 2018 13:15:18 +0200 Subject: [PATCH 160/200] NGF-397 fix padding issue about page --- templates/user/user--ngf-about.html.twig | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/templates/user/user--ngf-about.html.twig b/templates/user/user--ngf-about.html.twig index a6de545..f71f4f2 100644 --- a/templates/user/user--ngf-about.html.twig +++ b/templates/user/user--ngf-about.html.twig @@ -16,7 +16,7 @@ * @see template_preprocess_user() */ #} -
    -

    {% trans %}About{% endtrans %} {{ full_name }}

    - {{ content }} -
    + +

    {% trans %}About{% endtrans %} {{ full_name }}

    +{{ content }} + From b377bf2a7cf8ccc7169628007c40f3b32aae9645 Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Tue, 4 Sep 2018 17:48:57 +0200 Subject: [PATCH 161/200] add wrapper for group teaser and removed background wave for group listings --- css/style.css | 5 +++++ sass/components/_newsfeed.scss | 7 +++++++ .../group--ngf-discussion-group--teaser.html.twig | 12 ++++++++++++ 3 files changed, 24 insertions(+) diff --git a/css/style.css b/css/style.css index 336b843..8f2a0fd 100644 --- a/css/style.css +++ b/css/style.css @@ -8362,6 +8362,11 @@ a.logo__link span { background-color: #ffebeb; } +.profile-listing .newsfeed__item--teaser { + background: none; + padding: 0rem 0 4rem 0; +} + .pager { display: -webkit-box; display: -ms-flexbox; diff --git a/sass/components/_newsfeed.scss b/sass/components/_newsfeed.scss index 5810ffd..271b346 100644 --- a/sass/components/_newsfeed.scss +++ b/sass/components/_newsfeed.scss @@ -186,3 +186,10 @@ background-color: scale-lightness($red, 90%); } } + +/* remove background wave from group listings */ + +.profile-listing .newsfeed__item--teaser { + background: none; + padding: 0rem 0 4rem 0; +} diff --git a/templates/group/group--ngf-discussion-group--teaser.html.twig b/templates/group/group--ngf-discussion-group--teaser.html.twig index 890411d..19e177c 100644 --- a/templates/group/group--ngf-discussion-group--teaser.html.twig +++ b/templates/group/group--ngf-discussion-group--teaser.html.twig @@ -40,6 +40,16 @@ */ #} +{% + set classes = [ + 'newsfeed__item', + 'newsfeed__item--' ~ group.bundle|clean_class, + view_mode ? 'newsfeed__item--' ~ view_mode|clean_class, + ] +%} + + + {% if content.field_ngf_cover_image|render is empty %} {% set image_url = file_url(directory ~ '/images/default_group.jpg') %} {% else %} @@ -56,3 +66,5 @@ subpic: ngf_sub_picture, } %} + + From ad1eb66517e141bed037c3f23ae86dd20bef4531 Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Thu, 6 Sep 2018 10:07:36 +0200 Subject: [PATCH 162/200] NGF-400 theming breadcrumbs --- css/style.css | 52 +++++++++++++++++++++++++++++-- sass/components/_breadcrumbs.scss | 43 +++++++++++++++++++++++++ sass/components/_inpage-nav.scss | 6 +++- sass/components/_newsfeed.scss | 2 +- 4 files changed, 99 insertions(+), 4 deletions(-) create mode 100644 sass/components/_breadcrumbs.scss diff --git a/css/style.css b/css/style.css index 8f2a0fd..405dd7f 100644 --- a/css/style.css +++ b/css/style.css @@ -6154,6 +6154,50 @@ ul.links.inline li { } } +.breadcrumb ol { + list-style: none; + margin: 0 0 3rem 0; + padding: 0; +} + +.breadcrumb ol li { + display: inline-block; +} + +.breadcrumb ol li:not(:last-child):after { + content: ">"; +} + +.breadcrumb ol li:only-child { + display: none; +} + +.path-frontpage .breadcrumb { + display: none; +} + +@media (max-width: 768px) { + .breadcrumb ol li { + display: none; + } + + .breadcrumb ol li:last-child, .breadcrumb ol li:nth-last-child(2) { + display: inline; + } + + .breadcrumb ol li:nth-last-child(2):after { + content: ""; + } + + .breadcrumb ol li:last-child:before { + content: ">"; + } + + .breadcrumb ol li:only-child { + display: none; + } +} + input.btn { -webkit-appearance: none; -moz-appearance: none; @@ -7604,7 +7648,7 @@ button.paragraphs-dropdown-action { -ms-flex-wrap: nowrap; flex-wrap: nowrap; margin: 0; - padding: 0 0 0 15px; + padding: 0 0 0 0; width: 100%; overflow-x: auto; } @@ -7661,6 +7705,10 @@ button.paragraphs-dropdown-action { cursor: default; } +.inpage-nav .nav--tabs.secondary { + margin-left: 1.5rem; +} + .background--talk .inpage-nav { border-bottom: none; } @@ -8364,7 +8412,7 @@ a.logo__link span { .profile-listing .newsfeed__item--teaser { background: none; - padding: 0rem 0 4rem 0; + padding: 0rem 0 3rem 0; } .pager { diff --git a/sass/components/_breadcrumbs.scss b/sass/components/_breadcrumbs.scss new file mode 100644 index 0000000..bc9c650 --- /dev/null +++ b/sass/components/_breadcrumbs.scss @@ -0,0 +1,43 @@ +.breadcrumb { + ol { + list-style: none; + margin: 0 0 3rem 0; + padding: 0; + li { + display: inline-block; + &:not(:last-child):after { + content: ">" + } + &:only-child { + display: none; + } + } + } +} + +.path-frontpage .breadcrumb { + display: none; +} + +@media (max-width: 768px) { + .breadcrumb { + ol { + li { + display: none; + &:last-child, + &:nth-last-child(2) { + display: inline; + } + &:nth-last-child(2):after { + content: ""; + } + &:last-child:before { + content: ">"; + } + &:only-child { + display: none; + } + } + } + } +} diff --git a/sass/components/_inpage-nav.scss b/sass/components/_inpage-nav.scss index 0223d4e..acbbf4d 100644 --- a/sass/components/_inpage-nav.scss +++ b/sass/components/_inpage-nav.scss @@ -11,7 +11,7 @@ flex-direction: row; flex-wrap: nowrap; margin: 0; - padding: 0 0 0 15px; + padding: 0 0 0 0; width:100%; overflow-x: auto; @@ -62,8 +62,12 @@ cursor: default; } } + } + .nav--tabs.secondary { + margin-left: 1.5rem; } + } .background--talk .inpage-nav { diff --git a/sass/components/_newsfeed.scss b/sass/components/_newsfeed.scss index 271b346..1968023 100644 --- a/sass/components/_newsfeed.scss +++ b/sass/components/_newsfeed.scss @@ -191,5 +191,5 @@ .profile-listing .newsfeed__item--teaser { background: none; - padding: 0rem 0 4rem 0; + padding: 0rem 0 3rem 0; } From 5ce3838f7c0e13672d80b1c411f9b96e04b1f664 Mon Sep 17 00:00:00 2001 From: Nikolay Lobachev Date: Thu, 6 Sep 2018 10:42:39 +0200 Subject: [PATCH 163/200] Add check that #type is in the array --- funkywave.theme | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/funkywave.theme b/funkywave.theme index 303d2b2..8086a04 100644 --- a/funkywave.theme +++ b/funkywave.theme @@ -276,7 +276,9 @@ function funkywave_theme_suggestions_input_alter(&$suggestions, array $variables * Implements hook_theme_suggestions_container_alter(). */ function funkywave_theme_suggestions_container_alter(&$suggestions, array $variables) { - $suggestions[] = 'container__' . $variables['element']['#type']; + if (!empty($variables['element']['#type'])) { + $suggestions[] = 'container__' . $variables['element']['#type']; + } } /** From 9e888c039b82cea26acdf672339c83a68cfd2403 Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Wed, 12 Sep 2018 17:53:59 +0200 Subject: [PATCH 164/200] NGF-406 move to css grid --- css/style.css | 281 ++++++++++------------------- funkywave.info.yml | 3 +- sass/base/_base.scss | 42 +---- sass/base/_grid.scss | 61 +++++++ sass/components/_account-info.scss | 113 ++++++------ sass/components/_footer.scss | 78 ++------ sass/components/_header.scss | 37 +++- sass/components/_inpage-nav.scss | 4 - sass/components/_navigation.scss | 1 - sass/components/_profile.scss | 6 - sass/components/_sidebar.scss | 1 + templates/layout/page.html.twig | 46 ++--- templates/layout/x_page.html.twig | 77 ++++++++ 13 files changed, 372 insertions(+), 378 deletions(-) create mode 100644 sass/base/_grid.scss create mode 100644 sass/components/_sidebar.scss create mode 100644 templates/layout/x_page.html.twig diff --git a/css/style.css b/css/style.css index 405dd7f..fe435df 100644 --- a/css/style.css +++ b/css/style.css @@ -4881,11 +4881,6 @@ body { padding: 0; line-height: 1.8; background-color: #1f1e23; - background-image: url(../images/body-bckgrd--md.svg); - background-repeat: no-repeat; - background-position: 50% top; - background-attachment: fixed; - background-size: 100% 80px; } body.user-not-logged-in { @@ -4965,15 +4960,6 @@ a:not(.toolbar-item):hover { transition: all .2s ease; } -.general-container { - width: 100%; - height: 100%; - max-width: 1200px; - margin: auto; - background-color: #FFFFFF; - overflow: hidden; -} - .general-container--card { height: auto; width: 100%; @@ -5018,14 +5004,6 @@ a:not(.toolbar-item):hover { box-shadow: none; } -main { - display: block; - margin-top: -18px; - padding: 0px 15px 75px 15px; - min-height: 100vh; - background-color: #fff; -} - main *:not(img):not(svg)::-moz-selection { color: #FFFFFF; background: #1a3773; @@ -5050,13 +5028,6 @@ main *:not(img):not(svg)::selection { background-size: 100% 80px; } - main { - margin-top: 0; - margin-left: 33%; - width: 66%; - padding: 100px 15px 0px 15px; - } - .general-container--card { border-bottom-left-radius: 25px; border-bottom-right-radius: 25px; @@ -5064,28 +5035,6 @@ main *:not(img):not(svg)::selection { } } -@media (min-width: 992px) { - .general-container { - -webkit-box-shadow: 0px 0px 25px rgba(0, 0, 0, 0.4); - box-shadow: 0px 0px 25px rgba(0, 0, 0, 0.4); - position: relative; - } - - main { - margin-left: 25%; - width: 50%; - left: auto; - position: relative; - float: left; - } -} - -@media (min-width: 768px) { - .general-container { - background-color: #26252B; - } -} - .form-wrapper { } @@ -5546,6 +5495,59 @@ ul.ui-menu .ui-menu-item-wrapper.ui-state-active { } } +.layout-content { + grid-area: content; + background: #FFFFFF; + padding: 15px; +} + +.layout-sidebar-first { + grid-area: sidebar; +} + +.layout-sidebar-second { + grid-area: sidebar2; +} + +.general-footer { + grid-area: footer; +} + +.layout-sidebar-first, +.layout-sidebar-second { + background: #26252B; + padding: 15px 15px 15px 15px; +} + +.wrapper { + display: grid; + grid-template-columns: 1fr; + margin-top: 60px; + grid-auto-rows: auto; + height: calc(100vh-60px); + width: 100%; + max-width: 1200px; + margin-left: auto; + margin-right: auto; + grid-template-areas: "content" "sidebar" "sidebar2" "footer"; +} + +@media (min-width: 768px) { + .wrapper { + grid-template-columns: 1fr 2fr; + grid-template-rows: auto; + grid-template-areas: "sidebar content" "sidebar2 sidebar2" "footer footer"; + } +} + +@media (min-width: 992px) { + .wrapper { + grid-template-columns: 1fr 2fr 1fr; + grid-template-rows: auto 50px; + grid-template-areas: "sidebar content sidebar2" "footer footer footer"; + } +} + .icon.icon--cog { background: url(../images/settings-icon.svg) no-repeat; background-size: cover; @@ -5893,6 +5895,10 @@ ul.links.inline li { margin-left: 9px; } +.account-info__username { + display: none; +} + .account-info.account-info--notification { width: 93px; height: 85px; @@ -6041,6 +6047,7 @@ ul.links.inline li { .account-info { position: relative !important; z-index: 5000; + float: right; } .account-info a.account-info__wrapper { @@ -6107,10 +6114,8 @@ ul.links.inline li { .account-info.account-info--menu-only { position: relative; - width: calc(33vw - 30px); height: auto; max-height: none; - max-width: 300px; background-image: none; } @@ -7331,19 +7336,35 @@ button.paragraphs-dropdown-action { transition: all .2s ease; } +.general-footer h2 { + margin: 0; +} + +.general-footer a { + color: #a6a7ab; + text-shadow: 0 2px 0 #26252B, 0 3px 0 #26252B, 1px 2px 0 #26252B, -1px 2px 0 #26252B; + -webkit-box-shadow: 0 1px 0 0 #c6c7cc; + box-shadow: 0 1px 0 0 #c6c7cc; + -webkit-transition: all .2s ease; + transition: all .2s ease; +} + +.general-footer a:hover { + color: #ff397f; + -webkit-box-shadow: 0 1px 0 0 #ff397f; + box-shadow: 0 1px 0 0 #ff397f; + -webkit-transition: all .2s ease; + transition: all .2s ease; +} + @media (min-width: 768px) { .general-footer { - position: fixed !important; - bottom: 10px; z-index: 500; - width: 33%; background: #26252B; } .general-footer ul.menu { padding: 0; - margin: 1.5rem; - margin-top: 3rem; } .general-footer ul.menu li { @@ -7354,23 +7375,6 @@ button.paragraphs-dropdown-action { content: " | "; } - .general-footer ul.menu li a { - color: #a6a7ab; - text-shadow: 0 2px 0 #26252B, 0 3px 0 #26252B, 1px 2px 0 #26252B, -1px 2px 0 #26252B; - -webkit-box-shadow: 0 1px 0 0 #c6c7cc; - box-shadow: 0 1px 0 0 #c6c7cc; - -webkit-transition: all .2s ease; - transition: all .2s ease; - } - - .general-footer ul.menu li a:hover { - color: #1a3773; - -webkit-box-shadow: 0 1px 0 0 #FFFFFF; - box-shadow: 0 1px 0 0 #FFFFFF; - -webkit-transition: all .2s ease; - transition: all .2s ease; - } - .general-footer--card { position: relative !important; bottom: auto; @@ -7380,8 +7384,6 @@ button.paragraphs-dropdown-action { .general-footer--card ul.menu { padding: 0; - margin: 1.5rem; - margin-top: 3rem; } .general-footer--card ul.menu li { @@ -7412,35 +7414,7 @@ button.paragraphs-dropdown-action { @media (min-width: 992px) { .general-footer { - width: 25%; - max-width: 300px; - top: auto !important; - left: auto !important; - bottom: auto; - height: 100vh; background-color: #26252B; - background-image: url(../images/body-bckgrd--md.svg); - background-repeat: no-repeat; - background-position: 50% top; - background-attachment: fixed; - background-size: 100% 80px; - z-index: 4; - padding: 60px 15px; - position: absolute !important; - right: 0; - height: 100%; - } - - .general-footer > * { - position: fixed; - width: calc(25% - 30px); - max-width: 270px; - } - - .general-footer ul.menu { - position: fixed; - width: 100%; - bottom: 0; } .general-footer--card { @@ -7543,83 +7517,20 @@ button.paragraphs-dropdown-action { margin: auto; } -@media (min-width: 768px) { - .general-header { - position: fixed; - z-index: 5; - right: auto; - bottom: auto; - left: 0; - top: 0; - width: 33%; - background: #26252B; - float: left; - height: 100vh; - padding: 90px 15px 130px; - overflow: auto; - } - - .new-item { - position: relative; - right: auto; - bottom: auto; - width: 100%; - text-align: left; - } - - .new-item .create-new { - display: block; - background: white; - background-size: auto; - border: none; - height: auto; - width: 100%; - font-size: 1.6rem; - line-height: 1.8; - padding: 0.5rem 0.8rem; - border-radius: 0.5rem; - border: solid 3px #00c9ff; - color: #05111E; - text-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; - -webkit-transition: background-color 0.2s; - transition: background-color 0.2s; - } - - .new-item .create-new svg { - margin-right: 1.5rem; - } - - .new-item .create-new:hover { - -webkit-box-shadow: none; - box-shadow: none; - background: #00c9ff; - -webkit-transition: background-color 0.2s; - transition: background-color 0.2s; - color: #05111E; - } - - .new-item .create-new.active { - background: rgba(255, 255, 255, 0.1); - border-bottom: none; - } +.general-header { + width: 100%; + background-color: #662D91; + background-image: -webkit-gradient(linear, left top, left bottom, color-stop(50%, #1a3773), to(#6f559f)); + background-image: linear-gradient(to bottom, #1a3773 50%, #6f559f); + position: fixed; + top: 0; + z-index: 100; + height: 60px; + padding: 20px; } -@media (min-width: 992px) { - .general-header { - position: fixed; - right: auto; - bottom: auto; - left: auto; - top: auto; - width: 25%; - max-width: 300px; - background: #26252B; - float: left; - height: 100vh; - padding: 90px 15px 15px; - } +.block-system-branding-block { + float: left; } .nav--tabs::-webkit-scrollbar { @@ -7705,10 +7616,6 @@ button.paragraphs-dropdown-action { cursor: default; } -.inpage-nav .nav--tabs.secondary { - margin-left: 1.5rem; -} - .background--talk .inpage-nav { border-bottom: none; } @@ -7990,7 +7897,6 @@ a.logo__link span { width: auto; height: auto; max-height: none; - padding-top: 15px; } .navigation-menu__list { @@ -8659,11 +8565,6 @@ header.profile { padding-right: 0px; } -header.profile ~ .inpage-nav { - margin-left: -15px; - margin-right: -15px; -} - header.profile ~ .newsfeed { margin-left: -15px; margin-right: -15px; diff --git a/funkywave.info.yml b/funkywave.info.yml index 90feb20..6ebb261 100644 --- a/funkywave.info.yml +++ b/funkywave.info.yml @@ -4,9 +4,10 @@ description: 'Funkywave theme' core: 8.x base theme: classy regions: - logo_area: 'Logo area' header: 'Header' content: 'Content' + sidebar_first: 'Sidebar first' + sidebar_second: 'Sidebar second' footer: 'Footer' libraries: - funkywave/global-css diff --git a/sass/base/_base.scss b/sass/base/_base.scss index 921073b..7d6b161 100644 --- a/sass/base/_base.scss +++ b/sass/base/_base.scss @@ -20,11 +20,12 @@ body { background-color: adjust-lightness($gray-800, -3%); /*background: adjust-lightness($gray-800, -3%) url(../images/body-bckgrd--md.svg) no-repeat center top; background-size: 100% 80px;*/ - background-image: url(../images/body-bckgrd--md.svg); + /*background-image: url(../images/body-bckgrd--md.svg); background-repeat: no-repeat; background-position: 50% top; background-attachment: fixed; background-size: 100% 80px; + */ &.user-not-logged-in { margin-top: 3.5rem; @@ -106,12 +107,6 @@ a:not(.toolbar-item) { } .general-container { - width:100%; - height: 100%; - max-width: 1200px; - margin: auto; - background-color: $white; - overflow: hidden; &--card { height: auto; @@ -139,6 +134,7 @@ a:not(.toolbar-item) { margin-top: -3.5rem; } + .background--talk > main { min-height: auto; float: none; @@ -157,14 +153,7 @@ a:not(.toolbar-item) { } } -main { - display: block; - /* margin-top: -28px; */ - margin-top: -18px; - padding: 0px 15px 75px 15px; - min-height: 100vh; - background-color: #fff; -} + main *:not(img):not(svg)::selection { color: $white; @@ -185,13 +174,6 @@ main *:not(img):not(svg)::selection { } } - main { - margin-top: 0; - margin-left: 33%; - width: 66%; - padding: 100px 15px 0px 15px; - } - .general-container--card { border-bottom-left-radius: 25px; border-bottom-right-radius: 25px; @@ -200,25 +182,15 @@ main *:not(img):not(svg)::selection { } +/* @media (min-width: 992px) { .general-container { box-shadow: 0px 0px 25px rgba($black, 0.4); position: relative; } - main { - /* margin-top: -20px; */ - margin-left: 25%; - width: 50%; - left: auto; - position: relative; - float: left; - } } +*/ + -@media (min-width: 768px) { - .general-container { - background-color: $gray-800; - } -} diff --git a/sass/base/_grid.scss b/sass/base/_grid.scss new file mode 100644 index 0000000..857de4f --- /dev/null +++ b/sass/base/_grid.scss @@ -0,0 +1,61 @@ +.layout-content { + grid-area: content; + background: $white; + padding: 15px; +} + +.layout-sidebar-first { + grid-area: sidebar; +} + +.layout-sidebar-second { + grid-area: sidebar2; +} + +.general-footer { + grid-area: footer; +} + +.layout-sidebar-first, +.layout-sidebar-second { + background: #26252B; + padding: 15px 15px 15px 15px; +} + +.wrapper { + display: grid; + grid-template-columns: 1fr; + margin-top: 60px; + grid-auto-rows: auto; + height: calc(100vh-60px); + width: 100%; + max-width: 1200px; + margin-left: auto; + margin-right: auto; + grid-template-areas: + "content" + "sidebar" + "sidebar2" + "footer"; +} + +@media (min-width: 768px) { + .wrapper { + grid-template-columns: 1fr 2fr; + grid-template-rows: auto; + grid-template-areas: + "sidebar content" + "sidebar2 sidebar2" + "footer footer"; + } +} + +@media (min-width: 992px) { + .wrapper { + grid-template-columns: 1fr 2fr 1fr; + grid-template-rows: auto 50px; + grid-template-areas: + "sidebar content sidebar2" + "footer footer footer"; + } +} diff --git a/sass/components/_account-info.scss b/sass/components/_account-info.scss index fb8d599..da163b5 100644 --- a/sass/components/_account-info.scss +++ b/sass/components/_account-info.scss @@ -9,42 +9,46 @@ right: 0; margin-right: 0.3vw; top: 0; - - + + &.account-info--menu-only { width: 80px; height: 88px; background-image: url(../images/account-info__background--idle.svg); background-position: left top; background-size: 100% 100%; - + .account-info__wrapper { margin-top: 9px; margin-left: 9px; } } - + + &__username { + display: none; + } + &.account-info--notification { width: 93px; height: 85px; background-image: url(../images/account-info__background--notification.svg); background-position: left top; background-size: 100% 100%; - + .account-info__wrapper { margin-top: 11px; margin-left: 27px; } } - + &.account-info--list { // to do } - + &.account-info--notification.account-info--list { // to do } - + a.account-info__wrapper { display: block; text-shadow: none; @@ -55,19 +59,19 @@ margin-left: 27px; padding-bottom: 10px; color: $white; - + &:hover { text-shadow: none; box-shadow: none; } - - img { + + img { height: 100%; width: 100%; max-width: 48px; - border-radius: 90px; + border-radius: 90px; } - + .account-info__trigger-icon { float: right; margin-top: -11px; @@ -76,14 +80,14 @@ position: relative; } } - + &__profile { position: absolute; right: 10px; top: 56px; height: 18px; width: 18px; - + a { text-shadow: none; box-shadow: none; @@ -91,10 +95,10 @@ height: 100%; } } - + .account-info__menu { margin-top: 15px; - + &.account-info__dropdown { display: none; position: absolute; @@ -108,54 +112,54 @@ box-shadow: 0px 3px 3px 2px rgba($black, 0.3); border: solid 1px rgba($white, 0.1); } - + &.account-info__dropdown ul { margin: 0; list-style: none; padding: 5px 15px; - + li { border-bottom: solid 1px rgba($white, 0.5); padding: 6px 0; font-size: 1.6rem; - + &:first-child { padding: 3px 0 6px; } - + &:last-child { border: none; padding: 6px 0 3px; } - + a{ color: $white; text-shadow: none; box-shadow: none; padding: 6px 0; - + &:hover { color: $pink; } } - + svg, i { margin-right: 15px; } } - - + + } - + } - + .account-info__notifications { height: 21px; width: 21px; margin-top: -50px; margin-left: 7px; position: absolute; - + a { display: block; height: 21px; @@ -180,7 +184,8 @@ position: relative !important; //left: 15px !important; z-index: 5000; - + float: right; + a.account-info__wrapper { width: auto; height: auto; @@ -191,7 +196,7 @@ display: flex; align-items: center; padding:0; - + &:hover { text-shadow: none; box-shadow: none; @@ -201,14 +206,14 @@ border-top-right-radius: 0.5rem; border-bottom-right-radius: 0.5rem; color: $pink; - + img { border: 2px solid rgba($pink, 1); box-shadow: 0px 0px 0px 2px rgba(#FFF,0.1); transition: all 0.2s; } } - + img { display: block; width: 100%; @@ -218,37 +223,35 @@ box-shadow: 0px 0px 0px 2px rgba(#FFF,0.75); margin-right: 15px; } - + .account-info__trigger-icon { padding: 0px 5px 0; margin-top: -5px; } - + } - + &.account-info--notification { width: calc(33vw - 30px); height: auto; - max-width: 300px; + max-width: 300px; //left: 15px !important; margin-right: 0; background-image: none; position: relative; } - + &.account-info--menu-only { position: relative; - width: calc(33vw - 30px); - height: auto; - max-height: none; - max-width: 300px; - background-image: none; + height: auto; + max-height: none; + background-image: none; } - + .account-info__menu { border-bottom: solid 1px rgba($white, 0.7); - + &.account-info__dropdown { position: relative; width: auto; @@ -258,7 +261,7 @@ box-shadow: none; border: none; } - + &.account-info__dropdown ul { display: block; padding: 0; @@ -267,30 +270,26 @@ } } - - + + } - - + + } @media (min-width: 992px) { - .account-info.account-info--notification, .account-info.account-info--menu-only { - width: calc(25vw - 30px); - max-width: 270px; - } -} + @media (min-width: 1200px) { .account-info { //position: absolute !important; z-index: 5000; } - + .account-info.account-info--notification { position: relative !important; //transform: none !important; //left: 15px !important; //margin-left: -600px !important; } -} \ No newline at end of file +} diff --git a/sass/components/_footer.scss b/sass/components/_footer.scss index 4c82059..ef36ae3 100644 --- a/sass/components/_footer.scss +++ b/sass/components/_footer.scss @@ -37,38 +37,38 @@ } } +.general-footer { + h2 { + margin: 0; + } + + a { + color: $gray-500; + text-shadow: 0 2px 0 $gray-800, 0 3px 0 $gray-800, 1px 2px 0 $gray-800, -1px 2px 0 $gray-800; + box-shadow: 0 1px 0 0 $gray-400; + transition: all .2s ease; + + &:hover { + color: $pink; + box-shadow: 0 1px 0 0 $pink; + transition: all .2s ease; + } + } +} + @media (min-width: 768px) { .general-footer { - position: fixed !important; - bottom:10px; z-index: 500; - width: 33%; background: $gray-800; ul.menu { padding: 0; - margin: 1.5rem; - margin-top: 3rem; li { display: inline-block; &::after { content: " | "; } - - a { - color: $gray-500; - text-shadow: 0 2px 0 $gray-800, 0 3px 0 $gray-800, 1px 2px 0 $gray-800, -1px 2px 0 $gray-800; - box-shadow: 0 1px 0 0 $gray-400; - transition: all .2s ease; - - &:hover { - color: $darkblue; - box-shadow: 0 1px 0 0 $body__background-color; - transition: all .2s ease; - } - - } } } @@ -80,8 +80,7 @@ ul.menu { padding: 0; - margin: 1.5rem; - margin-top: 3rem; + li { display: inline-block; @@ -111,44 +110,7 @@ @media (min-width: 992px) { .general-footer { - width: 25%; - max-width: 300px; - /* position: relative !important; */ - top: auto !important; - left: auto !important; - /* right: auto !important; */ - bottom: auto; - height: 100vh; - /* float: right; */ background-color: $gray-800; - background-image: url(../images/body-bckgrd--md.svg); - background-repeat: no-repeat; - background-position: 50% top; - background-attachment: fixed; - background-size: 100% 80px; - z-index: 4; - padding: 60px 15px; - /*padding-bottom: 500em; - margin-bottom: -500em; - */ - - position: absolute !important; - right: 0; - height: 100%; - - - > * { - position: fixed; - width: calc(25% - 30px); - max-width: 270px; - - } - - ul.menu { - position: fixed; - width: 100%; - bottom: 0; - } &--card { background-color: transparent; diff --git a/sass/components/_header.scss b/sass/components/_header.scss index a42c66f..5921a3f 100644 --- a/sass/components/_header.scss +++ b/sass/components/_header.scss @@ -62,11 +62,32 @@ } .logo { - width: 100%; - max-width: 515px; - height: auto; - margin: auto; - } + width: 100%; + max-width: 515px; + height: auto; + margin: auto; +} + +.general-header { + width: 100%; + /*background-image: url(../images/body-bckgrd--md.svg); + background-repeat: repeat-x; + background-position: 50% top; + background-attachment: fixed; + background-size: 100% 80px; + */ + background-color: $purple; + background-image: linear-gradient(to bottom, #1a3773 50%, #6f559f); + position: fixed; /* Set the navbar to fixed position */ + top: 0; /* Position the navbar at the top of the page */ + z-index: 100; + height: 60px; + padding: 20px; +} + + + +/* @media (min-width: 768px) { .general-header { @@ -145,3 +166,9 @@ padding: 90px 15px 15px; } } + +*/ + +.block-system-branding-block { + float: left; +} diff --git a/sass/components/_inpage-nav.scss b/sass/components/_inpage-nav.scss index acbbf4d..caa9f28 100644 --- a/sass/components/_inpage-nav.scss +++ b/sass/components/_inpage-nav.scss @@ -64,10 +64,6 @@ } } - .nav--tabs.secondary { - margin-left: 1.5rem; - } - } .background--talk .inpage-nav { diff --git a/sass/components/_navigation.scss b/sass/components/_navigation.scss index 672fb15..04aaab2 100644 --- a/sass/components/_navigation.scss +++ b/sass/components/_navigation.scss @@ -124,7 +124,6 @@ width: auto; height: auto; max-height: none; - padding-top: 15px; &__list { width: auto; diff --git a/sass/components/_profile.scss b/sass/components/_profile.scss index e8d3ace..b7cecdb 100644 --- a/sass/components/_profile.scss +++ b/sass/components/_profile.scss @@ -3,12 +3,6 @@ header.profile { padding-left: 0px; padding-right: 0px; - ~ .inpage-nav { - margin-left: -15px; - margin-right: -15px; - } - - ~ .newsfeed { margin-left: -15px; margin-right: -15px; diff --git a/sass/components/_sidebar.scss b/sass/components/_sidebar.scss new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/sass/components/_sidebar.scss @@ -0,0 +1 @@ + diff --git a/templates/layout/page.html.twig b/templates/layout/page.html.twig index b7b637f..d46436c 100644 --- a/templates/layout/page.html.twig +++ b/templates/layout/page.html.twig @@ -44,34 +44,38 @@ #}
    -
    - {{ page.logo_area }} -
    -
    {{ page.header }} +
    - - - +
    -
    + {# link is in html.html.twig #} + +
    +
    + {{ page.content }} +
    +
    {# /.layout-content #} -
    + {% if page.sidebar_first %} + + {% endif %} - {# link is in html.html.twig #} -
    - {{ page.content }} -
    {# /.layout-content #} + {% if page.sidebar_second %} + + {% endif %} -
    + {% if page.footer %} +
    + {{ page.footer }} +
    + {% endif %} - {% if page.footer %} -
    - {{ page.footer }} -
    - {% endif %} + {# /.layout-container #} diff --git a/templates/layout/x_page.html.twig b/templates/layout/x_page.html.twig new file mode 100644 index 0000000..b7b637f --- /dev/null +++ b/templates/layout/x_page.html.twig @@ -0,0 +1,77 @@ +{# +/** + * @file + * Theme override to display a single page. + * + * The doctype, html, head and body tags are not in this template. Instead they + * can be found in the html.html.twig template in this directory. + * + * Available variables: + * + * General utility variables: + * - base_path: The base URL path of the Drupal installation. Will usually be + * "/" unless you have installed Drupal in a sub-directory. + * - is_front: A flag indicating if the current page is the front page. + * - logged_in: A flag indicating if the user is registered and signed in. + * - is_admin: A flag indicating if the user has permission to access + * administration pages. + * + * Site identity: + * - front_page: The URL of the front page. Use this instead of base_path when + * linking to the front page. This includes the language domain or prefix. + * + * Page content (in order of occurrence in the default page.html.twig): + * - node: Fully loaded node, if there is an automatically-loaded node + * associated with the page and the node ID is the second argument in the + * page's path (e.g. node/12345 and node/12345/revisions, but not + * comment/reply/12345). + * + * Regions: + * - page.header: Items for the header region. + * - page.primary_menu: Items for the primary menu region. + * - page.secondary_menu: Items for the secondary menu region. + * - page.highlighted: Items for the highlighted content region. + * - page.help: Dynamic help text, mostly for admin pages. + * - page.content: The main content of the current page. + * - page.sidebar_first: Items for the first sidebar. + * - page.sidebar_second: Items for the second sidebar. + * - page.footer: Items for the footer region. + * - page.breadcrumb: Items for the breadcrumb region. + * + * @see template_preprocess_page() + * @see html.html.twig + */ +#} +
    + +
    + {{ page.logo_area }} +
    + +
    + {{ page.header }} + + + + + +
    + +
    + + {# link is in html.html.twig #} +
    + {{ page.content }} +
    {# /.layout-content #} + +
    + + {% if page.footer %} +
    + {{ page.footer }} +
    + {% endif %} + +
    {# /.layout-container #} From e47415eb1078820b7a128be2e444f19ef0fec469 Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Fri, 14 Sep 2018 14:42:09 +0200 Subject: [PATCH 165/200] NGF-406 grid adapted for ie --- css/style.css | 111 +++++++++++++++++++++++------ sass/base/_grid.scss | 86 ++++++++++++++++------ sass/base/_mixins.scss | 11 +++ sass/components/_account-info.scss | 2 +- sass/components/_footer.scss | 1 + sass/theme/_mixins.scss | 11 +++ templates/layout/page.html.twig | 13 ++-- 7 files changed, 183 insertions(+), 52 deletions(-) create mode 100644 sass/base/_mixins.scss create mode 100644 sass/theme/_mixins.scss diff --git a/css/style.css b/css/style.css index fe435df..df22f13 100644 --- a/css/style.css +++ b/css/style.css @@ -5495,22 +5495,52 @@ ul.ui-menu .ui-menu-item-wrapper.ui-state-active { } } +.wrapper { + display: -ms-grid; + display: grid; + grid-template-columns: 1fr; + -ms-grid-columns: 1fr; + grid-auto-rows: auto; + height: calc(100vh - 60px); + width: 100%; + max-width: 1200px; + margin: 0 auto; + margin-top: 60px; + grid-template-areas: "content" "sidebar" "sidebar2" "footer"; +} + .layout-content { grid-area: content; + -ms-grid-column: 1; + -ms-grid-column-span: 1; + -ms-grid-row: 1; + -ms-grid-row-span: 1; background: #FFFFFF; - padding: 15px; + padding: 15px 15px 15px 15px; } .layout-sidebar-first { grid-area: sidebar; + -ms-grid-column: 1; + -ms-grid-column-span: 1; + -ms-grid-row: 2; + -ms-grid-row-span: 1; } .layout-sidebar-second { grid-area: sidebar2; + -ms-grid-column: 1; + -ms-grid-column-span: 1; + -ms-grid-row: 3; + -ms-grid-row-span: 1; } .general-footer { grid-area: footer; + -ms-grid-column: 1; + -ms-grid-column-span: 1; + -ms-grid-row: 4; + -ms-grid-row-span: 1; } .layout-sidebar-first, @@ -5519,33 +5549,78 @@ ul.ui-menu .ui-menu-item-wrapper.ui-state-active { padding: 15px 15px 15px 15px; } -.wrapper { - display: grid; - grid-template-columns: 1fr; - margin-top: 60px; - grid-auto-rows: auto; - height: calc(100vh-60px); - width: 100%; - max-width: 1200px; - margin-left: auto; - margin-right: auto; - grid-template-areas: "content" "sidebar" "sidebar2" "footer"; -} - @media (min-width: 768px) { .wrapper { grid-template-columns: 1fr 2fr; + -ms-grid-columns: 1fr 2fr; grid-template-rows: auto; grid-template-areas: "sidebar content" "sidebar2 sidebar2" "footer footer"; } + + .layout-content { + -ms-grid-column: 2; + -ms-grid-column-span: 1; + -ms-grid-row: 1; + -ms-grid-row-span: 1; + } + + .layout-sidebar-first { + -ms-grid-column: 1; + -ms-grid-column-span: 1; + -ms-grid-row: 1; + -ms-grid-row-span: 1; + } + + .layout-sidebar-second { + -ms-grid-column: 1; + -ms-grid-column-span: 2; + -ms-grid-row: 2; + -ms-grid-row-span: 1; + } + + .general-footer { + -ms-grid-column: 1; + -ms-grid-column-span: 2; + -ms-grid-row: 3; + -ms-grid-row-span: 1; + } } @media (min-width: 992px) { .wrapper { grid-template-columns: 1fr 2fr 1fr; + -ms-grid-columns: 1fr 2fr 1fr; grid-template-rows: auto 50px; grid-template-areas: "sidebar content sidebar2" "footer footer footer"; } + + .layout-content { + -ms-grid-column: 2; + -ms-grid-column-span: 1; + -ms-grid-row: 1; + -ms-grid-row-span: 1; + } + + .layout-sidebar-first { + -ms-grid-column: 1; + -ms-grid-column-span: 1; + -ms-grid-row: 1; + -ms-grid-row-span: 1; + } + + .layout-sidebar-second { + -ms-grid-column: 3; + -ms-grid-column-span: 1; + -ms-grid-row: 1; + -ms-grid-row-span: 1; + } + + .general-footer { + -ms-grid-column: 1; + -ms-grid-column-span: 3; + -ms-grid-row: 2; + -ms-grid-row-span: 1; + } } .icon.icon--cog { @@ -6142,13 +6217,6 @@ ul.links.inline li { } } -@media (min-width: 992px) { - .account-info.account-info--notification, .account-info.account-info--menu-only { - width: calc(25vw - 30px); - max-width: 270px; - } -} - @media (min-width: 1200px) { .account-info { z-index: 5000; @@ -7365,6 +7433,7 @@ button.paragraphs-dropdown-action { .general-footer ul.menu { padding: 0; + margin: 0; } .general-footer ul.menu li { diff --git a/sass/base/_grid.scss b/sass/base/_grid.scss index 857de4f..96e7c7b 100644 --- a/sass/base/_grid.scss +++ b/sass/base/_grid.scss @@ -1,19 +1,40 @@ +.wrapper { + @include display-grid; + grid-template-columns: 1fr; + -ms-grid-columns: 1fr; + grid-auto-rows: auto; + height: calc(100vh - 60px); + width: 100%; + max-width: 1200px; + margin: 0 auto; + margin-top: 60px; + grid-template-areas: + "content" + "sidebar" + "sidebar2" + "footer"; +} + .layout-content { grid-area: content; + @include grid-child (1, 2, 1, 2); background: $white; - padding: 15px; + padding: 15px 15px 15px 15px; } .layout-sidebar-first { grid-area: sidebar; + @include grid-child (1, 2, 2, 3); } .layout-sidebar-second { grid-area: sidebar2; + @include grid-child (1, 2, 3, 4); } .general-footer { grid-area: footer; + @include grid-child (1, 2, 4, 5); } .layout-sidebar-first, @@ -22,40 +43,59 @@ padding: 15px 15px 15px 15px; } -.wrapper { - display: grid; - grid-template-columns: 1fr; - margin-top: 60px; - grid-auto-rows: auto; - height: calc(100vh-60px); - width: 100%; - max-width: 1200px; - margin-left: auto; - margin-right: auto; - grid-template-areas: - "content" - "sidebar" - "sidebar2" - "footer"; -} - @media (min-width: 768px) { .wrapper { grid-template-columns: 1fr 2fr; + -ms-grid-columns: 1fr 2fr; grid-template-rows: auto; grid-template-areas: - "sidebar content" - "sidebar2 sidebar2" - "footer footer"; + "sidebar content" + "sidebar2 sidebar2" + "footer footer"; + } + + .layout-content { + @include grid-child (2, 3, 1, 2); + } + + .layout-sidebar-first { + @include grid-child (1, 2, 1, 2); + } + + .layout-sidebar-second { + @include grid-child (1, 3, 2, 3); + } + + .general-footer { + @include grid-child (1, 3, 3, 4); } + } @media (min-width: 992px) { .wrapper { grid-template-columns: 1fr 2fr 1fr; + -ms-grid-columns: 1fr 2fr 1fr; grid-template-rows: auto 50px; grid-template-areas: - "sidebar content sidebar2" - "footer footer footer"; + "sidebar content sidebar2" + "footer footer footer"; + } + + .layout-content { + @include grid-child (2, 3, 1, 2); + } + + .layout-sidebar-first { + @include grid-child (1, 2, 1, 2); } + + .layout-sidebar-second { + @include grid-child (3, 4, 1, 2); + } + + .general-footer { + @include grid-child (1, 4, 2, 3); + } + } diff --git a/sass/base/_mixins.scss b/sass/base/_mixins.scss new file mode 100644 index 0000000..d5c2cac --- /dev/null +++ b/sass/base/_mixins.scss @@ -0,0 +1,11 @@ +@mixin display-grid { + display: -ms-grid; + display: grid; +} + +@mixin grid-child ($col-start, $col-end, $row-start, $row-end) { + -ms-grid-column: $col-start; + -ms-grid-column-span: $col-end - $col-start; + -ms-grid-row: $row-start; + -ms-grid-row-span: $row-end - $row-start; +} diff --git a/sass/components/_account-info.scss b/sass/components/_account-info.scss index da163b5..c4ee807 100644 --- a/sass/components/_account-info.scss +++ b/sass/components/_account-info.scss @@ -277,7 +277,7 @@ } -@media (min-width: 992px) { + @media (min-width: 1200px) { diff --git a/sass/components/_footer.scss b/sass/components/_footer.scss index ef36ae3..be66d41 100644 --- a/sass/components/_footer.scss +++ b/sass/components/_footer.scss @@ -63,6 +63,7 @@ ul.menu { padding: 0; + margin: 0; li { display: inline-block; diff --git a/sass/theme/_mixins.scss b/sass/theme/_mixins.scss new file mode 100644 index 0000000..d5c2cac --- /dev/null +++ b/sass/theme/_mixins.scss @@ -0,0 +1,11 @@ +@mixin display-grid { + display: -ms-grid; + display: grid; +} + +@mixin grid-child ($col-start, $col-end, $row-start, $row-end) { + -ms-grid-column: $col-start; + -ms-grid-column-span: $col-end - $col-start; + -ms-grid-row: $row-start; + -ms-grid-row-span: $row-end - $row-start; +} diff --git a/templates/layout/page.html.twig b/templates/layout/page.html.twig index d46436c..bedf106 100644 --- a/templates/layout/page.html.twig +++ b/templates/layout/page.html.twig @@ -50,10 +50,9 @@
    - {# link is in html.html.twig #} -
    + {# link is in html.html.twig #} {{ page.content }}
    {# /.layout-content #} @@ -70,11 +69,11 @@ {% endif %} - {% if page.footer %} -
    - {{ page.footer }} -
    - {% endif %} + {% if page.footer %} +
    + {{ page.footer }} +
    + {% endif %}
    From ee405b2159e1d131e5cc8683030685afde68cd66 Mon Sep 17 00:00:00 2001 From: Nikolay Lobachev Date: Wed, 19 Sep 2018 14:07:59 +0200 Subject: [PATCH 166/200] Add tabs widget and voting field to the template --- funkywave.libraries.yml | 1 + js/tabs.js | 24 +++++++++++++++++++ .../content/node--ngf-discussion.html.twig | 2 ++ 3 files changed, 27 insertions(+) create mode 100644 js/tabs.js diff --git a/funkywave.libraries.yml b/funkywave.libraries.yml index ed8b735..c01c3d4 100644 --- a/funkywave.libraries.yml +++ b/funkywave.libraries.yml @@ -6,6 +6,7 @@ global-css: global-js: js: js/script.js: {} + js/tabs.js: {} global-fonts: css: theme: diff --git a/js/tabs.js b/js/tabs.js new file mode 100644 index 0000000..f2c77c2 --- /dev/null +++ b/js/tabs.js @@ -0,0 +1,24 @@ +(function ($) { + Drupal.behaviors.tabsBehaviors = { + attach: function (context, settings) { + var active_class = 'active'; + $('.tabs-container').hide(); + var tab_index = $('.tabs-link.' + active_class).attr('tab-index'); + $('#tab-container-' + tab_index).show(); + + $('.tabs-link').each(function () { + $(this).click(function (e) { + var tab_index = $(this).attr('tab-index'); + e.preventDefault(); + + // Make the old tab inactive. + $('.tabs-links').removeClass(active_class); + $(this).addClass(active_class); + + $('.tabs-container').hide(); + $('#tab-container-' + tab_index).show(); + }); + }); + } + }; +})(jQuery); \ No newline at end of file diff --git a/templates/content/node--ngf-discussion.html.twig b/templates/content/node--ngf-discussion.html.twig index a42fda4..ef54506 100644 --- a/templates/content/node--ngf-discussion.html.twig +++ b/templates/content/node--ngf-discussion.html.twig @@ -189,6 +189,8 @@ {# Comments #} {% if view_mode == "full" %} + {{ content.field_ngf_vote }} + {{ content.voters }} {{ content.field_comments }} {% endif %} From 1b26bc8bd52c52f5bef5c437d12be8dbfa4428bf Mon Sep 17 00:00:00 2001 From: Nikolay Lobachev Date: Wed, 19 Sep 2018 17:07:51 +0200 Subject: [PATCH 167/200] Expose flags fields (Follow and Saved content) --- templates/content/node--ngf-discussion.html.twig | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/templates/content/node--ngf-discussion.html.twig b/templates/content/node--ngf-discussion.html.twig index ef54506..40b2162 100644 --- a/templates/content/node--ngf-discussion.html.twig +++ b/templates/content/node--ngf-discussion.html.twig @@ -189,9 +189,11 @@ {# Comments #} {% if view_mode == "full" %} - {{ content.field_ngf_vote }} - {{ content.voters }} - {{ content.field_comments }} + {{ content.field_ngf_vote }} + {{ content.voters }} + {{ content.flag_ngf_follow_content }} + {{ content.flag_ngf_save_content }} + {{ content.field_comments }} {% endif %} From 90425bf0e8469510d72e2d97342297e37062026b Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Tue, 25 Sep 2018 10:50:38 +0200 Subject: [PATCH 168/200] NGF-406 header and navigation changes --- css/style.css | 45 ++++++++++++++++++++---------- sass/base/_grid.scss | 4 +-- sass/components/_account-info.scss | 37 ++++++++++++++++++------ sass/components/_header.scss | 4 +-- sass/components/_navigation.scss | 1 + 5 files changed, 65 insertions(+), 26 deletions(-) diff --git a/css/style.css b/css/style.css index df22f13..44a57fd 100644 --- a/css/style.css +++ b/css/style.css @@ -5501,11 +5501,11 @@ ul.ui-menu .ui-menu-item-wrapper.ui-state-active { grid-template-columns: 1fr; -ms-grid-columns: 1fr; grid-auto-rows: auto; - height: calc(100vh - 60px); + height: calc(100vh - 70px); width: 100%; max-width: 1200px; margin: 0 auto; - margin-top: 60px; + margin-top: 70px; grid-template-areas: "content" "sidebar" "sidebar2" "footer"; } @@ -5944,12 +5944,30 @@ ul.links.inline li { } } +.block-system-branding-block, .block-search { + float: left; +} + +.block-search { + margin-left: 50px; +} + +.block-search .form-search { + width: 250px; + padding: 5px; +} + +.block-search .form-actions { + display: none; +} + +.block-useraccountblock { + float: right; +} + .account-info { background: url("../images/account-info__background--idle.svg") no-repeat left top; background-size: 100% 100%; - width: 23.4vw; - height: 26.5vw; - max-width: 125px; max-height: 115px; position: absolute; right: 0; @@ -5958,7 +5976,6 @@ ul.links.inline li { } .account-info.account-info--menu-only { - width: 80px; height: 88px; background-image: url(../images/account-info__background--idle.svg); background-position: left top; @@ -6122,11 +6139,9 @@ ul.links.inline li { .account-info { position: relative !important; z-index: 5000; - float: right; } .account-info a.account-info__wrapper { - width: auto; height: auto; text-shadow: none; -webkit-box-shadow: none; @@ -6165,7 +6180,7 @@ ul.links.inline li { .account-info a.account-info__wrapper img { display: block; width: 100%; - max-width: 46px; + max-width: 30px; height: auto; border: 2px solid rgba(0, 0, 0, 0); -webkit-box-shadow: 0px 0px 0px 2px rgba(255, 255, 255, 0.75); @@ -6176,6 +6191,7 @@ ul.links.inline li { .account-info a.account-info__wrapper .account-info__trigger-icon { padding: 0px 5px 0; margin-top: -5px; + display: none; } .account-info.account-info--notification { @@ -6199,8 +6215,8 @@ ul.links.inline li { } .account-info .account-info__menu.account-info__dropdown { - position: relative; - width: auto; + position: absolute; + right: 0; margin: 0; background-color: transparent; padding: 15px 0; @@ -7589,12 +7605,12 @@ button.paragraphs-dropdown-action { .general-header { width: 100%; background-color: #662D91; - background-image: -webkit-gradient(linear, left top, left bottom, color-stop(50%, #1a3773), to(#6f559f)); - background-image: linear-gradient(to bottom, #1a3773 50%, #6f559f); + background-image: -webkit-gradient(linear, left top, left bottom, color-stop(50%, #1a3773), to(#492c87)); + background-image: linear-gradient(to bottom, #1a3773 50%, #492c87); position: fixed; top: 0; z-index: 100; - height: 60px; + height: 70px; padding: 20px; } @@ -7966,6 +7982,7 @@ a.logo__link span { width: auto; height: auto; max-height: none; + padding-top: 15px; } .navigation-menu__list { diff --git a/sass/base/_grid.scss b/sass/base/_grid.scss index 96e7c7b..e06863f 100644 --- a/sass/base/_grid.scss +++ b/sass/base/_grid.scss @@ -3,11 +3,11 @@ grid-template-columns: 1fr; -ms-grid-columns: 1fr; grid-auto-rows: auto; - height: calc(100vh - 60px); + height: calc(100vh - 70px); width: 100%; max-width: 1200px; margin: 0 auto; - margin-top: 60px; + margin-top: 70px; grid-template-areas: "content" "sidebar" diff --git a/sass/components/_account-info.scss b/sass/components/_account-info.scss index c4ee807..b49888f 100644 --- a/sass/components/_account-info.scss +++ b/sass/components/_account-info.scss @@ -1,9 +1,30 @@ +.block-system-branding-block, .block-search { + float: left; +} + +.block-search { + margin-left: 50px; + .form-search { + width: 250px; + padding: 5px; + } +} + +.block-search .form-actions { + display: none; +} + +.block-useraccountblock { + float: right; +} + + .account-info { background: $account-info__background no-repeat left top; background-size: 100% 100%; - width: 23.4vw; + /*width: 23.4vw; height: 26.5vw; - max-width: 125px; + max-width: 125px;*/ max-height: 115px; position: absolute; right: 0; @@ -12,7 +33,6 @@ &.account-info--menu-only { - width: 80px; height: 88px; background-image: url(../images/account-info__background--idle.svg); background-position: left top; @@ -184,10 +204,9 @@ position: relative !important; //left: 15px !important; z-index: 5000; - float: right; + /* float: right; */ a.account-info__wrapper { - width: auto; height: auto; text-shadow: none; box-shadow: none; @@ -217,7 +236,7 @@ img { display: block; width: 100%; - max-width: 46px; + max-width: 30px; height: auto; border: 2px solid rgba($black, 0); box-shadow: 0px 0px 0px 2px rgba(#FFF,0.75); @@ -227,6 +246,7 @@ .account-info__trigger-icon { padding: 0px 5px 0; margin-top: -5px; + display: none; } } @@ -246,6 +266,7 @@ height: auto; max-height: none; background-image: none; + /* width: 300px; */ } .account-info__menu { @@ -253,8 +274,8 @@ border-bottom: solid 1px rgba($white, 0.7); &.account-info__dropdown { - position: relative; - width: auto; + position: absolute; + right: 0; margin: 0; background-color: transparent; padding: 15px 0; diff --git a/sass/components/_header.scss b/sass/components/_header.scss index 5921a3f..f3b9d3a 100644 --- a/sass/components/_header.scss +++ b/sass/components/_header.scss @@ -77,11 +77,11 @@ background-size: 100% 80px; */ background-color: $purple; - background-image: linear-gradient(to bottom, #1a3773 50%, #6f559f); + background-image: linear-gradient(to bottom, #1a3773 50%, #492c87); position: fixed; /* Set the navbar to fixed position */ top: 0; /* Position the navbar at the top of the page */ z-index: 100; - height: 60px; + height: 70px; padding: 20px; } diff --git a/sass/components/_navigation.scss b/sass/components/_navigation.scss index 04aaab2..672fb15 100644 --- a/sass/components/_navigation.scss +++ b/sass/components/_navigation.scss @@ -124,6 +124,7 @@ width: auto; height: auto; max-height: none; + padding-top: 15px; &__list { width: auto; From d7610a04e0060a8ced6f2f297e6c9b8db4c8a4ab Mon Sep 17 00:00:00 2001 From: Nikolay Lobachev Date: Wed, 26 Sep 2018 15:02:32 +0200 Subject: [PATCH 169/200] Fix users links --- templates/content/group--ngf-discussion-group.html.twig | 2 +- templates/content/node--ngf-discussion.html.twig | 3 ++- templates/user/user--compact.html.twig | 1 - 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/templates/content/group--ngf-discussion-group.html.twig b/templates/content/group--ngf-discussion-group.html.twig index 6325c50..5fed466 100644 --- a/templates/content/group--ngf-discussion-group.html.twig +++ b/templates/content/group--ngf-discussion-group.html.twig @@ -58,7 +58,7 @@ with { title: group.label(), image_url: file_url(group.field_media_image.entity.uri.value|image_style('thumbnail')), - url: path('entity.user.canonical', {'user': user.id}), + url: path('entity.user.canonical', {'user': group.uid.entity.id}), logged_in: logged_in, context_text: ngf_context_text, subpic: ngf_sub_picture, diff --git a/templates/content/node--ngf-discussion.html.twig b/templates/content/node--ngf-discussion.html.twig index 40b2162..d582f78 100644 --- a/templates/content/node--ngf-discussion.html.twig +++ b/templates/content/node--ngf-discussion.html.twig @@ -108,7 +108,7 @@ with { image_url: image_url, title: node.owner.full_name.value, - url: path('entity.user.canonical', {'user': user.id}), + url: path('entity.user.canonical', {'user': node.uid.entity.id}), logged_in: logged_in, context_text: ngf_context_text, subpic: ngf_sub_picture, @@ -193,6 +193,7 @@ {{ content.voters }} {{ content.flag_ngf_follow_content }} {{ content.flag_ngf_save_content }} + {{ content.flag_ngf_report_content }} {{ content.field_comments }} {% endif %} diff --git a/templates/user/user--compact.html.twig b/templates/user/user--compact.html.twig index 20b478e..51ee626 100644 --- a/templates/user/user--compact.html.twig +++ b/templates/user/user--compact.html.twig @@ -17,7 +17,6 @@ */ #} {# block profile #} - {% block profileinfo %} {% include "@patterns/profile-shortinfo/pattern-profile-shortinfo.html.twig" with { From ed30127c6fb7faba86a3794be96dcdf87665061c Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Thu, 27 Sep 2018 14:03:46 +0200 Subject: [PATCH 170/200] NGF-416 changed the css for the navigation tabs. no more negative margin --- css/style.css | 29 ++++++----------------------- package.json | 1 + sass/components/_inpage-nav.scss | 30 +++++++----------------------- 3 files changed, 14 insertions(+), 46 deletions(-) diff --git a/css/style.css b/css/style.css index 405dd7f..f7ea58b 100644 --- a/css/style.css +++ b/css/style.css @@ -7656,7 +7656,7 @@ button.paragraphs-dropdown-action { .inpage-nav .nav--tabs li { list-style: none; display: block; - padding: 2px 15px 2px 0; + padding: 0 15px 0 0; } .inpage-nav .nav--tabs li a { @@ -7666,24 +7666,12 @@ button.paragraphs-dropdown-action { box-shadow: none; box-shadow: none; text-shadow: none; + padding: 10px 0 5px 0; + border-bottom: 5px solid #FFFFFF; } -.inpage-nav .nav--tabs li a:after { - content: ""; - display: block; - height: 0px; - background-color: #FFFFFF; - margin-top: 8px; - padding: 0 9px; - margin-bottom: -4px; - -webkit-transition: all 0.2s; - transition: all 0.2s; -} - -.inpage-nav .nav--tabs li a:hover::after { - margin-top: 2px; - height: 5px; - background-color: #a6a7ab; +.inpage-nav .nav--tabs li a:hover { + border-bottom: 5px solid #a6a7ab; -webkit-transition: all 0.2s; transition: all 0.2s; } @@ -7691,12 +7679,7 @@ button.paragraphs-dropdown-action { .inpage-nav .nav--tabs li a.is-active { color: #515155; font-weight: 600; -} - -.inpage-nav .nav--tabs li a.is-active::after { - margin-top: 2px; - height: 5px; - background-color: #662D91; + border-bottom: 5px solid #662D91; -webkit-transition: all 0.2s; transition: all 0.2s; } diff --git a/package.json b/package.json index 24ac4b3..152ee7f 100644 --- a/package.json +++ b/package.json @@ -29,6 +29,7 @@ "sass": "^1.9.0" }, "devDependencies": { + "gulp": "^3.9.1", "gulp-livereload": "^3.8.1", "gulp-sass": "^3.1.0", "gulp-strip-css-comments": "^2.0.0", diff --git a/sass/components/_inpage-nav.scss b/sass/components/_inpage-nav.scss index acbbf4d..08a718e 100644 --- a/sass/components/_inpage-nav.scss +++ b/sass/components/_inpage-nav.scss @@ -18,43 +18,27 @@ li { list-style: none; display: block; - padding: 2px 15px 2px 0; + padding: 0 15px 0 0; - a{ + a { display: block; white-space: nowrap; box-shadow: none; box-shadow: none; text-shadow: none; + padding: 10px 0 5px 0; + border-bottom: 5px solid $white; } - a:after{ - content: ""; - display: block; - height: 0px; - background-color: $white; - margin-top: 8px; - padding: 0 9px; - margin-bottom: -4px; - transition: all 0.2s; - } - - a:hover::after { - margin-top: 2px; - height: 5px; - background-color: #a6a7ab; + a:hover { + border-bottom: 5px solid #a6a7ab; transition: all 0.2s; } a.is-active { color: $text-color; font-weight: 600; - } - - a.is-active::after { - margin-top: 2px; - height: 5px; - background-color: $purple; + border-bottom: 5px solid $purple; transition: all 0.2s; } From 6d5554d6af5b6961ed071efb987072aea87e1f05 Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Thu, 27 Sep 2018 15:13:37 +0200 Subject: [PATCH 171/200] removed box shadow social media icons --- css/style.css | 5 ++++ sass/components/_social-share.scss | 42 +++++++++++++++++------------- 2 files changed, 29 insertions(+), 18 deletions(-) diff --git a/css/style.css b/css/style.css index f7ea58b..92716bf 100644 --- a/css/style.css +++ b/css/style.css @@ -8932,6 +8932,11 @@ header.profile .profile__actions a.profile__actions--add2list:before { font-size: 1.6rem; } +.social-auth.auth-link { + -webkit-box-shadow: none; + box-shadow: none; +} + a.share { background: #515155 url(../images/share-icons.svg) no-repeat; display: inline-block; diff --git a/sass/components/_social-share.scss b/sass/components/_social-share.scss index 05417c2..55cc53d 100644 --- a/sass/components/_social-share.scss +++ b/sass/components/_social-share.scss @@ -1,3 +1,9 @@ +.social-auth.auth-link { + box-shadow: none; +} + + + a.share { background: $gray-700 url(../images/share-icons.svg) no-repeat; display: inline-block; @@ -6,27 +12,27 @@ a.share { border-radius: 4rem; text-shadow: none; box-shadow: none; - - + + &--facebook { - background-position: 0 0; + background-position: 0 0; } &--twitter { - background-position: -8rem 0; + background-position: -8rem 0; } &--linkedin { - background-position: -4rem 0; + background-position: -4rem 0; } &--googleplus { - background-position: -12rem 0; + background-position: -12rem 0; } &--email { - background-position: -16rem 0; + background-position: -16rem 0; } } @media (min-width: 768px) { - + a.share { width: auto; padding-left: 0rem; @@ -37,12 +43,12 @@ a.share { height: auto; line-height: 2rem; display: flex; - + span { display: inline-block; line-height: 2.5rem; } - + &:before { content: ""; background: $gray-700 url(../images/share-icons.svg) no-repeat; @@ -56,26 +62,26 @@ a.share { margin-top: 2px; flex-shrink: 0; } - + &:hover::before { background-color: $purple; trnasition: background-color 0.2s; } - + &--facebook:before { - background-position: 0 0; + background-position: 0 0; } &--twitter:before { - background-position: -4rem 0; + background-position: -4rem 0; } &--linkedin:before { - background-position: -2rem 0; + background-position: -2rem 0; } &--googleplus:before { - background-position: -6rem 0; + background-position: -6rem 0; } &--email:before { - background-position: -8rem 0; + background-position: -8rem 0; } } -} \ No newline at end of file +} From 1e3a9ad67db58eca22cb53d5787b02ed7e885397 Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Fri, 28 Sep 2018 10:23:47 +0200 Subject: [PATCH 172/200] NGF-428 fix for scrollbar and sign in and register button --- css/style.css | 9 ++++++--- sass/components/_cta.scss | 3 ++- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/css/style.css b/css/style.css index 92716bf..9f771fe 100644 --- a/css/style.css +++ b/css/style.css @@ -7189,7 +7189,8 @@ button.paragraphs-dropdown-action { } @media (min-width: 768px) { - .block-useraccountblock { + .block-useraccountblock, + .user-not-logged-in .block-useraccountblock { position: relative; margin-bottom: 15px; text-align: left; @@ -7199,7 +7200,8 @@ button.paragraphs-dropdown-action { background: initial; } - .block-useraccountblock > a { + .block-useraccountblock > a, + .user-not-logged-in .block-useraccountblock > a { color: #FFFFFF; padding: 0.5rem 1rem; font-weight: normal; @@ -7208,7 +7210,8 @@ button.paragraphs-dropdown-action { margin: 0 10px 0 0; } - .block-useraccountblock > a:hover { + .block-useraccountblock > a:hover, + .user-not-logged-in .block-useraccountblock > a:hover { color: #ff397f; border: 1px solid #ff397f; } diff --git a/sass/components/_cta.scss b/sass/components/_cta.scss index 9985ab9..372bac9 100644 --- a/sass/components/_cta.scss +++ b/sass/components/_cta.scss @@ -81,7 +81,8 @@ @media (min-width: 768px) { - .block-useraccountblock { + .block-useraccountblock, + .user-not-logged-in .block-useraccountblock { position: relative; margin-bottom: 15px; text-align: left; From feac38398648a394ff5d207d60950eab56fec82b Mon Sep 17 00:00:00 2001 From: Nikolay Lobachev Date: Fri, 28 Sep 2018 10:26:18 +0200 Subject: [PATCH 173/200] Remove temporary contact link for the group --- .../group/group--ngf-discussion-group--ngf-header.html.twig | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/templates/group/group--ngf-discussion-group--ngf-header.html.twig b/templates/group/group--ngf-discussion-group--ngf-header.html.twig index 013a0d3..cf6b862 100644 --- a/templates/group/group--ngf-discussion-group--ngf-header.html.twig +++ b/templates/group/group--ngf-discussion-group--ngf-header.html.twig @@ -70,11 +70,11 @@ only %} {# profile actions #} - + {#action_contact: 'todo contact',#} + {#action_contact_uri: 'todo',#} {% include '@patterns/profile_actions/pattern-profile-actions.html.twig' with { - action_contact: 'todo contact', - action_contact_uri: 'todo', + action_join: content.join_follow['#items']['group-join']['#title'], action_join_uri: content.join_follow['#items']['group-join']['#url'], action_leave: content.join_follow['#items']['group-leave']['#title'], From 1873cb3684235a75101f8a72149c70f2fd23570e Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Fri, 28 Sep 2018 10:29:45 +0200 Subject: [PATCH 174/200] NGF-428 fix for scrollbar and sign in and register button --- css/style.css | 7 ++----- sass/components/_cta.scss | 4 ---- 2 files changed, 2 insertions(+), 9 deletions(-) diff --git a/css/style.css b/css/style.css index 9f771fe..fcf26de 100644 --- a/css/style.css +++ b/css/style.css @@ -7189,7 +7189,6 @@ button.paragraphs-dropdown-action { } @media (min-width: 768px) { - .block-useraccountblock, .user-not-logged-in .block-useraccountblock { position: relative; margin-bottom: 15px; @@ -7200,8 +7199,7 @@ button.paragraphs-dropdown-action { background: initial; } - .block-useraccountblock > a, - .user-not-logged-in .block-useraccountblock > a { + .user-not-logged-in .block-useraccountblock > a { color: #FFFFFF; padding: 0.5rem 1rem; font-weight: normal; @@ -7210,8 +7208,7 @@ button.paragraphs-dropdown-action { margin: 0 10px 0 0; } - .block-useraccountblock > a:hover, - .user-not-logged-in .block-useraccountblock > a:hover { + .user-not-logged-in .block-useraccountblock > a:hover { color: #ff397f; border: 1px solid #ff397f; } diff --git a/sass/components/_cta.scss b/sass/components/_cta.scss index 372bac9..45afec2 100644 --- a/sass/components/_cta.scss +++ b/sass/components/_cta.scss @@ -81,7 +81,6 @@ @media (min-width: 768px) { - .block-useraccountblock, .user-not-logged-in .block-useraccountblock { position: relative; margin-bottom: 15px; @@ -111,9 +110,6 @@ top: auto; } - .cta--join, .cta--signin{ - - } .cta--sidebar { position: relative; From 76045cc60754125b276c1902b6102543e34a4a3a Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Fri, 28 Sep 2018 12:41:02 +0200 Subject: [PATCH 175/200] reduce space in profile header --- css/style.css | 8 +++++--- sass/components/_profile.scss | 11 ++++++----- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/css/style.css b/css/style.css index fcf26de..0dd2058 100644 --- a/css/style.css +++ b/css/style.css @@ -8645,6 +8645,7 @@ header.profile { header.profile ~ .inpage-nav { margin-left: -15px; margin-right: -15px; + margin-bottom: 0; } header.profile ~ .newsfeed { @@ -8685,6 +8686,7 @@ header.profile a.profile__pic__link:hover .profile__pic { } header.profile h2 { + margin: 3rem 0 0 0; color: #26252B; } @@ -8709,7 +8711,7 @@ header.profile h2 + h4 a { header.profile .profile__link--about { display: inline-block; - margin: 0 0 3.6rem 0; + margin: 0 0 0 0; font-size: 1.4rem; line-height: 1.2; -webkit-transition: margin .2s; @@ -8778,7 +8780,7 @@ header.profile .profile__link--back:hover i, header.profile .profile__link--back header.profile .profile__meta, header.profile .profile__location { padding: 0; - margin: 0; + margin: 1.5rem 0 0 0; } header.profile .profile__intro { @@ -8819,7 +8821,7 @@ header.profile .profile__meta li::after, header.profile .profile__meta li::befor header.profile .profile__networks, header.profile .profile__actions { margin: 0; - padding: 2rem 0; + padding: 1.5rem 0; border-bottom: solid 1px #dfe0e5; } diff --git a/sass/components/_profile.scss b/sass/components/_profile.scss index e8d3ace..8e9f0a9 100644 --- a/sass/components/_profile.scss +++ b/sass/components/_profile.scss @@ -6,6 +6,7 @@ header.profile { ~ .inpage-nav { margin-left: -15px; margin-right: -15px; + margin-bottom: 0; } @@ -46,7 +47,7 @@ header.profile { } h2 { - /* margin-bottom: 0rem; */ + margin: 3rem 0 0 0; color: $gray-800; a { @@ -70,7 +71,7 @@ header.profile { .profile__link--about{ display: inline-block; - margin: 0 0 3.6rem 0; + margin: 0 0 0 0; font-size: 1.4rem; line-height: 1.2; transition: margin .2s; @@ -127,8 +128,8 @@ header.profile { } .profile__meta, .profile__location { - padding:0; - margin:0; + padding: 0; + margin: 1.5rem 0 0 0; } .profile__intro { @@ -171,7 +172,7 @@ header.profile { .profile__networks, .profile__actions{ @extend .list--flex-space-evenly; margin: 0; - padding: 2rem 0; + padding: 1.5rem 0; border-bottom: solid 1px $gray-300; } From 8b09dbafbaa2e11c4b310d009932a2054cd372f5 Mon Sep 17 00:00:00 2001 From: Nikolay Lobachev Date: Fri, 28 Sep 2018 17:18:39 +0200 Subject: [PATCH 176/200] Add custom flag template --- templates/flag.html.twig | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 templates/flag.html.twig diff --git a/templates/flag.html.twig b/templates/flag.html.twig new file mode 100644 index 0000000..25c2d1b --- /dev/null +++ b/templates/flag.html.twig @@ -0,0 +1,40 @@ +{# +/** + * @file + * Default theme implementation for flag links. + * + * Available variables: + * - attributes: HTML attributes for the link element. + * - title: The flag link title. + * - action: 'flag' or 'unflag' + * - flag: The flag object. + * - flaggable: The flaggable entity. + */ +#} +{% spaceless %} + {# Attach the flag CSS library.#} + {{ attach_library('flag/flag.link') }} + + {# Depending on the flag action, set the appropriate action class. #} + {% if action == 'unflag' %} + {% set action_class = 'action-unflag' %} + {% else %} + {% set action_class = 'action-flag' %} + {% endif %} + + {# Set the remaining Flag CSS classes. #} + {% + set classes = [ + 'flag', + 'flag-' ~ flag.id()|clean_class, + 'js-flag-' ~ flag.id()|clean_class ~ '-' ~ flaggable.id(), + action_class + ] + %} + + {# Set nofollow to prevent search bots from crawling anonymous flag links #} + {% set attributes = attributes.setAttribute('rel', 'nofollow') %} + {% set attributes = attributes.setAttribute('class', 'profile__actions--follow') %} + +
    {{ title }}
    +{% endspaceless %} From 478348a3cb2c203dc76d0428b0e2219b62603cc9 Mon Sep 17 00:00:00 2001 From: Nikolay Lobachev Date: Fri, 28 Sep 2018 17:23:31 +0200 Subject: [PATCH 177/200] Add unfollow class --- templates/flag.html.twig | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/templates/flag.html.twig b/templates/flag.html.twig index 25c2d1b..90dc3aa 100644 --- a/templates/flag.html.twig +++ b/templates/flag.html.twig @@ -34,7 +34,11 @@ {# Set nofollow to prevent search bots from crawling anonymous flag links #} {% set attributes = attributes.setAttribute('rel', 'nofollow') %} - {% set attributes = attributes.setAttribute('class', 'profile__actions--follow') %} + {% if action == 'unflag' %} + {% set attributes = attributes.setAttribute('class', 'profile__actions--unfollow') %} + {% else %} + {% set attributes = attributes.setAttribute('class', 'profile__actions--follow') %} + {% endif %}
    {{ title }}
    {% endspaceless %} From 5d1e11674801d3d43bd497bc46b5bd90c86fdd52 Mon Sep 17 00:00:00 2001 From: Nikolay Lobachev Date: Tue, 2 Oct 2018 12:04:47 +0200 Subject: [PATCH 178/200] Add QR code --- templates/user/user--ngf-profile.html.twig | 1 + 1 file changed, 1 insertion(+) diff --git a/templates/user/user--ngf-profile.html.twig b/templates/user/user--ngf-profile.html.twig index 3eab20a..9b823c2 100644 --- a/templates/user/user--ngf-profile.html.twig +++ b/templates/user/user--ngf-profile.html.twig @@ -29,6 +29,7 @@ } only %} + {{ content.qr_code }} {{ content.action_panel }} {{ content.followers_panel }} From 045cea4f38c9cdb89e91175bc2c13a5ab4393044 Mon Sep 17 00:00:00 2001 From: Nikolay Lobachev Date: Wed, 3 Oct 2018 10:35:17 +0200 Subject: [PATCH 179/200] Add wrapper for QR code --- templates/user/user--ngf-profile.html.twig | 2 ++ 1 file changed, 2 insertions(+) diff --git a/templates/user/user--ngf-profile.html.twig b/templates/user/user--ngf-profile.html.twig index 9b823c2..df17ac3 100644 --- a/templates/user/user--ngf-profile.html.twig +++ b/templates/user/user--ngf-profile.html.twig @@ -29,7 +29,9 @@ } only %} +
    {{ content.qr_code }} +
    {{ content.action_panel }} {{ content.followers_panel }} From db953bfca25f38756b394eaf4bf358cb88aa529d Mon Sep 17 00:00:00 2001 From: Nikolay Lobachev Date: Wed, 3 Oct 2018 17:46:55 +0200 Subject: [PATCH 180/200] Fix addition of the classes --- templates/flag.html.twig | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/templates/flag.html.twig b/templates/flag.html.twig index 90dc3aa..ee66b4c 100644 --- a/templates/flag.html.twig +++ b/templates/flag.html.twig @@ -34,11 +34,11 @@ {# Set nofollow to prevent search bots from crawling anonymous flag links #} {% set attributes = attributes.setAttribute('rel', 'nofollow') %} + {% if action == 'unflag' %} - {% set attributes = attributes.setAttribute('class', 'profile__actions--unfollow') %} + {% set attributes = attributes.addClass('profile__actions--unfollow') %} {% else %} - {% set attributes = attributes.setAttribute('class', 'profile__actions--follow') %} + {% set attributes = attributes.addClass('profile__actions--follow') %} {% endif %} -
    {{ title }}
    {% endspaceless %} From fc78d2fb5b9beea900982725881fcf5953ea9153 Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Wed, 3 Oct 2018 17:49:22 +0200 Subject: [PATCH 181/200] NGF-413 theming vote-up-down based on thumbs plugin twig file --- css/override.css | 295 ------------------ css/style.css | 165 +++++----- funkywave.info.yml | 2 + sass/components/_social-share.scss | 87 ------ sass/components/_voting.scss | 89 ++++++ .../content/node--ngf-discussion.html.twig | 15 +- templates/widgets/vud-widget.html.twig | 31 ++ 7 files changed, 223 insertions(+), 461 deletions(-) create mode 100644 sass/components/_voting.scss create mode 100644 templates/widgets/vud-widget.html.twig diff --git a/css/override.css b/css/override.css index 8e5f843..8b13789 100644 --- a/css/override.css +++ b/css/override.css @@ -1,296 +1 @@ -/** - * @file - * Seven styles for Tables. - */ -table { - width: 100%; - margin: 0 0 10px; -} - -/* custom */ - -table h4 { - margin: 0; - padding: 0; -} - -button.link { - background: transparent; - border: 0; - cursor: pointer; - margin: 0; - margin-bottom: 0px; - padding: 0; - font-size: 1em; -} - -caption { - text-align: left; /* LTR */ -} -[dir="rtl"] caption { - text-align: right; -} -th { - text-align: left; /* LTR */ - padding: 10px 12px; -} -[dir="rtl"] th { - text-align: right; -} -thead th { - background: #26252B; - border: solid #bfbfba; - border-width: 1px 0; - color: #ffffff; - text-transform: uppercase; -} - -fieldset thead th { - background: none; - color: #333333; -} - -tr { - border-bottom: 1px solid #e6e4df; - padding: 0.1em 0.6em; -} -thead > tr { - border-bottom: 1px solid #000; -} -tbody tr:hover, -tbody tr:focus { - background: #f7fcff; -} -/* See colors.css */ -tbody tr.color-warning:hover, -tbody tr.color-warning:focus { - background: #fdf8ed; -} -tbody tr.color-error:hover, -tbody tr.color-error:focus { - background: #fcf4f2; -} - -table.no-highlight tr.selected td { - background: transparent; -} - -td, -th { - vertical-align: middle; -} -td { - padding: 10px 12px; - text-align: left; /* LTR */ -} -[dir="rtl"] td { - text-align: right; -} -th > a { - position: relative; - display: block; -} - -/* 1. Must match negative bottom padding of the parent */ -th > a:after { - content: ''; - display: block; - position: absolute; - top: 0; - bottom: -10px; /* 1. */ - left: 0; - right: 0; - border-bottom: 2px solid transparent; - -webkit-transition: all 0.1s; - transition: all 0.1s; -} -th.is-active > a { - color: #004875; -} -th.is-active img { - position: absolute; - right: 0; /* LTR */ - top: 50%; -} -[dir="rtl"] th.is-active img { - right: auto; - left: 0; -} -th.is-active > a:after { - border-bottom-color: #004875; -} -th > a:hover, -th > a:focus, -th.is-active > a:hover, -th.is-active > a:focus { - color: #008ee6; - text-decoration: none; -} -th > a:hover:after, -th > a:focus:after, -th.is-active > a:hover:after, -th.is-active > a:focus:after { - border-bottom-color: #008ee6; -} -td .item-list ul { - margin: 0; -} -/* This is required to win over specificity of [dir="rtl"] .item-list ul */ -[dir="rtl"] td .item-list ul { - margin: 0; -} -td.is-active { - background: none; -} - -/* Force browsers to calculate the width of a 'select all' element. */ -th.select-all { - width: 1px; -} - -/** - * Captions. - */ -.caption { - margin-bottom: 1.2em; -} - -/** - * Responsive tables. - */ -@media screen and (max-width: 37.5em) { /* 600px */ - th.priority-low, - td.priority-low, - th.priority-medium, - td.priority-medium { - display: none; - } -} - -@media screen and (max-width: 60em) { /* 920px */ - th.priority-low, - td.priority-low { - display: none; - } -} - -/* forms */ - -fieldset:not(.fieldgroup) { - display: table-cell; -} -fieldset:not(.fieldgroup) { - border-radius: 2px; - margin: 1em 0; - padding: 35px 0 0 0; - min-width: 0; - position: relative; -} - -fieldset:not(.fieldgroup) > legend { - font-size: 1em; - font-weight: bold; - position: absolute; - top: 0; - left: 0; - width: 100%; - padding: 0; -} - -legend { - border: 0; - padding: 0; -} - -fieldset > legend { - padding-inline-start: 2px; - padding-inline-end: 2px; - inline-size: -moz-fit-content; -} - -legend { - display: block; -} - -.fieldset-legend { - display: inline-block; -} - -/* required form field theming */ - -.form-required::after { - background-size: 7px 7px; - width: 7px; - height: 7px; -} -.form-required::after { - content: ''; - vertical-align: super; - display: inline-block; - background-image: url(../images/required.svg); - background-repeat: no-repeat; - background-size: 6px 6px; - width: 6px; - height: 6px; - margin: 0 0.3em; -} - -.description { - color: #777777; - border-left: 5px solid #ccc; - padding-left: 20px; - font-size: 14px; - margin: 20px 0 20px 0; -} - -a.tabledrag-handle { - box-shadow: none; - padding: 0 5px 0 5px; -} - -a.tabledrag-handle .handle { - background-position: 0; - width: 16px; - height: 16px; - margin: 0; - -} - -h4.label { - display: inline; -} - -.field-multiple-table .form-wrapper, -.field--name-field-ngf-cover-image .js-form-item.form-wrapper .form-wrapper, -.details-wrapper .form-wrapper, -details.form-wrapper { - padding: 0; -} - -/* border to fix */ - -fieldset { - border: none; -} - - -.field-multiple-table .paragraphs-subform { - padding: 0 15px 0 15px; -} - -.field-multiple-table fieldset.form-wrapper { - padding-top: 50px; -} - -.container-inline.js-form-wrapper { - padding-bottom: 0; -} - -tr.draggable.even { - background: #f5f5f2; -} - -.ui-widget.ui-widget-content.ui-autocomplete { - border: 1px solid #cccccc; -} diff --git a/css/style.css b/css/style.css index 0dd2058..5308412 100644 --- a/css/style.css +++ b/css/style.css @@ -7,6 +7,10 @@ .new-item .create-new:before, .ui-button .ui-icon:before, .navigation-menu__list li .create-new:before, +.vud-widget-thumbs a.up.active:before, +.vud-widget-thumbs a.up.inactive:before, +.vud-widget-thumbs a.down.active:before, +.vud-widget-thumbs a.down.inactive:before, .far, .fal, .fab { @@ -117,6 +121,10 @@ .new-item .fa-pull-left.create-new:before, .ui-button .fa-pull-left.ui-icon:before, .navigation-menu__list li .fa-pull-left.create-new:before, +.vud-widget-thumbs a.fa-pull-left.up.active:before, +.vud-widget-thumbs a.fa-pull-left.up.inactive:before, +.vud-widget-thumbs a.fa-pull-left.down.active:before, +.vud-widget-thumbs a.fa-pull-left.down.inactive:before, .far.fa-pull-left, .fal.fa-pull-left, .fab.fa-pull-left { @@ -130,6 +138,10 @@ .new-item .fa-pull-right.create-new:before, .ui-button .fa-pull-right.ui-icon:before, .navigation-menu__list li .fa-pull-right.create-new:before, +.vud-widget-thumbs a.fa-pull-right.up.active:before, +.vud-widget-thumbs a.fa-pull-right.up.inactive:before, +.vud-widget-thumbs a.fa-pull-right.down.active:before, +.vud-widget-thumbs a.fa-pull-right.down.inactive:before, .far.fa-pull-right, .fal.fa-pull-right, .fab.fa-pull-right { @@ -4858,7 +4870,11 @@ .field--type-file .file:before, .new-item .create-new:before, .ui-button .ui-icon:before, -.navigation-menu__list li .create-new:before { +.navigation-menu__list li .create-new:before, +.vud-widget-thumbs a.up.active:before, +.vud-widget-thumbs a.up.inactive:before, +.vud-widget-thumbs a.down.active:before, +.vud-widget-thumbs a.down.inactive:before { font-family: 'Font Awesome 5 Free'; font-weight: 900; } @@ -8031,7 +8047,9 @@ a.logo__link span { border-bottom: none; } - .navigation-menu__list li.active .fas, .navigation-menu__list li.active .field-add-more-submit:before, .navigation-menu__list li.active .field--type-file .file:before, .field--type-file .navigation-menu__list li.active .file:before, .navigation-menu__list li.active .ui-button .ui-icon:before, .ui-button .navigation-menu__list li.active .ui-icon:before, .navigation-menu__list li.active .create-new:before { + .navigation-menu__list li.active .fas, .navigation-menu__list li.active .field-add-more-submit:before, .navigation-menu__list li.active .field--type-file .file:before, .field--type-file .navigation-menu__list li.active .file:before, .navigation-menu__list li.active .ui-button .ui-icon:before, .ui-button .navigation-menu__list li.active .ui-icon:before, .navigation-menu__list li.active .create-new:before, .navigation-menu__list li.active .vud-widget-thumbs a.up.active:before, .vud-widget-thumbs .navigation-menu__list li.active a.up.active:before, + .navigation-menu__list li.active .vud-widget-thumbs a.up.inactive:before, .vud-widget-thumbs .navigation-menu__list li.active a.up.inactive:before, .navigation-menu__list li.active .vud-widget-thumbs a.down.active:before, .vud-widget-thumbs .navigation-menu__list li.active a.down.active:before, + .navigation-menu__list li.active .vud-widget-thumbs a.down.inactive:before, .vud-widget-thumbs .navigation-menu__list li.active a.down.inactive:before { color: #ff397f; } @@ -8934,103 +8952,96 @@ header.profile .profile__actions a.profile__actions--add2list:before { font-size: 1.6rem; } -.social-auth.auth-link { - -webkit-box-shadow: none; - box-shadow: none; +.vud-widget { + background: #f7f8fa; + border: 1px solid #dfe0e5; + margin: 0; + padding: 10px; + display: inline-block; } -a.share { - background: #515155 url(../images/share-icons.svg) no-repeat; +.vud-widget > div { display: inline-block; - width: 4rem; - height: 4rem; - border-radius: 4rem; - text-shadow: none; +} + +.vud-widget-thumbs a { -webkit-box-shadow: none; box-shadow: none; + width: 30px; + margin: 0; + padding: 0; } -a.share--facebook { - background-position: 0 0; +.vote-current-score { + text-align: center; + margin: 0 10px 0 10px; } -a.share--twitter { - background-position: -8rem 0; +.vote-thumb { + cursor: pointer; } -a.share--linkedin { - background-position: -4rem 0; +.vud-widget-thumbs .up.inactive, +.vud-widget-thumbs .down.inactive, +.vud-widget-thumbs .up.active, +.vud-widget-thumbs .down.active { + font-size: 24px; + line-height: 1; } -a.share--googleplus { - background-position: -12rem 0; +.vud-widget-thumbs a.up.active:before, +.vud-widget-thumbs a.up.inactive:before { + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + display: inline-block; + font-style: normal; + font-variant: normal; + font-weight: normal; + line-height: 1; + vertical-align: -.125em; + content: "\f35b"; + line-height: inherit; } -a.share--email { - background-position: -16rem 0; +.vud-widget-thumbs a.down.active:before, +.vud-widget-thumbs a.down.inactive:before { + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + display: inline-block; + font-style: normal; + font-variant: normal; + font-weight: normal; + line-height: 1; + vertical-align: -.125em; + content: "\f358"; + line-height: inherit; } -@media (min-width: 768px) { - a.share { - width: auto; - padding-left: 0rem; - background: none; - border-radius: 0; - text-decoration: none; - -webkit-box-shadow: none; - box-shadow: none; - height: auto; - line-height: 2rem; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - } - - a.share span { - display: inline-block; - line-height: 2.5rem; - } - - a.share:before { - content: ""; - background: #515155 url(../images/share-icons.svg) no-repeat; - display: inline-block; - width: 2rem; - height: 2rem; - border-radius: 2rem; - -webkit-box-shadow: none; - box-shadow: none; - background-size: 10rem 2rem; - margin-right: 0.5rem; - margin-top: 2px; - -ms-flex-negative: 0; - flex-shrink: 0; - } - - a.share:hover::before { - background-color: #662D91; - trnasition: background-color 0.2s; - } +.vud-widget-thumbs a.up.inactive, +.vud-widget-thumbs a.down.inactive { + color: #88898c; +} - a.share--facebook:before { - background-position: 0 0; - } +.vud-widget-thumbs a.up.inactive:hover { + color: #46b200; +} - a.share--twitter:before { - background-position: -4rem 0; - } +.vud-widget-thumbs a.down.inactive:hover { + color: #ff3939; +} - a.share--linkedin:before { - background-position: -2rem 0; - } +.vud-widget-thumbs a.up.active { + color: #46b200; +} - a.share--googleplus:before { - background-position: -6rem 0; - } +.vud-widget-thumbs a.down.active { + color: #ff3939; +} - a.share--email:before { - background-position: -8rem 0; - } +.element-invisible { + position: absolute !important; + clip: rect(1px 1px 1px 1px); + clip: rect(1px, 1px, 1px, 1px); } /*# sourceMappingURL=style.css.map */ diff --git a/funkywave.info.yml b/funkywave.info.yml index 90feb20..79c4d39 100644 --- a/funkywave.info.yml +++ b/funkywave.info.yml @@ -20,3 +20,5 @@ component-libraries: - patterns libraries-override: classy/base: false +stylesheets-remove: + - modules/contrib/vote_up_down/widgets/thumbs/thumbs.css diff --git a/sass/components/_social-share.scss b/sass/components/_social-share.scss index 55cc53d..e69de29 100644 --- a/sass/components/_social-share.scss +++ b/sass/components/_social-share.scss @@ -1,87 +0,0 @@ -.social-auth.auth-link { - box-shadow: none; -} - - - -a.share { - background: $gray-700 url(../images/share-icons.svg) no-repeat; - display: inline-block; - width: 4rem; - height: 4rem; - border-radius: 4rem; - text-shadow: none; - box-shadow: none; - - - &--facebook { - background-position: 0 0; - } - &--twitter { - background-position: -8rem 0; - } - &--linkedin { - background-position: -4rem 0; - } - &--googleplus { - background-position: -12rem 0; - } - &--email { - background-position: -16rem 0; - } -} - -@media (min-width: 768px) { - - a.share { - width: auto; - padding-left: 0rem; - background: none; - border-radius: 0; - text-decoration: none; - box-shadow: none; - height: auto; - line-height: 2rem; - display: flex; - - span { - display: inline-block; - line-height: 2.5rem; - } - - &:before { - content: ""; - background: $gray-700 url(../images/share-icons.svg) no-repeat; - display: inline-block; - width: 2rem; - height: 2rem; - border-radius: 2rem; - box-shadow: none; - background-size: 10rem 2rem; - margin-right: 0.5rem; - margin-top: 2px; - flex-shrink: 0; - } - - &:hover::before { - background-color: $purple; - trnasition: background-color 0.2s; - } - - &--facebook:before { - background-position: 0 0; - } - &--twitter:before { - background-position: -4rem 0; - } - &--linkedin:before { - background-position: -2rem 0; - } - &--googleplus:before { - background-position: -6rem 0; - } - &--email:before { - background-position: -8rem 0; - } - } -} diff --git a/sass/components/_voting.scss b/sass/components/_voting.scss new file mode 100644 index 0000000..f53e65b --- /dev/null +++ b/sass/components/_voting.scss @@ -0,0 +1,89 @@ +.vud-widget { + background: $gray-100; + border: 1px solid $gray-300; + margin: 0; + padding: 10px; + display: inline-block; +} + +.vud-widget > div { + display: inline-block; +} + +.vud-widget-thumbs a { + box-shadow: none; + width: 30px; + margin: 0; + padding: 0; +} + +.vote-current-score { + text-align: center; + margin: 0 10px 0 10px; +} + +.vote-thumb { + cursor: pointer; +} + +.vud-widget-thumbs .up.inactive, +.vud-widget-thumbs .down.inactive, +.vud-widget-thumbs .up.active, +.vud-widget-thumbs .down.active { + font-size: 24px; + line-height: 1; +} + +.vud-widget-thumbs a.up.active, +.vud-widget-thumbs a.up.inactive + { + &:before { + @include fa-icon; + @extend .fas; + content: fa-content($fa-var-arrow-alt-circle-up); + line-height: inherit; + } +} + +.vud-widget-thumbs a.down.active, +.vud-widget-thumbs a.down.inactive { + &:before { + @include fa-icon; + @extend .fas; + content: fa-content($fa-var-arrow-alt-circle-down); + line-height: inherit; + } +} + +.vud-widget-thumbs a.up.inactive, +.vud-widget-thumbs a.down.inactive { + color: $gray-600; +} + +.vud-widget-thumbs a.up.inactive { + &:hover { + color: $green; + } +} + +.vud-widget-thumbs a.down.inactive { + &:hover { + color: $red; + } +} + +.vud-widget-thumbs a.up.active { + color: $green; +} + +.vud-widget-thumbs a.down.active { + color: $red; +} + +.element-invisible { + position: absolute !important; + clip: rect(1px 1px 1px 1px); /* IE6, IE7 */ + clip: rect(1px, 1px, 1px, 1px); +} + + diff --git a/templates/content/node--ngf-discussion.html.twig b/templates/content/node--ngf-discussion.html.twig index d582f78..574dc82 100644 --- a/templates/content/node--ngf-discussion.html.twig +++ b/templates/content/node--ngf-discussion.html.twig @@ -95,6 +95,7 @@ {% block header %}
    {{ title_prefix }} +

    {% if not page %} {{ label }} @@ -103,7 +104,11 @@ {% endif %}

    {#block postinfo #} + {% block postinfo %} + + + {% include "@patterns/profile-shortinfo/pattern-profile-shortinfo.html.twig" with { image_url: image_url, @@ -118,6 +123,11 @@ {% endblock postinfo %} {# end block postinfo #} +
    + {{ content.field_ngf_vote }} + {{ content.voters }} +
    + {# block coverimage #} {% block coverimage %} {% if content.field_ngf_cover_image is not empty %} @@ -187,10 +197,11 @@ {% endif %} {% endblock related_content %} + {{ drupal_entity('block', 'socialsharingblock', check_access=false) }} + {# Comments #} {% if view_mode == "full" %} - {{ content.field_ngf_vote }} - {{ content.voters }} + {{ content.flag_ngf_follow_content }} {{ content.flag_ngf_save_content }} {{ content.flag_ngf_report_content }} diff --git a/templates/widgets/vud-widget.html.twig b/templates/widgets/vud-widget.html.twig new file mode 100644 index 0000000..93112b2 --- /dev/null +++ b/templates/widgets/vud-widget.html.twig @@ -0,0 +1,31 @@ +
    +
    + {% if show_links == true %} + {% if show_up_as_link == true %} + + {% endif %} +
    +
    {% trans %} Vote up! {% endtrans %}
    + {% if show_up_as_link == true %} +
    + {% endif %} + {% endif %} +
    + +
    {{ points }}
    + +
    + {% if show_links == true %} + {% if show_down_as_link == true %} + + {% endif %} +
    +
    {% trans %} Vote down! {% endtrans %}
    + {% if show_down_as_link == true %} +
    + {% endif %} + {% endif %} +
    + +
    + From 4665239ebd2b619f1046f059ec6804f425f37273 Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Thu, 4 Oct 2018 11:16:43 +0200 Subject: [PATCH 182/200] NGF-413 blocks have now h3 --- css/style.css | 12 +++++ sass/components/_comments.scss | 44 ++++++++++++------- sass/components/_social-share.scss | 3 ++ templates/block/block.html.twig | 44 +++++++++++++++++++ .../content/node--ngf-discussion.html.twig | 7 ++- 5 files changed, 92 insertions(+), 18 deletions(-) create mode 100644 templates/block/block.html.twig diff --git a/css/style.css b/css/style.css index 5308412..8604adc 100644 --- a/css/style.css +++ b/css/style.css @@ -7028,6 +7028,9 @@ button.paragraphs-dropdown-action { } } +.sub-section--comments { +} + .sub-section--comments__title { padding-left: 3.6rem; min-height: 3.7rem; @@ -7050,6 +7053,10 @@ button.paragraphs-dropdown-action { padding-left: 0rem; } +.sub-section--comments .comment { + margin-bottom: 3rem; +} + .sub-section--comments > ul { padding: 0; margin: 0; @@ -8952,6 +8959,11 @@ header.profile .profile__actions a.profile__actions--add2list:before { font-size: 1.6rem; } +a.share { + -webkit-box-shadow: none; + box-shadow: none; +} + .vud-widget { background: #f7f8fa; border: 1px solid #dfe0e5; diff --git a/sass/components/_comments.scss b/sass/components/_comments.scss index 83c248f..ea3127c 100644 --- a/sass/components/_comments.scss +++ b/sass/components/_comments.scss @@ -1,5 +1,5 @@ .sub-section--comments { - + &__title { padding-left: 3.6rem; min-height: 3.7rem; @@ -9,43 +9,53 @@ background-repeat: no-repeat; background-size: 2.38rem 2.5rem; } - - + + .indented { margin-left: 0rem !important; border-left: solid 2px #CCC; padding-left: 1.5rem; } - + .indented > .indented > .indented > .indented { margin-left: 0rem; border-left: none; padding-left: 0rem; } - - - + + .comment { + margin-bottom: 3rem; + } + + /* + .content { + margin-left: 7.3rem; + } + */ + + + > ul { padding: 0; margin: 0; - } - + } + li { list-style: none; - + .profile-shortinfo { margin-top: 15px; } } - + .profile-shortinfo { margin-bottom: -2rem; - + ~ p { border-left: solid 2px #CCC; padding-left: 1.5rem; - + + p { border-left: solid 2px #CCC; padding-left: 1.5rem; @@ -54,7 +64,7 @@ } } } - + .comment-reply a { padding-left: 2.6rem; min-height: 3.7rem; @@ -64,7 +74,7 @@ background-size: 1.7rem 1.7rem; text-decoration: none; } - + .comment-edit a { padding-left: 2.6rem; min-height: 3.7rem; @@ -74,7 +84,7 @@ background-size: 1.7rem 1.7rem; text-decoration: none; } - + .comment-delete a { padding-left: 2.6rem; min-height: 3.7rem; @@ -84,4 +94,4 @@ background-size: 1.7rem 1.7rem; text-decoration: none; } -} \ No newline at end of file +} diff --git a/sass/components/_social-share.scss b/sass/components/_social-share.scss index e69de29..e04c34f 100644 --- a/sass/components/_social-share.scss +++ b/sass/components/_social-share.scss @@ -0,0 +1,3 @@ +a.share { + box-shadow: none; +} diff --git a/templates/block/block.html.twig b/templates/block/block.html.twig new file mode 100644 index 0000000..a914bf3 --- /dev/null +++ b/templates/block/block.html.twig @@ -0,0 +1,44 @@ +{# +/** + * @file + * Theme override to display a block. + * + * Available variables: + * - plugin_id: The ID of the block implementation. + * - label: The configured label of the block if visible. + * - configuration: A list of the block's configuration values. + * - label: The configured label for the block. + * - label_display: The display settings for the label. + * - provider: The module or other provider that provided this block plugin. + * - Block plugin specific settings will also be stored here. + * - content: The content of this block. + * - attributes: array of HTML attributes populated by modules, intended to + * be added to the main container tag of this template. + * - id: A valid HTML ID and guaranteed unique. + * - title_attributes: Same as attributes, except applied to the main title + * tag that appears in the template. + * - title_prefix: Additional output populated by modules, intended to be + * displayed in front of the main title tag that appears in the template. + * - title_suffix: Additional output populated by modules, intended to be + * displayed after the main title tag that appears in the template. + * + * @see template_preprocess_block() + */ +#} +{% + set classes = [ + 'block', + 'block-' ~ configuration.provider|clean_class, + 'block-' ~ plugin_id|clean_class, + ] +%} + + {{ title_prefix }} + {% if label %} + {{ label }} + {% endif %} + {{ title_suffix }} + {% block content %} + {{ content }} + {% endblock %} + diff --git a/templates/content/node--ngf-discussion.html.twig b/templates/content/node--ngf-discussion.html.twig index 574dc82..af11031 100644 --- a/templates/content/node--ngf-discussion.html.twig +++ b/templates/content/node--ngf-discussion.html.twig @@ -162,6 +162,11 @@ {# Show description (paragraphs) #} {{ content.field_ngf_description }} + + + {% block related_topics %} {# TODO @@ -179,6 +184,7 @@ } %} #} + {{ content.field_ngf_interests }} {% endblock related_topics %} @@ -197,7 +203,6 @@ {% endif %} {% endblock related_content %} - {{ drupal_entity('block', 'socialsharingblock', check_access=false) }} {# Comments #} {% if view_mode == "full" %} From 636c31ba800a81bdca1111853a83db07d47433da Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Thu, 4 Oct 2018 18:17:48 +0200 Subject: [PATCH 183/200] flags theming --- css/override.css | 296 ++++++++++++++++++ css/style.css | 101 +++++- sass/components/_flags.scss | 62 ++++ sass/components/_modal.scss | 7 +- sass/components/_voting.scss | 10 +- sass/style.scss | 2 + .../content/node--ngf-discussion.html.twig | 19 +- 7 files changed, 462 insertions(+), 35 deletions(-) create mode 100644 sass/components/_flags.scss diff --git a/css/override.css b/css/override.css index 8b13789..87040af 100644 --- a/css/override.css +++ b/css/override.css @@ -1 +1,297 @@ +/** + * @file + * Seven styles for Tables. + */ + +table { + width: 100%; + margin: 0 0 10px; +} + +/* custom */ + +table h4 { + margin: 0; + padding: 0; +} + +button.link { + background: transparent; + border: 0; + cursor: pointer; + margin: 0; + margin-bottom: 0px; + padding: 0; + font-size: 1em; +} + +caption { + text-align: left; /* LTR */ +} +[dir="rtl"] caption { + text-align: right; +} +th { + text-align: left; /* LTR */ + padding: 10px 12px; +} +[dir="rtl"] th { + text-align: right; +} +thead th { + background: #26252B; + border: solid #bfbfba; + border-width: 1px 0; + color: #ffffff; + text-transform: uppercase; +} + +fieldset thead th { + background: none; + color: #333333; +} + +tr { + border-bottom: 1px solid #e6e4df; + padding: 0.1em 0.6em; +} +thead > tr { + border-bottom: 1px solid #000; +} +tbody tr:hover, +tbody tr:focus { + background: #f7fcff; +} +/* See colors.css */ +tbody tr.color-warning:hover, +tbody tr.color-warning:focus { + background: #fdf8ed; +} +tbody tr.color-error:hover, +tbody tr.color-error:focus { + background: #fcf4f2; +} + +table.no-highlight tr.selected td { + background: transparent; +} + +td, +th { + vertical-align: middle; +} +td { + padding: 10px 12px; + text-align: left; /* LTR */ +} +[dir="rtl"] td { + text-align: right; +} +th > a { + position: relative; + display: block; +} + +/* 1. Must match negative bottom padding of the parent */ +th > a:after { + content: ''; + display: block; + position: absolute; + top: 0; + bottom: -10px; /* 1. */ + left: 0; + right: 0; + border-bottom: 2px solid transparent; + -webkit-transition: all 0.1s; + transition: all 0.1s; +} +th.is-active > a { + color: #004875; +} +th.is-active img { + position: absolute; + right: 0; /* LTR */ + top: 50%; +} +[dir="rtl"] th.is-active img { + right: auto; + left: 0; +} +th.is-active > a:after { + border-bottom-color: #004875; +} +th > a:hover, +th > a:focus, +th.is-active > a:hover, +th.is-active > a:focus { + color: #008ee6; + text-decoration: none; +} +th > a:hover:after, +th > a:focus:after, +th.is-active > a:hover:after, +th.is-active > a:focus:after { + border-bottom-color: #008ee6; +} +td .item-list ul { + margin: 0; +} +/* This is required to win over specificity of [dir="rtl"] .item-list ul */ +[dir="rtl"] td .item-list ul { + margin: 0; +} +td.is-active { + background: none; +} + +/* Force browsers to calculate the width of a 'select all' element. */ +th.select-all { + width: 1px; +} + +/** + * Captions. + */ +.caption { + margin-bottom: 1.2em; +} + +/** + * Responsive tables. + */ +@media screen and (max-width: 37.5em) { /* 600px */ + th.priority-low, + td.priority-low, + th.priority-medium, + td.priority-medium { + display: none; + } +} + +@media screen and (max-width: 60em) { /* 920px */ + th.priority-low, + td.priority-low { + display: none; + } +} + +/* forms */ + +fieldset:not(.fieldgroup) { + display: table-cell; +} +fieldset:not(.fieldgroup) { + border-radius: 2px; + margin: 1em 0; + padding: 35px 0 0 0; + min-width: 0; + position: relative; +} + +fieldset:not(.fieldgroup) > legend { + font-size: 1em; + font-weight: bold; + position: absolute; + top: 0; + left: 0; + width: 100%; + padding: 0; +} + +legend { + border: 0; + padding: 0; +} + +fieldset > legend { + padding-inline-start: 2px; + padding-inline-end: 2px; + inline-size: -moz-fit-content; +} + +legend { + display: block; +} + +.fieldset-legend { + display: inline-block; +} + +/* required form field theming */ + +.form-required::after { + background-size: 7px 7px; + width: 7px; + height: 7px; +} +.form-required::after { + content: ''; + vertical-align: super; + display: inline-block; + background-image: url(../images/required.svg); + background-repeat: no-repeat; + background-size: 6px 6px; + width: 6px; + height: 6px; + margin: 0 0.3em; +} + +.description { + color: #777777; + border-left: 5px solid #ccc; + padding-left: 20px; + font-size: 14px; + margin: 20px 0 20px 0; +} + +a.tabledrag-handle { + box-shadow: none; + padding: 0 5px 0 5px; +} + +a.tabledrag-handle .handle { + background-position: 0; + width: 16px; + height: 16px; + margin: 0; + +} + +h4.label { + display: inline; +} + +.field-multiple-table .form-wrapper, +.field--name-field-ngf-cover-image .js-form-item.form-wrapper .form-wrapper, +.details-wrapper .form-wrapper, +details.form-wrapper { + padding: 0; +} + +/* border to fix */ + +fieldset { + border: none; +} + + +.field-multiple-table .paragraphs-subform { + padding: 0 15px 0 15px; +} + +.field-multiple-table fieldset.form-wrapper { + padding-top: 50px; +} + +.container-inline.js-form-wrapper { + padding-bottom: 0; +} + +tr.draggable.even { + background: #f5f5f2; +} + +.ui-widget.ui-widget-content.ui-autocomplete { + border: 1px solid #cccccc; +} diff --git a/css/style.css b/css/style.css index 8604adc..9564fbc 100644 --- a/css/style.css +++ b/css/style.css @@ -4,6 +4,9 @@ .fas, .field-add-more-submit:before, .field--type-file .file:before, +.actions .flag-ngf-save-content.action-unflag a:before, +.actions .flag-ngf-report-content.action-unflag a:before, +.actions .flag-ngf-report-content.action-flag a:before, .new-item .create-new:before, .ui-button .ui-icon:before, .navigation-menu__list li .create-new:before, @@ -12,6 +15,7 @@ .vud-widget-thumbs a.down.active:before, .vud-widget-thumbs a.down.inactive:before, .far, +.actions .flag a:before, .fal, .fab { -moz-osx-font-smoothing: grayscale; @@ -118,6 +122,9 @@ .fas.fa-pull-left, .fa-pull-left.field-add-more-submit:before, .field--type-file .fa-pull-left.file:before, +.actions .flag-ngf-save-content.action-unflag a.fa-pull-left:before, +.actions .flag-ngf-report-content.action-unflag a.fa-pull-left:before, +.actions .flag-ngf-report-content.action-flag a.fa-pull-left:before, .new-item .fa-pull-left.create-new:before, .ui-button .fa-pull-left.ui-icon:before, .navigation-menu__list li .fa-pull-left.create-new:before, @@ -126,6 +133,7 @@ .vud-widget-thumbs a.fa-pull-left.down.active:before, .vud-widget-thumbs a.fa-pull-left.down.inactive:before, .far.fa-pull-left, +.actions .flag a.fa-pull-left:before, .fal.fa-pull-left, .fab.fa-pull-left { margin-right: .3em; @@ -135,6 +143,9 @@ .fas.fa-pull-right, .fa-pull-right.field-add-more-submit:before, .field--type-file .fa-pull-right.file:before, +.actions .flag-ngf-save-content.action-unflag a.fa-pull-right:before, +.actions .flag-ngf-report-content.action-unflag a.fa-pull-right:before, +.actions .flag-ngf-report-content.action-flag a.fa-pull-right:before, .new-item .fa-pull-right.create-new:before, .ui-button .fa-pull-right.ui-icon:before, .navigation-menu__list li .fa-pull-right.create-new:before, @@ -143,6 +154,7 @@ .vud-widget-thumbs a.fa-pull-right.down.active:before, .vud-widget-thumbs a.fa-pull-right.down.inactive:before, .far.fa-pull-right, +.actions .flag a.fa-pull-right:before, .fal.fa-pull-right, .fab.fa-pull-right { margin-left: .3em; @@ -4868,6 +4880,9 @@ .fas, .field-add-more-submit:before, .field--type-file .file:before, +.actions .flag-ngf-save-content.action-unflag a:before, +.actions .flag-ngf-report-content.action-unflag a:before, +.actions .flag-ngf-report-content.action-flag a:before, .new-item .create-new:before, .ui-button .ui-icon:before, .navigation-menu__list li .create-new:before, @@ -4879,6 +4894,20 @@ font-weight: 900; } +@font-face { + font-family: 'Font Awesome 5 Free'; + font-style: normal; + font-weight: 400; + src: url("../webfonts/fa-regular-400.eot"); + src: url("../webfonts/fa-regular-400.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.woff") format("woff"), url("../webfonts/fa-regular-400.ttf") format("truetype"), url("../webfonts/fa-regular-400.svg#fontawesome") format("svg"); +} + +.far, +.actions .flag a:before { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} + * { -webkit-box-sizing: border-box; box-sizing: border-box; @@ -7312,6 +7341,61 @@ button.paragraphs-dropdown-action { content: "\f15c"; } +.actions { + background: #f7f8fa; + border: 1px solid #dfe0e5; + margin: 0; + padding: 10px 10px 0 10px; + display: inline-block; + border-radius: 10px; + margin: 0 0 1.5rem 0; + width: 100%; +} + +.actions > div { + display: inline-block; + margin: 0 1rem 1rem 0; +} + +.actions .flag a { + border: 1px solid #662D91; + border-radius: 20px; + padding: 5px 10px; + -webkit-box-shadow: none; + box-shadow: none; + background: #FFFFFF; +} + +.actions .flag a:hover { + border: 1px solid #003ba7; +} + +.actions .flag a:before { + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + display: inline-block; + font-style: normal; + font-variant: normal; + font-weight: normal; + line-height: 1; + vertical-align: -.125em; + line-height: inherit; + padding-right: 5px; +} + +.actions .flag-ngf-save-content a:before { + content: "\f02e"; +} + +.actions .flag-ngf-follow-content a:before { + content: "\f1ea"; +} + +.actions .flag-ngf-report-content.action-unflag a:before, + .actions .flag-ngf-report-content.action-flag a:before { + content: "\f071"; +} + .general-footer--card { position: relative !important; bottom: auto; @@ -7813,7 +7897,7 @@ a.logo__link span { } .ui-dialog { - background: transparent; + background: #FFFFFF; } .ui-dialog ul { @@ -7826,7 +7910,6 @@ a.logo__link span { font-weight: bold; background: transparent; border: none; - color: #FFFFFF; } .ui-dialog .ui-dialog-title { @@ -7851,7 +7934,6 @@ a.logo__link span { line-height: 1; vertical-align: -.125em; content: "\f00d"; - color: #FFFFFF; text-indent: initial; display: block; } @@ -8054,7 +8136,8 @@ a.logo__link span { border-bottom: none; } - .navigation-menu__list li.active .fas, .navigation-menu__list li.active .field-add-more-submit:before, .navigation-menu__list li.active .field--type-file .file:before, .field--type-file .navigation-menu__list li.active .file:before, .navigation-menu__list li.active .ui-button .ui-icon:before, .ui-button .navigation-menu__list li.active .ui-icon:before, .navigation-menu__list li.active .create-new:before, .navigation-menu__list li.active .vud-widget-thumbs a.up.active:before, .vud-widget-thumbs .navigation-menu__list li.active a.up.active:before, + .navigation-menu__list li.active .fas, .navigation-menu__list li.active .field-add-more-submit:before, .navigation-menu__list li.active .field--type-file .file:before, .field--type-file .navigation-menu__list li.active .file:before, .navigation-menu__list li.active .actions .flag-ngf-save-content.action-unflag a:before, .actions .flag-ngf-save-content.action-unflag .navigation-menu__list li.active a:before, .navigation-menu__list li.active .actions .flag-ngf-report-content.action-unflag a:before, .actions .flag-ngf-report-content.action-unflag .navigation-menu__list li.active a:before, + .navigation-menu__list li.active .actions .flag-ngf-report-content.action-flag a:before, .actions .flag-ngf-report-content.action-flag .navigation-menu__list li.active a:before, .navigation-menu__list li.active .ui-button .ui-icon:before, .ui-button .navigation-menu__list li.active .ui-icon:before, .navigation-menu__list li.active .create-new:before, .navigation-menu__list li.active .vud-widget-thumbs a.up.active:before, .vud-widget-thumbs .navigation-menu__list li.active a.up.active:before, .navigation-menu__list li.active .vud-widget-thumbs a.up.inactive:before, .vud-widget-thumbs .navigation-menu__list li.active a.up.inactive:before, .navigation-menu__list li.active .vud-widget-thumbs a.down.active:before, .vud-widget-thumbs .navigation-menu__list li.active a.down.active:before, .navigation-menu__list li.active .vud-widget-thumbs a.down.inactive:before, .vud-widget-thumbs .navigation-menu__list li.active a.down.inactive:before { color: #ff397f; @@ -8964,14 +9047,6 @@ a.share { box-shadow: none; } -.vud-widget { - background: #f7f8fa; - border: 1px solid #dfe0e5; - margin: 0; - padding: 10px; - display: inline-block; -} - .vud-widget > div { display: inline-block; } @@ -9031,7 +9106,7 @@ a.share { .vud-widget-thumbs a.up.inactive, .vud-widget-thumbs a.down.inactive { - color: #88898c; + color: #662D91; } .vud-widget-thumbs a.up.inactive:hover { diff --git a/sass/components/_flags.scss b/sass/components/_flags.scss new file mode 100644 index 0000000..07126ee --- /dev/null +++ b/sass/components/_flags.scss @@ -0,0 +1,62 @@ +.actions { + background: $gray-100; + border: 1px solid $gray-300; + margin: 0; + padding: 10px 10px 0 10px ; + display: inline-block; + border-radius: 10px; + margin: 0 0 1.5rem 0; + width: 100%; + + > div { + display: inline-block; + margin: 0 1rem 1rem 0; + } + + .flag a { + border: 1px solid $purple; + border-radius: 20px; + padding: 5px 10px; + box-shadow: none; + background: $white; + &:hover { + border: 1px solid scale-lightness($blue, -40%); + } + &:before { + @include fa-icon; + @extend .far; + line-height: inherit; + padding-right: 5px; + } + } + + .flag-ngf-save-content a { + &:before { + content: fa-content($fa-var-bookmark); + } + } + + .flag-ngf-save-content.action-unflag a { + &:before { + @extend .fas; + } + } + + .flag-ngf-follow-content a { + &:before { + content: fa-content($fa-var-newspaper); + } + } + + .flag-ngf-report-content.action-unflag a, + .flag-ngf-report-content.action-flag a { + &:before { + @extend .fas; + content: fa-content($fa-var-exclamation-triangle); + } + } +} + + + + diff --git a/sass/components/_modal.scss b/sass/components/_modal.scss index ca32b35..17a6e5d 100644 --- a/sass/components/_modal.scss +++ b/sass/components/_modal.scss @@ -4,7 +4,8 @@ } .ui-dialog { - background: transparent; + /* background: transparent; */ + background: $white; ul { list-style: none; margin: 0; @@ -14,7 +15,7 @@ font-weight: bold; background: transparent; border: none; - color: $white; + /* color: $white; */ } .ui-dialog-title { font-size: 3rem; @@ -31,7 +32,7 @@ @include fa-icon; @extend .fas; content: fa-content($fa-var-times); - color: $white; + /* color: $white; */ text-indent: initial; display: block; } diff --git a/sass/components/_voting.scss b/sass/components/_voting.scss index f53e65b..a511d72 100644 --- a/sass/components/_voting.scss +++ b/sass/components/_voting.scss @@ -1,11 +1,3 @@ -.vud-widget { - background: $gray-100; - border: 1px solid $gray-300; - margin: 0; - padding: 10px; - display: inline-block; -} - .vud-widget > div { display: inline-block; } @@ -57,7 +49,7 @@ .vud-widget-thumbs a.up.inactive, .vud-widget-thumbs a.down.inactive { - color: $gray-600; + color: $purple; } .vud-widget-thumbs a.up.inactive { diff --git a/sass/style.scss b/sass/style.scss index fd46660..76b38f5 100644 --- a/sass/style.scss +++ b/sass/style.scss @@ -5,6 +5,8 @@ @import "fontawesome/fontawesome.scss"; @import "fontawesome/solid.scss"; +@import "fontawesome/regular.scss"; + // Import theme variables @import "theme/**/*.scss"; diff --git a/templates/content/node--ngf-discussion.html.twig b/templates/content/node--ngf-discussion.html.twig index af11031..7bffef8 100644 --- a/templates/content/node--ngf-discussion.html.twig +++ b/templates/content/node--ngf-discussion.html.twig @@ -124,9 +124,12 @@ {# end block postinfo #}
    - {{ content.field_ngf_vote }} - {{ content.voters }} -
    + {{ content.field_ngf_vote }} + {# {{ content.voters }} #} + {{ content.flag_ngf_follow_content }} + {{ content.flag_ngf_save_content }} + {{ content.flag_ngf_report_content }} + {# block coverimage #} {% block coverimage %} @@ -162,10 +165,11 @@ {# Show description (paragraphs) #} {{ content.field_ngf_description }} - + {% if view_mode == "full" %} + {% endif %} {% block related_topics %} @@ -205,13 +209,8 @@ {# Comments #} - {% if view_mode == "full" %} + {{ content.field_comments }} - {{ content.flag_ngf_follow_content }} - {{ content.flag_ngf_save_content }} - {{ content.flag_ngf_report_content }} - {{ content.field_comments }} - {% endif %} {% endblock article %} From 0645dfa666d6d2b89a182aa536fec72ab3724a63 Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Fri, 5 Oct 2018 13:34:33 +0200 Subject: [PATCH 184/200] NGF-413 flags with text, only icons. title implemented --- css/style.css | 22 +++++++------ sass/components/_flags.scss | 31 +++++++++++++++---- .../content/node--ngf-discussion.html.twig | 16 +++++----- templates/flag.html.twig | 4 ++- 4 files changed, 49 insertions(+), 24 deletions(-) diff --git a/css/style.css b/css/style.css index 9564fbc..2b160f9 100644 --- a/css/style.css +++ b/css/style.css @@ -5,6 +5,7 @@ .field-add-more-submit:before, .field--type-file .file:before, .actions .flag-ngf-save-content.action-unflag a:before, +.actions .flag-ngf-follow-content.action-unflag a:before, .actions .flag-ngf-report-content.action-unflag a:before, .actions .flag-ngf-report-content.action-flag a:before, .new-item .create-new:before, @@ -123,6 +124,7 @@ .fa-pull-left.field-add-more-submit:before, .field--type-file .fa-pull-left.file:before, .actions .flag-ngf-save-content.action-unflag a.fa-pull-left:before, +.actions .flag-ngf-follow-content.action-unflag a.fa-pull-left:before, .actions .flag-ngf-report-content.action-unflag a.fa-pull-left:before, .actions .flag-ngf-report-content.action-flag a.fa-pull-left:before, .new-item .fa-pull-left.create-new:before, @@ -144,6 +146,7 @@ .fa-pull-right.field-add-more-submit:before, .field--type-file .fa-pull-right.file:before, .actions .flag-ngf-save-content.action-unflag a.fa-pull-right:before, +.actions .flag-ngf-follow-content.action-unflag a.fa-pull-right:before, .actions .flag-ngf-report-content.action-unflag a.fa-pull-right:before, .actions .flag-ngf-report-content.action-flag a.fa-pull-right:before, .new-item .fa-pull-right.create-new:before, @@ -4881,6 +4884,7 @@ .field-add-more-submit:before, .field--type-file .file:before, .actions .flag-ngf-save-content.action-unflag a:before, +.actions .flag-ngf-follow-content.action-unflag a:before, .actions .flag-ngf-report-content.action-unflag a:before, .actions .flag-ngf-report-content.action-flag a:before, .new-item .create-new:before, @@ -7344,7 +7348,6 @@ button.paragraphs-dropdown-action { .actions { background: #f7f8fa; border: 1px solid #dfe0e5; - margin: 0; padding: 10px 10px 0 10px; display: inline-block; border-radius: 10px; @@ -7358,16 +7361,15 @@ button.paragraphs-dropdown-action { } .actions .flag a { - border: 1px solid #662D91; - border-radius: 20px; - padding: 5px 10px; -webkit-box-shadow: none; box-shadow: none; - background: #FFFFFF; +} + +.actions .flag a span { + display: none; } .actions .flag a:hover { - border: 1px solid #003ba7; } .actions .flag a:before { @@ -7379,7 +7381,7 @@ button.paragraphs-dropdown-action { font-weight: normal; line-height: 1; vertical-align: -.125em; - line-height: inherit; + line-height: 1; padding-right: 5px; } @@ -7388,12 +7390,12 @@ button.paragraphs-dropdown-action { } .actions .flag-ngf-follow-content a:before { - content: "\f1ea"; + content: "\f004"; } .actions .flag-ngf-report-content.action-unflag a:before, .actions .flag-ngf-report-content.action-flag a:before { - content: "\f071"; + content: "\f12a"; } .general-footer--card { @@ -8136,7 +8138,7 @@ a.logo__link span { border-bottom: none; } - .navigation-menu__list li.active .fas, .navigation-menu__list li.active .field-add-more-submit:before, .navigation-menu__list li.active .field--type-file .file:before, .field--type-file .navigation-menu__list li.active .file:before, .navigation-menu__list li.active .actions .flag-ngf-save-content.action-unflag a:before, .actions .flag-ngf-save-content.action-unflag .navigation-menu__list li.active a:before, .navigation-menu__list li.active .actions .flag-ngf-report-content.action-unflag a:before, .actions .flag-ngf-report-content.action-unflag .navigation-menu__list li.active a:before, + .navigation-menu__list li.active .fas, .navigation-menu__list li.active .field-add-more-submit:before, .navigation-menu__list li.active .field--type-file .file:before, .field--type-file .navigation-menu__list li.active .file:before, .navigation-menu__list li.active .actions .flag-ngf-save-content.action-unflag a:before, .actions .flag-ngf-save-content.action-unflag .navigation-menu__list li.active a:before, .navigation-menu__list li.active .actions .flag-ngf-follow-content.action-unflag a:before, .actions .flag-ngf-follow-content.action-unflag .navigation-menu__list li.active a:before, .navigation-menu__list li.active .actions .flag-ngf-report-content.action-unflag a:before, .actions .flag-ngf-report-content.action-unflag .navigation-menu__list li.active a:before, .navigation-menu__list li.active .actions .flag-ngf-report-content.action-flag a:before, .actions .flag-ngf-report-content.action-flag .navigation-menu__list li.active a:before, .navigation-menu__list li.active .ui-button .ui-icon:before, .ui-button .navigation-menu__list li.active .ui-icon:before, .navigation-menu__list li.active .create-new:before, .navigation-menu__list li.active .vud-widget-thumbs a.up.active:before, .vud-widget-thumbs .navigation-menu__list li.active a.up.active:before, .navigation-menu__list li.active .vud-widget-thumbs a.up.inactive:before, .vud-widget-thumbs .navigation-menu__list li.active a.up.inactive:before, .navigation-menu__list li.active .vud-widget-thumbs a.down.active:before, .vud-widget-thumbs .navigation-menu__list li.active a.down.active:before, .navigation-menu__list li.active .vud-widget-thumbs a.down.inactive:before, .vud-widget-thumbs .navigation-menu__list li.active a.down.inactive:before { diff --git a/sass/components/_flags.scss b/sass/components/_flags.scss index 07126ee..e4b9f6b 100644 --- a/sass/components/_flags.scss +++ b/sass/components/_flags.scss @@ -1,7 +1,6 @@ .actions { background: $gray-100; border: 1px solid $gray-300; - margin: 0; padding: 10px 10px 0 10px ; display: inline-block; border-radius: 10px; @@ -14,22 +13,32 @@ } .flag a { + /* border: 1px solid $purple; border-radius: 20px; padding: 5px 10px; - box-shadow: none; background: $white; + */ + box-shadow: none; + + span { + display: none; + } + &:hover { - border: 1px solid scale-lightness($blue, -40%); + /* border: 1px solid scale-lightness($blue, -40%); */ } + &:before { @include fa-icon; @extend .far; - line-height: inherit; + line-height: 1; padding-right: 5px; } } + /* save content flag */ + .flag-ngf-save-content a { &:before { content: fa-content($fa-var-bookmark); @@ -42,17 +51,27 @@ } } + /* follow content flag */ + .flag-ngf-follow-content a { &:before { - content: fa-content($fa-var-newspaper); + content: fa-content($fa-var-heart); } } + .flag-ngf-follow-content.action-unflag a { + &:before { + @extend .fas; + } + } + + /* report content flag */ + .flag-ngf-report-content.action-unflag a, .flag-ngf-report-content.action-flag a { &:before { @extend .fas; - content: fa-content($fa-var-exclamation-triangle); + content: fa-content($fa-var-exclamation); } } } diff --git a/templates/content/node--ngf-discussion.html.twig b/templates/content/node--ngf-discussion.html.twig index 7bffef8..1c57b90 100644 --- a/templates/content/node--ngf-discussion.html.twig +++ b/templates/content/node--ngf-discussion.html.twig @@ -123,13 +123,15 @@ {% endblock postinfo %} {# end block postinfo #} -
    - {{ content.field_ngf_vote }} - {# {{ content.voters }} #} - {{ content.flag_ngf_follow_content }} - {{ content.flag_ngf_save_content }} - {{ content.flag_ngf_report_content }} -
    + {% if view_mode == "full" %} +
    + {{ content.field_ngf_vote }} + {# {{ content.voters }} #} + {{ content.flag_ngf_follow_content }} + {{ content.flag_ngf_save_content }} + {{ content.flag_ngf_report_content }} +
    + {% endif %} {# block coverimage #} {% block coverimage %} diff --git a/templates/flag.html.twig b/templates/flag.html.twig index 90dc3aa..29c8158 100644 --- a/templates/flag.html.twig +++ b/templates/flag.html.twig @@ -34,11 +34,13 @@ {# Set nofollow to prevent search bots from crawling anonymous flag links #} {% set attributes = attributes.setAttribute('rel', 'nofollow') %} + {% set attributes = attributes.setAttribute('title', title) %} + {% if action == 'unflag' %} {% set attributes = attributes.setAttribute('class', 'profile__actions--unfollow') %} {% else %} {% set attributes = attributes.setAttribute('class', 'profile__actions--follow') %} {% endif %} -
    {{ title }}
    +
    {{ title }}
    {% endspaceless %} From 504f533510fd3bd2e2a6a3cec5fad6fa92b53d55 Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Fri, 5 Oct 2018 18:21:34 +0200 Subject: [PATCH 185/200] NGF-413 font-awesome bug fixed, need update to new version --- css/style.css | 132 +++++++++++++++++++------------ sass/components/_flags.scss | 75 ++++++++---------- sass/components/_navigation.scss | 2 +- sass/fontawesome/_mixins.scss | 2 +- sass/style.scss | 3 +- 5 files changed, 118 insertions(+), 96 deletions(-) diff --git a/css/style.css b/css/style.css index 2b160f9..ae0da53 100644 --- a/css/style.css +++ b/css/style.css @@ -4,10 +4,10 @@ .fas, .field-add-more-submit:before, .field--type-file .file:before, -.actions .flag-ngf-save-content.action-unflag a:before, -.actions .flag-ngf-follow-content.action-unflag a:before, -.actions .flag-ngf-report-content.action-unflag a:before, -.actions .flag-ngf-report-content.action-flag a:before, +.flag-ngf-save-content.action-unflag a:before, +.flag-ngf-follow-content.action-unflag a:before, +.flag-ngf-report-content.action-unflag a:before, +.flag-ngf-report-content.action-flag a:before, .new-item .create-new:before, .ui-button .ui-icon:before, .navigation-menu__list li .create-new:before, @@ -16,7 +16,8 @@ .vud-widget-thumbs a.down.active:before, .vud-widget-thumbs a.down.inactive:before, .far, -.actions .flag a:before, +.flag-ngf-save-content a:before, +.flag-ngf-follow-content.action a:before, .fal, .fab { -moz-osx-font-smoothing: grayscale; @@ -123,10 +124,10 @@ .fas.fa-pull-left, .fa-pull-left.field-add-more-submit:before, .field--type-file .fa-pull-left.file:before, -.actions .flag-ngf-save-content.action-unflag a.fa-pull-left:before, -.actions .flag-ngf-follow-content.action-unflag a.fa-pull-left:before, -.actions .flag-ngf-report-content.action-unflag a.fa-pull-left:before, -.actions .flag-ngf-report-content.action-flag a.fa-pull-left:before, +.flag-ngf-save-content.action-unflag a.fa-pull-left:before, +.flag-ngf-follow-content.action-unflag a.fa-pull-left:before, +.flag-ngf-report-content.action-unflag a.fa-pull-left:before, +.flag-ngf-report-content.action-flag a.fa-pull-left:before, .new-item .fa-pull-left.create-new:before, .ui-button .fa-pull-left.ui-icon:before, .navigation-menu__list li .fa-pull-left.create-new:before, @@ -135,7 +136,8 @@ .vud-widget-thumbs a.fa-pull-left.down.active:before, .vud-widget-thumbs a.fa-pull-left.down.inactive:before, .far.fa-pull-left, -.actions .flag a.fa-pull-left:before, +.flag-ngf-save-content a.fa-pull-left:before, +.flag-ngf-follow-content.action a.fa-pull-left:before, .fal.fa-pull-left, .fab.fa-pull-left { margin-right: .3em; @@ -145,10 +147,10 @@ .fas.fa-pull-right, .fa-pull-right.field-add-more-submit:before, .field--type-file .fa-pull-right.file:before, -.actions .flag-ngf-save-content.action-unflag a.fa-pull-right:before, -.actions .flag-ngf-follow-content.action-unflag a.fa-pull-right:before, -.actions .flag-ngf-report-content.action-unflag a.fa-pull-right:before, -.actions .flag-ngf-report-content.action-flag a.fa-pull-right:before, +.flag-ngf-save-content.action-unflag a.fa-pull-right:before, +.flag-ngf-follow-content.action-unflag a.fa-pull-right:before, +.flag-ngf-report-content.action-unflag a.fa-pull-right:before, +.flag-ngf-report-content.action-flag a.fa-pull-right:before, .new-item .fa-pull-right.create-new:before, .ui-button .fa-pull-right.ui-icon:before, .navigation-menu__list li .fa-pull-right.create-new:before, @@ -157,7 +159,8 @@ .vud-widget-thumbs a.fa-pull-right.down.active:before, .vud-widget-thumbs a.fa-pull-right.down.inactive:before, .far.fa-pull-right, -.actions .flag a.fa-pull-right:before, +.flag-ngf-save-content a.fa-pull-right:before, +.flag-ngf-follow-content.action a.fa-pull-right:before, .fal.fa-pull-right, .fab.fa-pull-right { margin-left: .3em; @@ -4871,6 +4874,21 @@ width: auto; } +@font-face { + font-family: 'Font Awesome 5 Free'; + font-style: normal; + font-weight: 400; + src: url("../webfonts/fa-regular-400.eot"); + src: url("../webfonts/fa-regular-400.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.woff") format("woff"), url("../webfonts/fa-regular-400.ttf") format("truetype"), url("../webfonts/fa-regular-400.svg#fontawesome") format("svg"); +} + +.far, +.flag-ngf-save-content a:before, +.flag-ngf-follow-content.action a:before { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; +} + @font-face { font-family: 'Font Awesome 5 Free'; font-style: normal; @@ -4883,10 +4901,10 @@ .fas, .field-add-more-submit:before, .field--type-file .file:before, -.actions .flag-ngf-save-content.action-unflag a:before, -.actions .flag-ngf-follow-content.action-unflag a:before, -.actions .flag-ngf-report-content.action-unflag a:before, -.actions .flag-ngf-report-content.action-flag a:before, +.flag-ngf-save-content.action-unflag a:before, +.flag-ngf-follow-content.action-unflag a:before, +.flag-ngf-report-content.action-unflag a:before, +.flag-ngf-report-content.action-flag a:before, .new-item .create-new:before, .ui-button .ui-icon:before, .navigation-menu__list li .create-new:before, @@ -4898,20 +4916,6 @@ font-weight: 900; } -@font-face { - font-family: 'Font Awesome 5 Free'; - font-style: normal; - font-weight: 400; - src: url("../webfonts/fa-regular-400.eot"); - src: url("../webfonts/fa-regular-400.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.woff") format("woff"), url("../webfonts/fa-regular-400.ttf") format("truetype"), url("../webfonts/fa-regular-400.svg#fontawesome") format("svg"); -} - -.far, -.actions .flag a:before { - font-family: 'Font Awesome 5 Free'; - font-weight: 400; -} - * { -webkit-box-sizing: border-box; box-sizing: border-box; @@ -6484,7 +6488,6 @@ a.btn:focus, input.btn:focus, button.btn:focus, a.button:focus { display: inline-block; font-style: normal; font-variant: normal; - font-weight: normal; line-height: 1; vertical-align: -.125em; padding-right: 5px; @@ -7316,7 +7319,6 @@ button.paragraphs-dropdown-action { display: inline-block; font-style: normal; font-variant: normal; - font-weight: normal; line-height: 1; vertical-align: -.125em; content: "\f15b"; @@ -7369,32 +7371,63 @@ button.paragraphs-dropdown-action { display: none; } -.actions .flag a:hover { +.actions .flag a:before { + line-height: 1; + padding-right: 5px; } -.actions .flag a:before { +.flag-ngf-save-content a:before { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; display: inline-block; font-style: normal; font-variant: normal; - font-weight: normal; line-height: 1; vertical-align: -.125em; + content: "\f02e"; +} + +.flag-ngf-save-content.action-unflag a:before { + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + display: inline-block; + font-style: normal; + font-variant: normal; line-height: 1; - padding-right: 5px; + vertical-align: -.125em; } -.actions .flag-ngf-save-content a:before { - content: "\f02e"; +.flag-ngf-follow-content.action a:before { + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + display: inline-block; + font-style: normal; + font-variant: normal; + line-height: 1; + vertical-align: -.125em; + content: "\f004"; } -.actions .flag-ngf-follow-content a:before { +.flag-ngf-follow-content.action-unflag a:before { + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + display: inline-block; + font-style: normal; + font-variant: normal; + line-height: 1; + vertical-align: -.125em; content: "\f004"; } -.actions .flag-ngf-report-content.action-unflag a:before, - .actions .flag-ngf-report-content.action-flag a:before { +.flag-ngf-report-content.action-unflag a:before, +.flag-ngf-report-content.action-flag a:before { + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + display: inline-block; + font-style: normal; + font-variant: normal; + line-height: 1; + vertical-align: -.125em; content: "\f12a"; } @@ -7600,7 +7633,6 @@ button.paragraphs-dropdown-action { display: inline-block; font-style: normal; font-variant: normal; - font-weight: normal; line-height: 1; vertical-align: -.125em; padding-right: 10px; @@ -7932,7 +7964,6 @@ a.logo__link span { display: inline-block; font-style: normal; font-variant: normal; - font-weight: normal; line-height: 1; vertical-align: -.125em; content: "\f00d"; @@ -8000,9 +8031,9 @@ a.logo__link span { height: 45px; width: 45px; font-size: 2.2rem; - font-weight: normal; text-align: left; padding: 12px; + font-weight: normal; } .navigation-menu__list li .create-new:before { @@ -8011,7 +8042,6 @@ a.logo__link span { display: inline-block; font-style: normal; font-variant: normal; - font-weight: normal; line-height: 1; vertical-align: -.125em; padding-right: 10px; @@ -8138,8 +8168,8 @@ a.logo__link span { border-bottom: none; } - .navigation-menu__list li.active .fas, .navigation-menu__list li.active .field-add-more-submit:before, .navigation-menu__list li.active .field--type-file .file:before, .field--type-file .navigation-menu__list li.active .file:before, .navigation-menu__list li.active .actions .flag-ngf-save-content.action-unflag a:before, .actions .flag-ngf-save-content.action-unflag .navigation-menu__list li.active a:before, .navigation-menu__list li.active .actions .flag-ngf-follow-content.action-unflag a:before, .actions .flag-ngf-follow-content.action-unflag .navigation-menu__list li.active a:before, .navigation-menu__list li.active .actions .flag-ngf-report-content.action-unflag a:before, .actions .flag-ngf-report-content.action-unflag .navigation-menu__list li.active a:before, - .navigation-menu__list li.active .actions .flag-ngf-report-content.action-flag a:before, .actions .flag-ngf-report-content.action-flag .navigation-menu__list li.active a:before, .navigation-menu__list li.active .ui-button .ui-icon:before, .ui-button .navigation-menu__list li.active .ui-icon:before, .navigation-menu__list li.active .create-new:before, .navigation-menu__list li.active .vud-widget-thumbs a.up.active:before, .vud-widget-thumbs .navigation-menu__list li.active a.up.active:before, + .navigation-menu__list li.active .fas, .navigation-menu__list li.active .field-add-more-submit:before, .navigation-menu__list li.active .field--type-file .file:before, .field--type-file .navigation-menu__list li.active .file:before, .navigation-menu__list li.active .flag-ngf-save-content.action-unflag a:before, .flag-ngf-save-content.action-unflag .navigation-menu__list li.active a:before, .navigation-menu__list li.active .flag-ngf-follow-content.action-unflag a:before, .flag-ngf-follow-content.action-unflag .navigation-menu__list li.active a:before, .navigation-menu__list li.active .flag-ngf-report-content.action-unflag a:before, .flag-ngf-report-content.action-unflag .navigation-menu__list li.active a:before, + .navigation-menu__list li.active .flag-ngf-report-content.action-flag a:before, .flag-ngf-report-content.action-flag .navigation-menu__list li.active a:before, .navigation-menu__list li.active .ui-button .ui-icon:before, .ui-button .navigation-menu__list li.active .ui-icon:before, .navigation-menu__list li.active .create-new:before, .navigation-menu__list li.active .vud-widget-thumbs a.up.active:before, .vud-widget-thumbs .navigation-menu__list li.active a.up.active:before, .navigation-menu__list li.active .vud-widget-thumbs a.up.inactive:before, .vud-widget-thumbs .navigation-menu__list li.active a.up.inactive:before, .navigation-menu__list li.active .vud-widget-thumbs a.down.active:before, .vud-widget-thumbs .navigation-menu__list li.active a.down.active:before, .navigation-menu__list li.active .vud-widget-thumbs a.down.inactive:before, .vud-widget-thumbs .navigation-menu__list li.active a.down.inactive:before { color: #ff397f; @@ -9085,7 +9115,6 @@ a.share { display: inline-block; font-style: normal; font-variant: normal; - font-weight: normal; line-height: 1; vertical-align: -.125em; content: "\f35b"; @@ -9099,7 +9128,6 @@ a.share { display: inline-block; font-style: normal; font-variant: normal; - font-weight: normal; line-height: 1; vertical-align: -.125em; content: "\f358"; diff --git a/sass/components/_flags.scss b/sass/components/_flags.scss index e4b9f6b..311752f 100644 --- a/sass/components/_flags.scss +++ b/sass/components/_flags.scss @@ -1,3 +1,4 @@ + .actions { background: $gray-100; border: 1px solid $gray-300; @@ -13,69 +14,61 @@ } .flag a { - /* - border: 1px solid $purple; - border-radius: 20px; - padding: 5px 10px; - background: $white; - */ box-shadow: none; span { display: none; } - &:hover { - /* border: 1px solid scale-lightness($blue, -40%); */ - } - &:before { - @include fa-icon; - @extend .far; line-height: 1; padding-right: 5px; } } +} - /* save content flag */ +/* save content flag */ - .flag-ngf-save-content a { - &:before { - content: fa-content($fa-var-bookmark); - } +.flag-ngf-save-content a { + &:before { + @include fa-icon; + @extend .far; + content: fa-content($fa-var-bookmark); } +} - .flag-ngf-save-content.action-unflag a { - &:before { - @extend .fas; - } +.flag-ngf-save-content.action-unflag a { + &:before { + @include fa-icon; + @extend .fas; } +} - /* follow content flag */ +/* follow content flag */ - .flag-ngf-follow-content a { - &:before { - content: fa-content($fa-var-heart); - } +.flag-ngf-follow-content.action a { + &:before { + @include fa-icon; + @extend .far; + content: fa-content($fa-var-heart); } +} - .flag-ngf-follow-content.action-unflag a { - &:before { - @extend .fas; - } +.flag-ngf-follow-content.action-unflag a { + &:before { + @include fa-icon; + @extend .fas; + content: fa-content($fa-var-heart); } +} - /* report content flag */ +/* report content flag */ - .flag-ngf-report-content.action-unflag a, - .flag-ngf-report-content.action-flag a { - &:before { - @extend .fas; - content: fa-content($fa-var-exclamation); - } +.flag-ngf-report-content.action-unflag a, +.flag-ngf-report-content.action-flag a { + &:before { + @include fa-icon; + @extend .fas; + content: fa-content($fa-var-exclamation); } } - - - - diff --git a/sass/components/_navigation.scss b/sass/components/_navigation.scss index 672fb15..8895e66 100644 --- a/sass/components/_navigation.scss +++ b/sass/components/_navigation.scss @@ -50,9 +50,9 @@ height: 45px; width: 45px; font-size: 2.2rem; - font-weight: normal; text-align: left; padding: 12px; + font-weight: normal; &:before { @include fa-icon; @extend .fas; diff --git a/sass/fontawesome/_mixins.scss b/sass/fontawesome/_mixins.scss index 50a2e9f..b99e699 100644 --- a/sass/fontawesome/_mixins.scss +++ b/sass/fontawesome/_mixins.scss @@ -7,7 +7,7 @@ display: inline-block; font-style: normal; font-variant: normal; - font-weight: normal; + /* font-weight: normal; */ line-height: 1; vertical-align: -.125em; } diff --git a/sass/style.scss b/sass/style.scss index 76b38f5..3b82805 100644 --- a/sass/style.scss +++ b/sass/style.scss @@ -4,8 +4,9 @@ @import "breakpoint"; @import "fontawesome/fontawesome.scss"; -@import "fontawesome/solid.scss"; @import "fontawesome/regular.scss"; +@import "fontawesome/solid.scss"; + // Import theme variables From 00a8abe20f06c75439dec96abfa1d67dade57982 Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Fri, 5 Oct 2018 18:28:30 +0200 Subject: [PATCH 186/200] NGF-413 fix for icon --- css/style.css | 10 +++++----- sass/components/_flags.scss | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/css/style.css b/css/style.css index ae0da53..1beae51 100644 --- a/css/style.css +++ b/css/style.css @@ -17,7 +17,7 @@ .vud-widget-thumbs a.down.inactive:before, .far, .flag-ngf-save-content a:before, -.flag-ngf-follow-content.action a:before, +.flag-ngf-follow-content a:before, .fal, .fab { -moz-osx-font-smoothing: grayscale; @@ -137,7 +137,7 @@ .vud-widget-thumbs a.fa-pull-left.down.inactive:before, .far.fa-pull-left, .flag-ngf-save-content a.fa-pull-left:before, -.flag-ngf-follow-content.action a.fa-pull-left:before, +.flag-ngf-follow-content a.fa-pull-left:before, .fal.fa-pull-left, .fab.fa-pull-left { margin-right: .3em; @@ -160,7 +160,7 @@ .vud-widget-thumbs a.fa-pull-right.down.inactive:before, .far.fa-pull-right, .flag-ngf-save-content a.fa-pull-right:before, -.flag-ngf-follow-content.action a.fa-pull-right:before, +.flag-ngf-follow-content a.fa-pull-right:before, .fal.fa-pull-right, .fab.fa-pull-right { margin-left: .3em; @@ -4884,7 +4884,7 @@ .far, .flag-ngf-save-content a:before, -.flag-ngf-follow-content.action a:before { +.flag-ngf-follow-content a:before { font-family: 'Font Awesome 5 Free'; font-weight: 400; } @@ -7397,7 +7397,7 @@ button.paragraphs-dropdown-action { vertical-align: -.125em; } -.flag-ngf-follow-content.action a:before { +.flag-ngf-follow-content a:before { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; display: inline-block; diff --git a/sass/components/_flags.scss b/sass/components/_flags.scss index 311752f..deafece 100644 --- a/sass/components/_flags.scss +++ b/sass/components/_flags.scss @@ -46,7 +46,7 @@ /* follow content flag */ -.flag-ngf-follow-content.action a { +.flag-ngf-follow-content a { &:before { @include fa-icon; @extend .far; From 660cfaaa939031963cbec05cfc1631043efe422c Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Mon, 8 Oct 2018 13:26:01 +0200 Subject: [PATCH 187/200] fox for social media icons box shadow --- css/style.css | 3 ++- sass/components/_social-share.scss | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/css/style.css b/css/style.css index 1beae51..bd3f6e6 100644 --- a/css/style.css +++ b/css/style.css @@ -9074,7 +9074,8 @@ header.profile .profile__actions a.profile__actions--add2list:before { font-size: 1.6rem; } -a.share { +a.share, +.social-auth.auth-link { -webkit-box-shadow: none; box-shadow: none; } diff --git a/sass/components/_social-share.scss b/sass/components/_social-share.scss index e04c34f..6e2bb20 100644 --- a/sass/components/_social-share.scss +++ b/sass/components/_social-share.scss @@ -1,3 +1,4 @@ -a.share { +a.share, +.social-auth.auth-link { box-shadow: none; } From 267f322f381b06648aab7bdc49eebb4227773da2 Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Mon, 8 Oct 2018 13:36:45 +0200 Subject: [PATCH 188/200] NGF-441 hide actions, vote, save, in discussion template --- templates/content/node--ngf-discussion.html.twig | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/templates/content/node--ngf-discussion.html.twig b/templates/content/node--ngf-discussion.html.twig index 1c57b90..1b8538a 100644 --- a/templates/content/node--ngf-discussion.html.twig +++ b/templates/content/node--ngf-discussion.html.twig @@ -123,15 +123,16 @@ {% endblock postinfo %} {# end block postinfo #} - {% if view_mode == "full" %} + {# {% if view_mode == "full" %}
    {{ content.field_ngf_vote }} - {# {{ content.voters }} #} + {{ content.voters }} {{ content.flag_ngf_follow_content }} {{ content.flag_ngf_save_content }} {{ content.flag_ngf_report_content }}
    {% endif %} + #} {# block coverimage #} {% block coverimage %} From 5b88a896e90eda28a60b51f9f81b9aad00a585d2 Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Mon, 8 Oct 2018 15:49:27 +0200 Subject: [PATCH 189/200] padding added main for chat demo + icon for users lists --- css/style.css | 4 ++-- sass/base/_base.scss | 5 +---- sass/components/_profile.scss | 9 ++++++++- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/css/style.css b/css/style.css index bd3f6e6..a660589 100644 --- a/css/style.css +++ b/css/style.css @@ -5074,7 +5074,7 @@ a:not(.toolbar-item):hover { main { display: block; margin-top: -18px; - padding: 0px 15px 75px 15px; + padding: 0px 60px 75px 15px; min-height: 100vh; background-color: #fff; } @@ -9034,7 +9034,7 @@ header.profile .profile__actions a.profile__actions--unfollow:before { } header.profile .profile__actions a.profile__actions--contact:before { - background-image: url(../images/profile--action__contact-sprite.svg); + background-image: url(../images/profile--action__add2list-sprite.svg); background-position: 0 0; } diff --git a/sass/base/_base.scss b/sass/base/_base.scss index 921073b..28d60dc 100644 --- a/sass/base/_base.scss +++ b/sass/base/_base.scss @@ -124,9 +124,6 @@ a:not(.toolbar-item) { border-bottom-right-radius: 0px; box-shadow: 0px 0px 25px rgba($black, 0.8); - main { - - } } &:after { clear: both; @@ -161,7 +158,7 @@ main { display: block; /* margin-top: -28px; */ margin-top: -18px; - padding: 0px 15px 75px 15px; + padding: 0px 60px 75px 15px; min-height: 100vh; background-color: #fff; } diff --git a/sass/components/_profile.scss b/sass/components/_profile.scss index 8e9f0a9..67d82c5 100644 --- a/sass/components/_profile.scss +++ b/sass/components/_profile.scss @@ -224,21 +224,28 @@ header.profile { background-image: url(../images/profile--action__join-sprite.svg); background-position: 0 0; } + &.profile__actions--leave:before{ background-image: url(../images/profile--action__join-sprite.svg); background-position: -38px 0; } + &.profile__actions--follow:before{ background-image: url(../images/profile--action__follow-sprite.svg); background-position: 0 0; } + &.profile__actions--unfollow:before{ background-image: url(../images/profile--action__follow-sprite.svg); background-position: -38px 0; } + &.profile__actions--contact:before{ - background-image: url(../images/profile--action__contact-sprite.svg); + /* background-image: url(../images/profile--action__contact-sprite.svg); + background-position: 0 0; */ + background-image: url(../images/profile--action__add2list-sprite.svg); background-position: 0 0; + } &.profile__actions--add2list:before{ background-image: url(../images/profile--action__add2list-sprite.svg); From 60dc578fe1419ebc8a5f3cd61a0aa3ea97a13825 Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Mon, 8 Oct 2018 15:59:51 +0200 Subject: [PATCH 190/200] remove padding on main --- css/style.css | 2 +- sass/base/_base.scss | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/css/style.css b/css/style.css index a660589..611c89d 100644 --- a/css/style.css +++ b/css/style.css @@ -5074,7 +5074,7 @@ a:not(.toolbar-item):hover { main { display: block; margin-top: -18px; - padding: 0px 60px 75px 15px; + padding: 0px 15px 75px 15px; min-height: 100vh; background-color: #fff; } diff --git a/sass/base/_base.scss b/sass/base/_base.scss index 28d60dc..56ffa20 100644 --- a/sass/base/_base.scss +++ b/sass/base/_base.scss @@ -158,7 +158,7 @@ main { display: block; /* margin-top: -28px; */ margin-top: -18px; - padding: 0px 60px 75px 15px; + padding: 0px 15px 75px 15px; min-height: 100vh; background-color: #fff; } From af8a3cfce241b4ad1a8028d96b73a00f2037c375 Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Mon, 8 Oct 2018 17:10:00 +0200 Subject: [PATCH 191/200] fix landscape version mobile phone footer --- css/style.css | 4 ++-- sass/components/_navigation.scss | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/css/style.css b/css/style.css index 611c89d..ab2deca 100644 --- a/css/style.css +++ b/css/style.css @@ -8087,12 +8087,12 @@ a.logo__link span { } @media (max-width: 767.98px) and (orientation: landscape) { - .navigation-menu { + .menu--main.navigation-menu { background-position: center bottom; background-size: 100vw 23vh; } - .navigation-menu__list { + .menu--main.navigation-menu__list { padding: 0; margin: 0vw 1vw 0; } diff --git a/sass/components/_navigation.scss b/sass/components/_navigation.scss index 8895e66..fceb090 100644 --- a/sass/components/_navigation.scss +++ b/sass/components/_navigation.scss @@ -100,7 +100,7 @@ } @media (max-width: 767.98px) and (orientation: landscape) { - .navigation-menu { + .menu--main.navigation-menu { background-position: center bottom; background-size: 100vw 23vh; From 07423f646a78a2d1ee2f0091d4497cbf327008b3 Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Mon, 8 Oct 2018 17:18:27 +0200 Subject: [PATCH 192/200] remove margin header on hp --- css/style.css | 4 ++++ sass/base/_base.scss | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/css/style.css b/css/style.css index ab2deca..383377d 100644 --- a/css/style.css +++ b/css/style.css @@ -4970,6 +4970,10 @@ h1, h2.page-title { margin-top: 0; } +.path-frontpage h3 { + margin: 0 0 0 0; +} + h1 + h2, h1 + h3, h1 + p, diff --git a/sass/base/_base.scss b/sass/base/_base.scss index 56ffa20..1c5eaf7 100644 --- a/sass/base/_base.scss +++ b/sass/base/_base.scss @@ -55,6 +55,10 @@ h1, h2.page-title { margin-top: 0; } +.path-frontpage h3 { + margin: 0 0 0 0; +} + h1 + h2, From 39f5016dfc4b52a50c21009d3854b31e7ad68aeb Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Mon, 8 Oct 2018 17:34:58 +0200 Subject: [PATCH 193/200] fix background image logo-area for mobile --- css/style.css | 6 ++++++ sass/components/_logo-area.scss | 30 ++++++++++++++++++------------ 2 files changed, 24 insertions(+), 12 deletions(-) diff --git a/css/style.css b/css/style.css index 383377d..a3bd8d3 100644 --- a/css/style.css +++ b/css/style.css @@ -7918,6 +7918,12 @@ a.logo__link span { } } +@media (max-width: 767.98px) and (orientation: landscape) { + .logo-area { + background-size: 100vw 25px, 100vw 19vh; + } +} + @media (min-width: 992px) { .logo-area { width: 25%; diff --git a/sass/components/_logo-area.scss b/sass/components/_logo-area.scss index e410ccb..9022706 100644 --- a/sass/components/_logo-area.scss +++ b/sass/components/_logo-area.scss @@ -38,12 +38,12 @@ a.logo__link { background-size: contain; background-repeat: no-repeat; width: calc(70vw - 15px); - max-width: 300px; + max-width: 300px; height: 0; padding-top: 13.6%; //width: 70vw; - //max-width: 300px; - + //max-width: 300px; + span { visibility: hidden; } @@ -51,7 +51,7 @@ a.logo__link { /*.logo--title { font-weight: $logo__font-weight; - color: $logo__color; + color: $logo__color; margin: 0; padding: 1.5vw; }*/ @@ -67,13 +67,13 @@ a.logo__link { width: 33%; padding: 15px; } - - + + h1.logo--title { margin: 0; padding: 0px; } - + a.logo__link { width: 100%; background-size: cover; @@ -81,21 +81,27 @@ a.logo__link { } +@media (max-width: 767.98px) and (orientation: landscape) { + .logo-area { + background-size: 100vw 25px, 100vw 19vh; + } +} + // Large devices (desktops, 992px and up) @media (min-width: 992px) { .logo-area { width: 25%; max-width: 300px; } - + h1.logo--title { - max-width: 270px; + max-width: 270px; } - - + + } // Extra large devices (large desktops, 1200px and up) @media (min-width: 1200px) { -} \ No newline at end of file +} From 7ef549852accbd5e404afbb96e5a79e888217c6b Mon Sep 17 00:00:00 2001 From: Peter Neyens Date: Tue, 9 Oct 2018 14:42:49 +0200 Subject: [PATCH 194/200] ids added to jump straight to a discussion --- templates/navigation/menu-local-tasks.html.twig | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/templates/navigation/menu-local-tasks.html.twig b/templates/navigation/menu-local-tasks.html.twig index e82e425..de3305b 100644 --- a/templates/navigation/menu-local-tasks.html.twig +++ b/templates/navigation/menu-local-tasks.html.twig @@ -11,13 +11,14 @@ * themed in menu-local-task.html.twig. */ #} + {% if primary %} -
    - {% if page.sidebar_first %} - - {% endif %} +
    - {% if page.sidebar_second %} - - {% endif %} + {# link is in html.html.twig #} +
    + {{ page.content }} +
    {# /.layout-content #} - {% if page.footer %} -
    - {{ page.footer }} -
    - {% endif %} +
    - + {% if page.footer %} +
    + {{ page.footer }} +
    + {% endif %} {# /.layout-container #} diff --git a/templates/layout/x_page.html.twig b/templates/layout/x_page.html.twig deleted file mode 100644 index b7b637f..0000000 --- a/templates/layout/x_page.html.twig +++ /dev/null @@ -1,77 +0,0 @@ -{# -/** - * @file - * Theme override to display a single page. - * - * The doctype, html, head and body tags are not in this template. Instead they - * can be found in the html.html.twig template in this directory. - * - * Available variables: - * - * General utility variables: - * - base_path: The base URL path of the Drupal installation. Will usually be - * "/" unless you have installed Drupal in a sub-directory. - * - is_front: A flag indicating if the current page is the front page. - * - logged_in: A flag indicating if the user is registered and signed in. - * - is_admin: A flag indicating if the user has permission to access - * administration pages. - * - * Site identity: - * - front_page: The URL of the front page. Use this instead of base_path when - * linking to the front page. This includes the language domain or prefix. - * - * Page content (in order of occurrence in the default page.html.twig): - * - node: Fully loaded node, if there is an automatically-loaded node - * associated with the page and the node ID is the second argument in the - * page's path (e.g. node/12345 and node/12345/revisions, but not - * comment/reply/12345). - * - * Regions: - * - page.header: Items for the header region. - * - page.primary_menu: Items for the primary menu region. - * - page.secondary_menu: Items for the secondary menu region. - * - page.highlighted: Items for the highlighted content region. - * - page.help: Dynamic help text, mostly for admin pages. - * - page.content: The main content of the current page. - * - page.sidebar_first: Items for the first sidebar. - * - page.sidebar_second: Items for the second sidebar. - * - page.footer: Items for the footer region. - * - page.breadcrumb: Items for the breadcrumb region. - * - * @see template_preprocess_page() - * @see html.html.twig - */ -#} -
    - -
    - {{ page.logo_area }} -
    - -
    - {{ page.header }} - - - - - -
    - -
    - - {# link is in html.html.twig #} -
    - {{ page.content }} -
    {# /.layout-content #} - -
    - - {% if page.footer %} - - {% endif %} - -
    {# /.layout-container #}