mirror of
https://github.com/Poniverse/Pony.fm.git
synced 2024-11-22 04:58:01 +01:00
#25: Emails are now fully integrated into the asset pipeline.
This commit is contained in:
parent
79e77a2da0
commit
f50be9de6f
24 changed files with 1175 additions and 4 deletions
3
.gitignore
vendored
3
.gitignore
vendored
|
@ -7,4 +7,5 @@ Homestead.yaml
|
||||||
.env
|
.env
|
||||||
.vagrant
|
.vagrant
|
||||||
_ide_helper.php
|
_ide_helper.php
|
||||||
.idea
|
.idea
|
||||||
|
resources/views/emails/build
|
||||||
|
|
14
README.md
14
README.md
|
@ -69,6 +69,20 @@ Finally, to compile and serve the assets in real time, run the following (and le
|
||||||
|
|
||||||
gulp watch
|
gulp watch
|
||||||
|
|
||||||
|
|
||||||
|
### Email templates
|
||||||
|
|
||||||
|
Pony.fm's email templates are based on the Sass version of
|
||||||
|
[ZURB's Foundation for Emails](http://foundation.zurb.com/emails/docs/index.html).
|
||||||
|
framework. This framework takes most of the pain out of HTML email markup - see
|
||||||
|
their site for the full documentation.
|
||||||
|
|
||||||
|
Email templates live in [the `resources/emails/src` directory](resources/emails/src).
|
||||||
|
Note that they are Handlebars templates which compile into Blade templates -
|
||||||
|
Pony.fm's asset pipeline automatically does this for you. Variables meant for
|
||||||
|
Blade need to be escaped with a backslash in the `.hbs` files (like so: `\{{ $myVariableName }}`).
|
||||||
|
|
||||||
|
|
||||||
Configuring the servers
|
Configuring the servers
|
||||||
-----------------------
|
-----------------------
|
||||||
|
|
||||||
|
|
140
gulpfile.js
140
gulpfile.js
|
@ -26,7 +26,15 @@ var gulp = require("gulp"),
|
||||||
webpackDevConfig = require("./webpack.dev.config.js"),
|
webpackDevConfig = require("./webpack.dev.config.js"),
|
||||||
webpackProductionConfig = require("./webpack.production.config.js"),
|
webpackProductionConfig = require("./webpack.production.config.js"),
|
||||||
webpackStream = require('webpack-stream'),
|
webpackStream = require('webpack-stream'),
|
||||||
_ = require("underscore");
|
_ = require("underscore"),
|
||||||
|
runSequence = require("run-sequence"),
|
||||||
|
rimraf = require("rimraf"),
|
||||||
|
panini = require("panini"),
|
||||||
|
inky = require("inky"),
|
||||||
|
fs = require("fs"),
|
||||||
|
siphon = require('siphon-media-query'),
|
||||||
|
lazypipe = require('lazypipe'),
|
||||||
|
ext_replace = require('gulp-ext-replace');
|
||||||
|
|
||||||
var plumberOptions = {
|
var plumberOptions = {
|
||||||
errorHandler: plug.notify.onError("Error: <%= error.message %>")
|
errorHandler: plug.notify.onError("Error: <%= error.message %>")
|
||||||
|
@ -55,6 +63,9 @@ var licenseHeader = [
|
||||||
].join('\n');
|
].join('\n');
|
||||||
|
|
||||||
|
|
||||||
|
const PRODUCTION = !!(argv.production);
|
||||||
|
|
||||||
|
|
||||||
gulp.task("webpack-build", function() {
|
gulp.task("webpack-build", function() {
|
||||||
return gulp.src(_.values(webpackProductionConfig.entry))
|
return gulp.src(_.values(webpackProductionConfig.entry))
|
||||||
.pipe(webpackStream(webpackProductionConfig))
|
.pipe(webpackStream(webpackProductionConfig))
|
||||||
|
@ -69,6 +80,8 @@ gulp.task("webpack-dev-server", function () {
|
||||||
|
|
||||||
new WebpackDevServer(compiler, {
|
new WebpackDevServer(compiler, {
|
||||||
// server and middleware options, currently blank
|
// server and middleware options, currently blank
|
||||||
|
// stats: {chunks: false}
|
||||||
|
stats: 'minimal'
|
||||||
}).listen(61999, "localhost", function (err) {
|
}).listen(61999, "localhost", function (err) {
|
||||||
if (err)
|
if (err)
|
||||||
throw new gutil.PluginError("webpack-dev-server", err);
|
throw new gutil.PluginError("webpack-dev-server", err);
|
||||||
|
@ -164,18 +177,139 @@ gulp.task('copy:templates', function () {
|
||||||
.pipe(gulp.dest('public/build/scripts'));
|
.pipe(gulp.dest('public/build/scripts'));
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//=============== ZURB Foundation Email stack =================//
|
||||||
|
|
||||||
|
// These tasks are adapted from ZURB's gulpfile (https://github.com/zurb/foundation-emails-template/blob/master/gulpfile.babel.js).
|
||||||
|
// They have been modified for ES5, Gulp 3 compatibility, and namespaced with "email-"
|
||||||
|
// to avoid collisions with Pony.fm's other Gulp tasks.
|
||||||
|
|
||||||
|
// Delete the "resources/views/emails/build" folder
|
||||||
|
// This happens every time a build starts
|
||||||
|
gulp.task("email-clean", function emailClean(done) {
|
||||||
|
rimraf('resources/views/emails/build', done);
|
||||||
|
});
|
||||||
|
|
||||||
|
// Compile layouts, pages, and partials into flat HTML files
|
||||||
|
// Then parse using Inky templates
|
||||||
|
gulp.task("email-pages", function emailPages() {
|
||||||
|
return gulp.src('resources/emails/src/pages/**/*.blade.php.hbs')
|
||||||
|
.pipe(panini({
|
||||||
|
root: 'resources/emails/src/pages',
|
||||||
|
layouts: 'resources/emails/src/layouts',
|
||||||
|
partials: 'resources/emails/src/partials',
|
||||||
|
helpers: 'resources/emails/src/helpers'
|
||||||
|
}))
|
||||||
|
.pipe(inky())
|
||||||
|
.pipe(ext_replace('.blade.php', '.blade.php.hbs'))
|
||||||
|
.pipe(gulp.dest('resources/views/emails/build'));
|
||||||
|
});
|
||||||
|
|
||||||
|
// Reset Panini's cache of layouts and partials
|
||||||
|
gulp.task("email-reset-pages", function emailResetPages(done) {
|
||||||
|
panini.refresh();
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
|
||||||
|
// Compile Sass into CSS
|
||||||
|
gulp.task("email-sass", function emailSass() {
|
||||||
|
return gulp.src('resources/emails/src/assets/scss/app.scss')
|
||||||
|
.pipe(plug.if(!PRODUCTION, plug.sourcemaps.init()))
|
||||||
|
.pipe(plug.sass({
|
||||||
|
includePaths: ['node_modules/foundation-emails/scss']
|
||||||
|
}).on('error', plug.sass.logError))
|
||||||
|
.pipe(plug.if(PRODUCTION, plug.uncss(
|
||||||
|
{
|
||||||
|
html: ['resources/views/emails/build/**/*.blade.php']
|
||||||
|
})))
|
||||||
|
.pipe(plug.if(!PRODUCTION, plug.sourcemaps.write()))
|
||||||
|
.pipe(gulp.dest('resources/views/emails/build/css'));
|
||||||
|
});
|
||||||
|
|
||||||
|
// Copy and compress images
|
||||||
|
gulp.task("email-images", function emailImages() {
|
||||||
|
return gulp.src('resources/emails/src/assets/img/**/*')
|
||||||
|
.pipe(plug.imagemin())
|
||||||
|
.pipe(gulp.dest('./resources/views/emails/build/assets/img'));
|
||||||
|
});
|
||||||
|
|
||||||
|
// Inline CSS and minify HTML
|
||||||
|
gulp.task("email-inline", function emailInline() {
|
||||||
|
return gulp.src('resources/views/emails/build/**/*.blade.php')
|
||||||
|
.pipe(plug.if(PRODUCTION, emailInliner('resources/views/emails/build/css/app.css')))
|
||||||
|
.pipe(gulp.dest('resources/views/emails/build'));
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
// Helper tasks for email watchers
|
||||||
|
gulp.task("email-rebuild-handlebars", function(callback){
|
||||||
|
runSequence("email-pages", "email-inline", callback);
|
||||||
|
});
|
||||||
|
gulp.task("email-rebuild-layouts", function(callback){
|
||||||
|
runSequence("email-reset-pages", "email-pages", "email-inline", callback);
|
||||||
|
});
|
||||||
|
gulp.task("email-rebuild-sass", function(callback){
|
||||||
|
runSequence("email-reset-pages", "email-sass", "email-pages", "email-inline", callback)
|
||||||
|
});
|
||||||
|
|
||||||
|
// Watch for file changes
|
||||||
|
gulp.task("email-watch", function (callback) {
|
||||||
|
gulp.watch('resources/emails/src/pages/**/*.blade.php.hbs', ["email-rebuild-handlebars"]);
|
||||||
|
gulp.watch(['resources/emails/src/layouts/**/*', 'resources/emails/src/partials/**/*'], ["email-rebuild-layouts"]);
|
||||||
|
gulp.watch(['resources/emails/src/assets/scss/**/*.scss'], ["email-rebuild-sass"]);
|
||||||
|
gulp.watch('resources/emails/src/assets/img/**/*', ["email-images"]);
|
||||||
|
callback();
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
// Inlines CSS into HTML, adds media query CSS into the <style> tag of the email, and compresses the HTML
|
||||||
|
function emailInliner(css) {
|
||||||
|
var css = fs.readFileSync(css).toString();
|
||||||
|
var mqCss = siphon(css);
|
||||||
|
|
||||||
|
return lazypipe()
|
||||||
|
.pipe(plug.inlineCss, {
|
||||||
|
applyStyleTags: false,
|
||||||
|
removeStyleTags: true,
|
||||||
|
preserveMediaQueries: true,
|
||||||
|
removeLinkTags: false
|
||||||
|
})
|
||||||
|
.pipe(plug.replace, '<!-- <style> -->', "<style>" + mqCss + "</style>")
|
||||||
|
.pipe(plug.replace, '<link rel="stylesheet" type="text/css" href="css/app.css">', '')
|
||||||
|
.pipe(plug.htmlmin, {
|
||||||
|
collapseWhitespace: true,
|
||||||
|
minifyCSS: true
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// Build the "resources/views/emails/build" folder by running all of the above tasks
|
||||||
|
gulp.task('email-build', function(callback){
|
||||||
|
runSequence("email-clean", "email-pages", "email-sass", "email-images", "email-inline", callback);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
// Build emails, run the server, and watch for file changes
|
||||||
|
gulp.task('email-default', function(callback) {
|
||||||
|
runSequence('email-build', "email-watch");
|
||||||
|
callback();
|
||||||
|
});
|
||||||
|
|
||||||
|
//=============== END Zurb Foundation Email stack =================//
|
||||||
|
|
||||||
gulp.task('build', [
|
gulp.task('build', [
|
||||||
'webpack-build',
|
'webpack-build',
|
||||||
'copy:templates',
|
'copy:templates',
|
||||||
'styles-app',
|
'styles-app',
|
||||||
'styles-embed'
|
'styles-embed',
|
||||||
|
'email-build'
|
||||||
]);
|
]);
|
||||||
|
|
||||||
gulp.task("watch-legacy", ["build"], function () {
|
gulp.task("watch-legacy", ["build"], function () {
|
||||||
gulp.watch("resources/assets/styles/**/*.{css,less}", ["styles-app"]);
|
gulp.watch("resources/assets/styles/**/*.{css,less}", ["styles-app"]);
|
||||||
});
|
});
|
||||||
|
|
||||||
gulp.task("watch", ["webpack-dev-server", "watch-legacy"], function () {});
|
gulp.task("watch", ["webpack-dev-server", "email-default", "watch-legacy"], function () {});
|
||||||
|
|
||||||
|
|
||||||
function endsWith(str, suffix) {
|
function endsWith(str, suffix) {
|
||||||
|
|
16
package.json
16
package.json
|
@ -16,23 +16,39 @@
|
||||||
"chart.js": "2.1.0",
|
"chart.js": "2.1.0",
|
||||||
"coffee-loader": "0.7.2",
|
"coffee-loader": "0.7.2",
|
||||||
"coffee-script": "1.10.0",
|
"coffee-script": "1.10.0",
|
||||||
|
"foundation-emails": "^2.2.1",
|
||||||
|
"fs": "0.0.1-security",
|
||||||
"gulp": "3.9.1",
|
"gulp": "3.9.1",
|
||||||
"gulp-angular-templatecache": "1.8.0",
|
"gulp-angular-templatecache": "1.8.0",
|
||||||
"gulp-autoprefixer": "3.1.0",
|
"gulp-autoprefixer": "3.1.0",
|
||||||
"gulp-cached": "1.1.0",
|
"gulp-cached": "1.1.0",
|
||||||
"gulp-clean-css": "2.0.10",
|
"gulp-clean-css": "2.0.10",
|
||||||
"gulp-concat": "2.6.0",
|
"gulp-concat": "2.6.0",
|
||||||
|
"gulp-ext-replace": "^0.3.0",
|
||||||
"gulp-header": "1.8.2",
|
"gulp-header": "1.8.2",
|
||||||
|
"gulp-htmlmin": "^3.0.0",
|
||||||
"gulp-if": "2.0.1",
|
"gulp-if": "2.0.1",
|
||||||
|
"gulp-imagemin": "^3.1.1",
|
||||||
|
"gulp-inject-string": "^1.1.0",
|
||||||
|
"gulp-inline-css": "^3.1.0",
|
||||||
"gulp-less": "3.1.0",
|
"gulp-less": "3.1.0",
|
||||||
"gulp-livereload": "3.8.1",
|
"gulp-livereload": "3.8.1",
|
||||||
"gulp-load-plugins": "1.2.4",
|
"gulp-load-plugins": "1.2.4",
|
||||||
"gulp-notify": "2.2.0",
|
"gulp-notify": "2.2.0",
|
||||||
"gulp-plumber": "1.1.0",
|
"gulp-plumber": "1.1.0",
|
||||||
|
"gulp-replace": "^0.5.4",
|
||||||
|
"gulp-sass": "^3.0.0",
|
||||||
"gulp-sourcemaps": "1.6.0",
|
"gulp-sourcemaps": "1.6.0",
|
||||||
|
"gulp-uncss": "^1.0.6",
|
||||||
"gulp-util": "3.0.7",
|
"gulp-util": "3.0.7",
|
||||||
|
"inky": "^1.3.7",
|
||||||
"jquery": "2.2.4",
|
"jquery": "2.2.4",
|
||||||
|
"lazypipe": "^1.0.1",
|
||||||
|
"panini": "^1.3.1",
|
||||||
|
"rimraf": "^2.5.4",
|
||||||
|
"run-sequence": "^1.2.2",
|
||||||
"script-loader": "0.7.0",
|
"script-loader": "0.7.0",
|
||||||
|
"siphon-media-query": "^1.0.0",
|
||||||
"underscore": "1.8.3",
|
"underscore": "1.8.3",
|
||||||
"webpack": "1.13.1",
|
"webpack": "1.13.1",
|
||||||
"webpack-dev-server": "1.14.1",
|
"webpack-dev-server": "1.14.1",
|
||||||
|
|
1
resources/emails/src/assets/img/.gitkeep
Normal file
1
resources/emails/src/assets/img/.gitkeep
Normal file
|
@ -0,0 +1 @@
|
||||||
|
# You can delete this file. It's just here to make Git happy.
|
147
resources/emails/src/assets/scss/_settings.scss
Normal file
147
resources/emails/src/assets/scss/_settings.scss
Normal file
|
@ -0,0 +1,147 @@
|
||||||
|
// Foundation for Emails Settings
|
||||||
|
// ------------------------------
|
||||||
|
//
|
||||||
|
// Table of Contents:
|
||||||
|
//
|
||||||
|
// 1. Global
|
||||||
|
// 2. Grid
|
||||||
|
// 3. Block Grid
|
||||||
|
// 4. Typography
|
||||||
|
// 5. Button
|
||||||
|
// 6. Callout
|
||||||
|
// 7. Menu
|
||||||
|
// 8. Thumbnail
|
||||||
|
|
||||||
|
|
||||||
|
// 1. Global
|
||||||
|
// ---------
|
||||||
|
|
||||||
|
$primary-color: #2199e8;
|
||||||
|
$secondary-color: #777777;
|
||||||
|
$success-color: #3adb76;
|
||||||
|
$warning-color: #ffae00;
|
||||||
|
$alert-color: #ec5840;
|
||||||
|
$light-gray: #f3f3f3;
|
||||||
|
$medium-gray: #cacaca;
|
||||||
|
$dark-gray: #8a8a8a;
|
||||||
|
$black: #0a0a0a;
|
||||||
|
$white: #fefefe;
|
||||||
|
$pre-color: #ff6908;
|
||||||
|
$global-width: 580px;
|
||||||
|
$global-width-small: 95%;
|
||||||
|
$global-gutter: 16px;
|
||||||
|
$body-background: $light-gray;
|
||||||
|
$container-background: $white;
|
||||||
|
$global-padding: 16px;
|
||||||
|
$global-margin: 16px;
|
||||||
|
$global-radius: 3px;
|
||||||
|
$global-rounded: 500px;
|
||||||
|
$global-breakpoint: $global-width + $global-gutter;
|
||||||
|
|
||||||
|
// 2. Grid
|
||||||
|
// -------
|
||||||
|
|
||||||
|
$grid-column-count: 12;
|
||||||
|
$column-padding-bottom: $global-padding;
|
||||||
|
$container-radius: 0;
|
||||||
|
|
||||||
|
// 3. Block Grid
|
||||||
|
// -------------
|
||||||
|
|
||||||
|
$block-grid-max: 8;
|
||||||
|
$block-grid-gutter: $global-gutter;
|
||||||
|
|
||||||
|
// 4. Typography
|
||||||
|
// -------------
|
||||||
|
|
||||||
|
$global-font-color: $black;
|
||||||
|
$body-font-family: Helvetica, Arial, sans-serif;
|
||||||
|
$global-font-weight: normal;
|
||||||
|
$header-color: inherit;
|
||||||
|
$global-line-height: 1.3;
|
||||||
|
$global-font-size: 16px;
|
||||||
|
$body-line-height: $global-line-height;
|
||||||
|
$header-font-family: $body-font-family;
|
||||||
|
$header-font-weight: $global-font-weight;
|
||||||
|
$h1-font-size: 34px;
|
||||||
|
$h2-font-size: 30px;
|
||||||
|
$h3-font-size: 28px;
|
||||||
|
$h4-font-size: 24px;
|
||||||
|
$h5-font-size: 20px;
|
||||||
|
$h6-font-size: 18px;
|
||||||
|
$header-margin-bottom: 10px;
|
||||||
|
$paragraph-margin-bottom: 10px;
|
||||||
|
$small-font-size: 80%;
|
||||||
|
$small-font-color: $medium-gray;
|
||||||
|
$lead-font-size: $global-font-size * 1.25;
|
||||||
|
$lead-line-height: 1.6;
|
||||||
|
$text-padding: 10px;
|
||||||
|
$subheader-lineheight: 1.4;
|
||||||
|
$subheader-color: $dark-gray;
|
||||||
|
$subheader-font-weight: $global-font-weight;
|
||||||
|
$subheader-margin-top: 4px;
|
||||||
|
$subheader-margin-bottom: 8px;
|
||||||
|
$hr-width: $global-width;
|
||||||
|
$hr-border: 1px solid $black;
|
||||||
|
$hr-margin: 20px auto;
|
||||||
|
$anchor-text-decoration: none;
|
||||||
|
$anchor-color: $primary-color;
|
||||||
|
$anchor-color-visited: $anchor-color;
|
||||||
|
$anchor-color-hover: darken($primary-color, 10%);
|
||||||
|
$anchor-color-active: $anchor-color-hover;
|
||||||
|
$stat-font-size: 40px;
|
||||||
|
|
||||||
|
// 5. Button
|
||||||
|
// ---------
|
||||||
|
|
||||||
|
$button-padding: (
|
||||||
|
tiny: 4px 8px 4px 8px,
|
||||||
|
small: 5px 10px 5px 10px,
|
||||||
|
default: 8px 16px 8px 16px,
|
||||||
|
large: 10px 20px 10px 20px,
|
||||||
|
);
|
||||||
|
$button-font-size: (
|
||||||
|
tiny: 10px,
|
||||||
|
small: 12px,
|
||||||
|
default: 16px,
|
||||||
|
large: 20px,
|
||||||
|
);
|
||||||
|
$button-color: $white;
|
||||||
|
$button-color-alt: $medium-gray;
|
||||||
|
$button-font-weight: bold;
|
||||||
|
$button-margin: 0 0 $global-margin 0;
|
||||||
|
$button-background: $primary-color;
|
||||||
|
$button-border: 2px solid $button-background;
|
||||||
|
$button-radius: $global-radius;
|
||||||
|
$button-rounded: $global-rounded;
|
||||||
|
|
||||||
|
// 6. Callout
|
||||||
|
// ----------
|
||||||
|
|
||||||
|
$callout-background: $white;
|
||||||
|
$callout-background-fade: 85%;
|
||||||
|
$callout-padding: 10px;
|
||||||
|
$callout-margin-bottom: $global-margin;
|
||||||
|
$callout-border: 1px solid darken($callout-background, 20%);
|
||||||
|
$callout-border-secondary: 1px solid darken($secondary-color, 20%);
|
||||||
|
$callout-border-success: 1px solid darken($success-color, 20%);
|
||||||
|
$callout-border-warning: 1px solid darken($warning-color, 20%);
|
||||||
|
$callout-border-alert: 1px solid darken($alert-color, 20%);
|
||||||
|
|
||||||
|
// 7. Menu
|
||||||
|
// -------
|
||||||
|
|
||||||
|
$menu-item-padding: 10px;
|
||||||
|
$menu-item-gutter: 10px;
|
||||||
|
$menu-item-color: $primary-color;
|
||||||
|
|
||||||
|
// 8. Thumbnail
|
||||||
|
// ------------
|
||||||
|
|
||||||
|
$thumbnail-border: solid 4px $white;
|
||||||
|
$thumbnail-margin-bottom: $global-margin;
|
||||||
|
$thumbnail-shadow: 0 0 0 1px rgba($black, 0.2);
|
||||||
|
$thumbnail-shadow-hover: 0 0 6px 1px rgba($primary-color, 0.5);
|
||||||
|
$thumbnail-transition: box-shadow 200ms ease-out;
|
||||||
|
$thumbnail-radius: $global-radius;
|
||||||
|
|
4
resources/emails/src/assets/scss/app.scss
Normal file
4
resources/emails/src/assets/scss/app.scss
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
@import 'settings';
|
||||||
|
@import 'foundation-emails';
|
||||||
|
|
||||||
|
@import 'template/template';
|
59
resources/emails/src/assets/scss/template/_template.scss
Normal file
59
resources/emails/src/assets/scss/template/_template.scss
Normal file
|
@ -0,0 +1,59 @@
|
||||||
|
// These are the styles to make some of the templates look extra nice.
|
||||||
|
// Feel free to remove these styles for production!
|
||||||
|
|
||||||
|
// Body Styles
|
||||||
|
body,
|
||||||
|
html,
|
||||||
|
.body {
|
||||||
|
background: #f3f3f3 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.container.header {
|
||||||
|
background: #f3f3f3;
|
||||||
|
}
|
||||||
|
|
||||||
|
.body-drip {
|
||||||
|
border-top: 8px solid #663399;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Full Width Headers
|
||||||
|
.header {
|
||||||
|
background: #8a8a8a;
|
||||||
|
}
|
||||||
|
|
||||||
|
.header .columns {
|
||||||
|
padding-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.header p {
|
||||||
|
color: #fff;
|
||||||
|
padding-top: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.header .wrapper-inner {
|
||||||
|
padding: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.header .container {
|
||||||
|
background: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Social Media
|
||||||
|
table.button.facebook table td {
|
||||||
|
background: #3B5998 !important;
|
||||||
|
border-color: #3B5998;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.button.twitter table td {
|
||||||
|
background: #1daced !important;
|
||||||
|
border-color: #1daced;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.button.google table td {
|
||||||
|
background: #DB4A39 !important;
|
||||||
|
border-color: #DB4A39;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wrapper.secondary {
|
||||||
|
background: #f3f3f3;
|
||||||
|
}
|
10
resources/emails/src/helpers/raw.js
Normal file
10
resources/emails/src/helpers/raw.js
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
/**
|
||||||
|
* Any code used inside this helper is ignored by Handlebars. Use it if your email service provider uses a Handlebars-like syntax.
|
||||||
|
* @example
|
||||||
|
* {{{{raw}}}}
|
||||||
|
* {{ this }} code won't be parsed.
|
||||||
|
* {{{{/raw}}}}
|
||||||
|
*/
|
||||||
|
module.exports = function(content) {
|
||||||
|
return content.fn();
|
||||||
|
}
|
28
resources/emails/src/layouts/default.hbs
Normal file
28
resources/emails/src/layouts/default.hbs
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
{{!-- This is the base layout for your project, and will be used on every page. --}}
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||||
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
|
||||||
|
<head>
|
||||||
|
<link rel="stylesheet" type="text/css" href="{{root}}css/app.css">
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||||
|
<meta name="viewport" content="width=device-width">
|
||||||
|
<title>{{subject}}</title>
|
||||||
|
<!-- <style> -->
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<span class="preheader">{{description}}</span>
|
||||||
|
<table class="body">
|
||||||
|
<tr>
|
||||||
|
<td class="center" align="center" valign="top">
|
||||||
|
<center>
|
||||||
|
{{!-- Pages you create in the src/pages/ folder are inserted here when the flattened emails are created. --}}
|
||||||
|
{{> body}}
|
||||||
|
</center>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<!-- prevent Gmail on iOS font size manipulation -->
|
||||||
|
<div style="display:none; white-space:nowrap; font:15px courier; line-height:0;"> </div>
|
||||||
|
</body>
|
||||||
|
</html>
|
30
resources/emails/src/layouts/index-layout.hbs
Normal file
30
resources/emails/src/layouts/index-layout.hbs
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
{{!-- This is the base layout for your project, and will be used on every page. --}}
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||||
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
|
||||||
|
<head>
|
||||||
|
<link rel="stylesheet" type="text/css" href="{{root}}css/app.css">
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||||
|
<meta name="viewport" content="width=device-width">
|
||||||
|
<title>{{subject}}</title>
|
||||||
|
<!-- <style> -->
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<span class="preheader">{{description}}</span>
|
||||||
|
<table class="body">
|
||||||
|
<tr>
|
||||||
|
<td class="center" align="center" valign="top">
|
||||||
|
<center>
|
||||||
|
|
||||||
|
{{> body}}
|
||||||
|
|
||||||
|
</center>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<!-- prevent Gmail on iOS font size manipulation -->
|
||||||
|
<div style="display:none; white-space:nowrap; font:15px courier; line-height:0;"> </div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
51
resources/emails/src/pages/basic.blade.php.hbs
Normal file
51
resources/emails/src/pages/basic.blade.php.hbs
Normal file
|
@ -0,0 +1,51 @@
|
||||||
|
---
|
||||||
|
subject: My Basic Email Template Subject
|
||||||
|
---
|
||||||
|
|
||||||
|
<wrapper class="header">
|
||||||
|
<container>
|
||||||
|
<row class="collapse">
|
||||||
|
<columns small="6">
|
||||||
|
<img src="http://placehold.it/200x50/663399">
|
||||||
|
</columns>
|
||||||
|
<columns small="6">
|
||||||
|
<p class="text-right">BASIC</p>
|
||||||
|
</columns>
|
||||||
|
</row>
|
||||||
|
</container>
|
||||||
|
</wrapper>
|
||||||
|
|
||||||
|
<container>
|
||||||
|
|
||||||
|
<spacer size="16"></spacer>
|
||||||
|
|
||||||
|
<row>
|
||||||
|
<columns small="12">
|
||||||
|
|
||||||
|
<h1>Hi, Susan Calvin</h1>
|
||||||
|
<p class="lead">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Magni, iste, amet consequatur a veniam.</p>
|
||||||
|
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ut optio nulla et, fugiat. Maiores accusantium nostrum asperiores provident, quam modi ex inventore dolores id aspernatur architecto odio minima perferendis, explicabo. Lorem ipsum dolor sit amet, consectetur adipisicing elit. Minima quos quasi itaque beatae natus fugit provident delectus, magnam laudantium odio corrupti sit quam. Optio aut ut repudiandae velit distinctio asperiores?</p>
|
||||||
|
<callout class="primary">
|
||||||
|
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Reprehenderit repellendus natus, sint ea optio dignissimos asperiores inventore a molestiae dolorum placeat repellat excepturi mollitia ducimus unde doloremque ad, alias eos!</p>
|
||||||
|
</callout>
|
||||||
|
</columns>
|
||||||
|
</row>
|
||||||
|
<wrapper class="secondary">
|
||||||
|
|
||||||
|
<spacer size="16"></spacer>
|
||||||
|
|
||||||
|
<row>
|
||||||
|
<columns large="6">
|
||||||
|
<h5>Connect With Us:</h5>
|
||||||
|
<button class="facebook expand" href="http://zurb.com">Facebook</button>
|
||||||
|
<button class="twitter expand" href="http://zurb.com">Twitter</button>
|
||||||
|
<button class="google expand" href="http://zurb.com">Google+</button>
|
||||||
|
</columns>
|
||||||
|
<columns large="6">
|
||||||
|
<h5>Contact Info:</h5>
|
||||||
|
<p>Phone: 408-341-0600</p>
|
||||||
|
<p>Email: <a href="mailto:foundation@zurb.com">foundation@zurb.com</a></p>
|
||||||
|
</columns>
|
||||||
|
</row>
|
||||||
|
</wrapper>
|
||||||
|
</container>
|
60
resources/emails/src/pages/drip.blade.php.hbs
Normal file
60
resources/emails/src/pages/drip.blade.php.hbs
Normal file
|
@ -0,0 +1,60 @@
|
||||||
|
---
|
||||||
|
subject: My Drip Email Template Subject
|
||||||
|
---
|
||||||
|
|
||||||
|
<container class="header">
|
||||||
|
<row class="collapse">
|
||||||
|
<columns>
|
||||||
|
<img src="http://placehold.it/150x30/663399" alt="">
|
||||||
|
</columns>
|
||||||
|
</row>
|
||||||
|
</container>
|
||||||
|
|
||||||
|
<spacer size="16"></spacer>
|
||||||
|
|
||||||
|
<container class="body-drip">
|
||||||
|
|
||||||
|
<spacer size="16"></spacer>
|
||||||
|
|
||||||
|
<center>
|
||||||
|
<img src="http://placehold.it/120/663399" alt="">
|
||||||
|
</center>
|
||||||
|
|
||||||
|
<spacer size="16"></spacer>
|
||||||
|
|
||||||
|
<row>
|
||||||
|
<columns>
|
||||||
|
<h4 class="text-center">Responsive Emails</h4>
|
||||||
|
<p class="text-center">15 sections | 567 Min</p>
|
||||||
|
</columns>
|
||||||
|
</row>
|
||||||
|
|
||||||
|
<hr/>
|
||||||
|
|
||||||
|
<row>
|
||||||
|
<columns>
|
||||||
|
<p class="text-center">Hey you! It's you! Just a heads up, we just added this hot new class that will teach you how to NOT be a lame as a duck. Not the metaphorical lame duck, either, but a real duck that was actually lame, maybe from stepping on a land mine or something. Anyways, Foundation for Emails makes coding HTML emails like calling the Navy SEALS to invade a Pre-school, with pre-schoolers, armed with Crayolas.</p>
|
||||||
|
<center>
|
||||||
|
<button href="#" class="success">Get smarter now ↣</button>
|
||||||
|
</center>
|
||||||
|
</columns>
|
||||||
|
</row>
|
||||||
|
|
||||||
|
<row class="collapsed footer">
|
||||||
|
<columns>
|
||||||
|
<spacer size="16"></spacer>
|
||||||
|
<p class="text-center">@copywrite nobody<br/>
|
||||||
|
<a href="#">hello@nocopywrite.com</a> | <a href="#">Manage Email Notifications</a> | <a href="#">Unsubscribe</a></p>
|
||||||
|
<center>
|
||||||
|
<menu>
|
||||||
|
<item><img src="http://placehold.it/25/663399" alt=""></item>
|
||||||
|
<item><img src="http://placehold.it/25/663399" alt=""></item>
|
||||||
|
<item><img src="http://placehold.it/25/663399" alt=""></item>
|
||||||
|
<item><img src="http://placehold.it/25/663399" alt=""></item>
|
||||||
|
<item><img src="http://placehold.it/25/663399" alt=""></item>
|
||||||
|
</menu>
|
||||||
|
</center>
|
||||||
|
</columns>
|
||||||
|
</row>
|
||||||
|
|
||||||
|
</container>
|
65
resources/emails/src/pages/hero.blade.php.hbs
Normal file
65
resources/emails/src/pages/hero.blade.php.hbs
Normal file
|
@ -0,0 +1,65 @@
|
||||||
|
---
|
||||||
|
subject: My Hero Email Template Subject
|
||||||
|
---
|
||||||
|
|
||||||
|
<wrapper class="header">
|
||||||
|
<container>
|
||||||
|
<row class="collapse">
|
||||||
|
<columns small="6">
|
||||||
|
<img src="http://placehold.it/200x50/663399">
|
||||||
|
</columns>
|
||||||
|
<columns small="6">
|
||||||
|
<p class="text-right">HERO</p>
|
||||||
|
</columns>
|
||||||
|
</row>
|
||||||
|
</container>
|
||||||
|
</wrapper>
|
||||||
|
|
||||||
|
<container>
|
||||||
|
|
||||||
|
<spacer size="16"></spacer>
|
||||||
|
|
||||||
|
<row>
|
||||||
|
<columns small="12">
|
||||||
|
<h1>Hi, Elijah Baily</h1>
|
||||||
|
<p class="lead">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Nisi impedit sapiente delectus molestias quia.</p>
|
||||||
|
<img src="http://placehold.it/580x300" alt="">
|
||||||
|
<callout class="primary">
|
||||||
|
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Veniam assumenda, praesentium qui vitae voluptate dolores. <a href="#">Click it!</a></p>
|
||||||
|
</callout>
|
||||||
|
<h2>Title Ipsum <small>This is a note.</small></h2>
|
||||||
|
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Nisi repellat, harum. Quas nobis id aut, aspernatur, sequi tempora laborum corporis cum debitis, ullam, dolorem dolore quisquam aperiam! Accusantium, ullam, nesciunt. Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ducimus consequuntur commodi, aut sed, quas quam optio accusantium recusandae nesciunt, architecto veritatis. Voluptatibus sunt esse dolor ipsum voluptates, assumenda quisquam.</p>
|
||||||
|
|
||||||
|
<button class="large secondary" href="#">Click Me!</button>
|
||||||
|
|
||||||
|
</columns>
|
||||||
|
</row>
|
||||||
|
|
||||||
|
<wrapper class="secondary">
|
||||||
|
|
||||||
|
<spacer size="16"></spacer>
|
||||||
|
|
||||||
|
<row>
|
||||||
|
<columns large="6">
|
||||||
|
<h5>Connect With Us:</h5>
|
||||||
|
<button class="facebook expand" href="#">Facebook</button>
|
||||||
|
<button class="twitter expand" href="#">Twitter</button>
|
||||||
|
<button class="google expand" href="#">Google+</button>
|
||||||
|
</columns>
|
||||||
|
<columns large="6">
|
||||||
|
<h5>Contact Info:</h5>
|
||||||
|
<p>Phone: 408-341-0600</p>
|
||||||
|
<p>Email: <a href="mailto:foundation@zurb.com">foundation@zurb.com</a></p>
|
||||||
|
</columns>
|
||||||
|
</row>
|
||||||
|
</wrapper>
|
||||||
|
|
||||||
|
<center>
|
||||||
|
<menu>
|
||||||
|
<item href="#">Terms</item>
|
||||||
|
<item href="#">Privacy</item>
|
||||||
|
<item href="#">Unsubscribe</item>
|
||||||
|
</menu>
|
||||||
|
</center>
|
||||||
|
|
||||||
|
</container>
|
55
resources/emails/src/pages/index.blade.php.hbs
Normal file
55
resources/emails/src/pages/index.blade.php.hbs
Normal file
|
@ -0,0 +1,55 @@
|
||||||
|
---
|
||||||
|
layout: index-layout
|
||||||
|
subject: My Email Templates
|
||||||
|
---
|
||||||
|
|
||||||
|
<spacer size="16"></spacer>
|
||||||
|
|
||||||
|
<container>
|
||||||
|
|
||||||
|
<spacer size="24"></spacer>
|
||||||
|
|
||||||
|
<row>
|
||||||
|
<columns small="12">
|
||||||
|
|
||||||
|
<p class="lead">Hi there!</p>
|
||||||
|
<p style="color: #484848; line-height: 1.5;">Thanks for downloading <a href="http://foundation.zurb.com/emails/docs/">Foundation for Emails!</a> Your days of coding up painful HTML emails are officially over. You’ll soon be cranking out some slick, responsive emails in no time! To help get you up and running, we've put together 11 templates for the most common email use cases including newsletters, transactional emails, and marketing blasts. Feel free to customize them to your hearts content.</p>
|
||||||
|
|
||||||
|
<spacer size="16"></spacer>
|
||||||
|
|
||||||
|
<center>
|
||||||
|
<menu class="vertical">
|
||||||
|
<item href="{{root}}basic.html" target="_blank">Basic Template</item>
|
||||||
|
<item href="{{root}}drip.html" target="_blank">Drip Template</item>
|
||||||
|
<item href="{{root}}hero.html" target="_blank">Hero Template</item>
|
||||||
|
<item href="{{root}}marketing.html" target="_blank">Marketing Template</item>
|
||||||
|
<item href="{{root}}newsletter.html" target="_blank">Newsletter Template</item>
|
||||||
|
<item href="{{root}}newsletter-2.html" target="_blank">Newsletter 2 Template</item>
|
||||||
|
<item href="{{root}}order.html" target="_blank">Order Template</item>
|
||||||
|
<item href="{{root}}password.html" target="_blank">Password Template</item>
|
||||||
|
<item href="{{root}}sidebar.html" target="_blank">Sidebar Template</item>
|
||||||
|
<item href="{{root}}sidebar-hero.html" target="_blank">Sidebar Hero Template</item>
|
||||||
|
<item href="{{root}}welcome.html" target="_blank">Welcome Template</item>
|
||||||
|
</menu>
|
||||||
|
</center>
|
||||||
|
|
||||||
|
<spacer size="16"></spacer>
|
||||||
|
|
||||||
|
<p>Happy Coding,</p>
|
||||||
|
<p>The Foundation Team</p>
|
||||||
|
|
||||||
|
|
||||||
|
<spacer size="16"></spacer>
|
||||||
|
|
||||||
|
</columns>
|
||||||
|
</row>
|
||||||
|
</container>
|
||||||
|
|
||||||
|
<spacer size="16"></spacer>
|
||||||
|
|
||||||
|
<center>
|
||||||
|
<small>Keep on keepin' on. <3 <a style="color: #cacaca; text-decoration: underline;" href="http://zurb.com/">ZURB</a> </small>
|
||||||
|
</center>
|
||||||
|
|
||||||
|
<spacer size="16"></spacer>
|
||||||
|
|
81
resources/emails/src/pages/marketing.blade.php.hbs
Normal file
81
resources/emails/src/pages/marketing.blade.php.hbs
Normal file
|
@ -0,0 +1,81 @@
|
||||||
|
---
|
||||||
|
subject: My Marketing Email Template Subject
|
||||||
|
---
|
||||||
|
|
||||||
|
<container>
|
||||||
|
<row>
|
||||||
|
<columns large="4">
|
||||||
|
<center>
|
||||||
|
<img src="http://placehold.it/125x200">
|
||||||
|
</center>
|
||||||
|
</columns>
|
||||||
|
<columns large="8">
|
||||||
|
<h1>Do Something Radical With This App.</h1>
|
||||||
|
<button class="large" href="#">Sign Up</button>
|
||||||
|
</columns>
|
||||||
|
</row>
|
||||||
|
|
||||||
|
<spacer size="16"></spacer>
|
||||||
|
|
||||||
|
<row>
|
||||||
|
<columns>
|
||||||
|
<h3 class="text-center">It's Never Been Easier to Do Things.</h3>
|
||||||
|
<p class="text-center">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Consequatur pariatur unde magni repudiandae totam, accusamus facere eligendi. Ad nobis eius porro saepe et ab, aliquid, sed mollitia cumque suscipit aperiam.</p>
|
||||||
|
</columns>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<columns large="4">
|
||||||
|
<center>
|
||||||
|
<img src="http://placehold.it/50x50">
|
||||||
|
</center>
|
||||||
|
<h5 class="text-center">Feature One</h5>
|
||||||
|
<p class="text-center">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Rerum, quod quam unde earum.</p>
|
||||||
|
</columns>
|
||||||
|
<columns large="4">
|
||||||
|
<center>
|
||||||
|
<img src="http://placehold.it/50x50">
|
||||||
|
</center>
|
||||||
|
<h5 class="text-center">Feature Two</h5>
|
||||||
|
<p class="text-center">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Rerum, quod quam unde earum.</p>
|
||||||
|
</columns>
|
||||||
|
<columns large="4">
|
||||||
|
<center>
|
||||||
|
<img src="http://placehold.it/50x50">
|
||||||
|
</center>
|
||||||
|
<h5 class="text-center">Feature Three</h5>
|
||||||
|
<p class="text-center">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Rerum, quod quam unde earum.</p>
|
||||||
|
</columns>
|
||||||
|
</row>
|
||||||
|
|
||||||
|
<spacer size="16"></spacer>
|
||||||
|
|
||||||
|
<row>
|
||||||
|
<columns>
|
||||||
|
<h3 class="text-center">What Are You Waiting For? Get Started Today.</h3>
|
||||||
|
|
||||||
|
<spacer size="16"></spacer>
|
||||||
|
|
||||||
|
<button class="large expand" href="#">Sign Up</button>
|
||||||
|
</columns>
|
||||||
|
</row>
|
||||||
|
|
||||||
|
<row class="collapsed footer">
|
||||||
|
<columns>
|
||||||
|
<spacer size="16"></spacer>
|
||||||
|
<p class="text-center">@copywrite nobody<br/>
|
||||||
|
<a href="#">hello@nocopywrite.com</a> | <a href="#">Manage Email Notifications</a> | <a href="#">Unsubscribe</a></p>
|
||||||
|
<center>
|
||||||
|
<menu>
|
||||||
|
<item><img src="http://placehold.it/25" alt=""></item>
|
||||||
|
<item><img src="http://placehold.it/25" alt=""></item>
|
||||||
|
<item><img src="http://placehold.it/25" alt=""></item>
|
||||||
|
<item><img src="http://placehold.it/25" alt=""></item>
|
||||||
|
<item><img src="http://placehold.it/25" alt=""></item>
|
||||||
|
</menu>
|
||||||
|
</center>
|
||||||
|
</columns>
|
||||||
|
</row>
|
||||||
|
|
||||||
|
<spacer size="16"></spacer>
|
||||||
|
|
||||||
|
</container>
|
43
resources/emails/src/pages/newsletter-2.blade.php.hbs
Normal file
43
resources/emails/src/pages/newsletter-2.blade.php.hbs
Normal file
|
@ -0,0 +1,43 @@
|
||||||
|
---
|
||||||
|
subject: My Other Newsletter Email Template Subject
|
||||||
|
---
|
||||||
|
|
||||||
|
<container>
|
||||||
|
|
||||||
|
<spacer size="16"></spacer>
|
||||||
|
|
||||||
|
<row>
|
||||||
|
<columns>
|
||||||
|
<center>
|
||||||
|
<img src="http://placehold.it/548x200">
|
||||||
|
</center>
|
||||||
|
</columns>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<columns large="8">
|
||||||
|
<h2>This is a title</h2>
|
||||||
|
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quam at, nihil quas harum mollitia dolores odio. Inventore delectus nihil soluta quos, magni doloribus, voluptas aspernatur explicabo atque perspiciatis possimus voluptates.</p>
|
||||||
|
<p><a href="#">Learn more</a></p>
|
||||||
|
</columns>
|
||||||
|
<columns large="4">
|
||||||
|
<img class="small-float-center" src="http://placehold.it/170x129" alt="">
|
||||||
|
</columns>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<columns large="6">
|
||||||
|
<h4>Sub Section Title</h4>
|
||||||
|
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quod eum eius numquam sint dolore voluptatibus beatae ab ad, dignissimos fugiat? Nisi odio commodi debitis eveniet tenetur provident aliquid tempora placeat.</p>
|
||||||
|
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quod eum eius numquam sint dolore voluptatibus beatae ab ad, dignissimos fugiat? Nisi odio commodi debitis eveniet tenetur provident aliquid tempora placeat.</p>
|
||||||
|
</columns>
|
||||||
|
<columns large="6">
|
||||||
|
<h4>Sub Section Title</h4>
|
||||||
|
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quod eum eius numquam sint dolore voluptatibus beatae ab ad, dignissimos fugiat? Nisi odio commodi debitis eveniet tenetur provident aliquid tempora placeat.</p>
|
||||||
|
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quod eum eius numquam sint dolore voluptatibus beatae ab ad, dignissimos fugiat? Nisi odio commodi debitis eveniet tenetur provident aliquid tempora placeat.</p>
|
||||||
|
</columns>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<columns>
|
||||||
|
<p>You received this email because you're signed up to receive updates from us. <a href="#">Click here to unsubscribe.</a></p>
|
||||||
|
</columns>
|
||||||
|
</row>
|
||||||
|
</container>
|
44
resources/emails/src/pages/newsletter.blade.php.hbs
Normal file
44
resources/emails/src/pages/newsletter.blade.php.hbs
Normal file
|
@ -0,0 +1,44 @@
|
||||||
|
---
|
||||||
|
subject: My Newsletter Email Template Subject
|
||||||
|
---
|
||||||
|
|
||||||
|
<container>
|
||||||
|
|
||||||
|
<spacer size="16"></spacer>
|
||||||
|
|
||||||
|
<row>
|
||||||
|
<columns>
|
||||||
|
<h1 class="text-center">The Insider</h1>
|
||||||
|
<center>
|
||||||
|
<img src="http://placehold.it/500x200">
|
||||||
|
</center>
|
||||||
|
|
||||||
|
<spacer size="16"></spacer>
|
||||||
|
|
||||||
|
<p class="lead">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ipsa itaque illo doloribus soluta expedita dolores commodi fuga odit.</p>
|
||||||
|
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Architecto reiciendis eos magni deleniti accusamus tempore, consectetur! Maxime amet, exercitationem nihil fugit eius esse voluptatum ab incidunt minima, saepe reiciendis ipsum.</p>
|
||||||
|
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Architecto reiciendis eos magni deleniti accusamus tempore, consectetur! Maxime amet, exercitationem nihil fugit eius esse voluptatum ab incidunt minima, saepe reiciendis ipsum.</p>
|
||||||
|
|
||||||
|
<row>
|
||||||
|
<columns large="6">
|
||||||
|
<h4>More Reading:</h4>
|
||||||
|
<ul>
|
||||||
|
<li><a href="#">Lorem Ipsum Dolor Sit Amet</a></li>
|
||||||
|
<li><a href="#">Lorem Ipsum Dolor Sit Amet</a></li>
|
||||||
|
<li><a href="#">Lorem Ipsum Dolor Sit Amet</a></li>
|
||||||
|
</ul>
|
||||||
|
</columns>
|
||||||
|
<columns>
|
||||||
|
<h4>Get Involved:</h4>
|
||||||
|
<ul>
|
||||||
|
<li><a href="#">Facebook</a></li>
|
||||||
|
<li><a href="#">Twitter</a></li>
|
||||||
|
<li><a href="#">Instagram</a></li>
|
||||||
|
</ul>
|
||||||
|
</columns>
|
||||||
|
</row>
|
||||||
|
|
||||||
|
<p><small>You received this email because you're signed up to get updates from us. <a href="#">Click here to unsubscribe.</a></small></p>
|
||||||
|
</columns>
|
||||||
|
</row>
|
||||||
|
</container>
|
86
resources/emails/src/pages/order.blade.php.hbs
Normal file
86
resources/emails/src/pages/order.blade.php.hbs
Normal file
|
@ -0,0 +1,86 @@
|
||||||
|
<style type="text/css">
|
||||||
|
body,
|
||||||
|
html,
|
||||||
|
.body {
|
||||||
|
background: #f3f3f3 !important;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<container>
|
||||||
|
|
||||||
|
<spacer size="16"></spacer>
|
||||||
|
|
||||||
|
<row>
|
||||||
|
<columns>
|
||||||
|
<h1>Thanks for your order.</h1>
|
||||||
|
<p>Thanks for shopping with us! Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ad earum ducimus, non, eveniet neque dolores voluptas architecto sed, voluptatibus aut dolorem odio. Cupiditate a recusandae, illum cum voluptatum modi nostrum.</p>
|
||||||
|
|
||||||
|
<spacer size="16"></spacer>
|
||||||
|
|
||||||
|
<callout class="secondary">
|
||||||
|
<row>
|
||||||
|
<columns large="6">
|
||||||
|
<p>
|
||||||
|
<strong>Payment Method</strong><br/>
|
||||||
|
Dubloons
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<strong>Email Address</strong><br/>
|
||||||
|
thecapn@pirates.org
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<strong>Order ID</strong><br/>
|
||||||
|
239235983749636
|
||||||
|
</p>
|
||||||
|
</columns>
|
||||||
|
<columns large="6">
|
||||||
|
<p>
|
||||||
|
<strong>Shipping Method</strong><br/>
|
||||||
|
Boat (1–2 weeks)<br/>
|
||||||
|
<strong>Shipping Address</strong><br/>
|
||||||
|
Captain Price<br/>
|
||||||
|
123 Maple Rd<br/>
|
||||||
|
Campbell, CA 95112
|
||||||
|
</p>
|
||||||
|
</columns>
|
||||||
|
</row>
|
||||||
|
</callout>
|
||||||
|
|
||||||
|
<h4>Order Details</h4>
|
||||||
|
|
||||||
|
<table>
|
||||||
|
<tr><th>Item</th><th>#</th><th>Price</th></tr>
|
||||||
|
<tr><td>Ship's Cannon</td><td>2</td><td>$100</td></tr>
|
||||||
|
<tr><td>Ship's Cannon</td><td>2</td><td>$100</td></tr>
|
||||||
|
<tr><td>Ship's Cannon</td><td>2</td><td>$100</td></tr>
|
||||||
|
<tr>
|
||||||
|
<td colspan="2"><b>Subtotal:</b></td>
|
||||||
|
<td>$600</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<hr/>
|
||||||
|
|
||||||
|
<h4>What's Next?</h4>
|
||||||
|
|
||||||
|
<p>Our carrier raven will prepare your order for delivery. Lorem ipsum dolor sit amet, consectetur adipisicing elit. Modi necessitatibus itaque debitis laudantium doloribus quasi nostrum distinctio suscipit, magni soluta eius animi voluptatem qui velit eligendi quam praesentium provident culpa?</p>
|
||||||
|
</columns>
|
||||||
|
</row>
|
||||||
|
<row class="footer text-center">
|
||||||
|
<columns large="3">
|
||||||
|
<img src="http://placehold.it/170x30" alt="">
|
||||||
|
</columns>
|
||||||
|
<columns large="3">
|
||||||
|
<p>
|
||||||
|
Call us at 800.555.1923<br/>
|
||||||
|
Email us at support@discount.boat
|
||||||
|
</p>
|
||||||
|
</columns>
|
||||||
|
<columns large="3">
|
||||||
|
<p>
|
||||||
|
123 Maple Rd<br/>
|
||||||
|
Campbell, CA 95112
|
||||||
|
</p>
|
||||||
|
</columns>
|
||||||
|
</row>
|
||||||
|
</container>
|
40
resources/emails/src/pages/password.blade.php.hbs
Normal file
40
resources/emails/src/pages/password.blade.php.hbs
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
---
|
||||||
|
subject: My Password Email Template Subject
|
||||||
|
---
|
||||||
|
|
||||||
|
<container>
|
||||||
|
|
||||||
|
<row class="header">
|
||||||
|
<columns>
|
||||||
|
|
||||||
|
<spacer size="16"></spacer>
|
||||||
|
|
||||||
|
<h4 class="text-center">Pirate Retirement Services</h4>
|
||||||
|
</columns>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<columns>
|
||||||
|
|
||||||
|
<spacer size="32"></spacer>
|
||||||
|
|
||||||
|
<center>
|
||||||
|
<img src="http://placehold.it/250x250">
|
||||||
|
</center>
|
||||||
|
|
||||||
|
<spacer size="16"></spacer>
|
||||||
|
|
||||||
|
<h1 class="text-center">Forgot Your Password?</h1>
|
||||||
|
|
||||||
|
<spacer size="16"></spacer>
|
||||||
|
|
||||||
|
<p class="text-center">It happens. Click the link below to reset your password.</p>
|
||||||
|
<button class="large expand" href="#">Reset Password</button>
|
||||||
|
|
||||||
|
<hr/>
|
||||||
|
|
||||||
|
<p><small>You're getting this email because you've signed up for email updates. If you want to opt-out of future emails, <a href="#">unsubscribe here</a>.</small></p>
|
||||||
|
</columns>
|
||||||
|
</row>
|
||||||
|
|
||||||
|
<spacer size="16"></spacer>
|
||||||
|
</container>
|
80
resources/emails/src/pages/sidebar-hero.blade.php.hbs
Normal file
80
resources/emails/src/pages/sidebar-hero.blade.php.hbs
Normal file
|
@ -0,0 +1,80 @@
|
||||||
|
---
|
||||||
|
subject: My Sidebar Hero Email Template Subject
|
||||||
|
---
|
||||||
|
|
||||||
|
<wrapper class="header">
|
||||||
|
<container>
|
||||||
|
<row class="collapse">
|
||||||
|
<columns small="6">
|
||||||
|
<img src="http://placehold.it/200x50/663399">
|
||||||
|
</columns>
|
||||||
|
<columns small="6">
|
||||||
|
<p class="text-right">SIDEBAR HERO</p>
|
||||||
|
</columns>
|
||||||
|
</row>
|
||||||
|
</container>
|
||||||
|
</wrapper>
|
||||||
|
|
||||||
|
<container>
|
||||||
|
|
||||||
|
<spacer size="16"></spacer>
|
||||||
|
|
||||||
|
<row>
|
||||||
|
<columns>
|
||||||
|
<h1>Hi, Elijah Baily</h1>
|
||||||
|
<p class="lead">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Nisi impedit sapiente delectus molestias quia.</p>
|
||||||
|
<center>
|
||||||
|
<img src="http://placehold.it/570x300" alt="">
|
||||||
|
</center>
|
||||||
|
<callout class="primary">
|
||||||
|
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Veniam assumenda, praesentium qui vitae voluptate dolores. <a href="#">Click it!</a></p>
|
||||||
|
</callout>
|
||||||
|
</columns>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<columns large="7">
|
||||||
|
<h3>Hello, Han Fastolfe</h3>
|
||||||
|
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Laboriosam nobis velit, aliquid pariatur at fugit. Omnis at quae, libero iusto quisquam animi blanditiis neque, alias minima corporis, ab in explicabo?</p>
|
||||||
|
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Maxime dignissimos voluptas minus, cupiditate voluptatem, voluptatum iste molestiae consectetur temporibus quae dolore nam possimus reprehenderit blanditiis laborum iusto sit. Perspiciatis, dolor.</p>
|
||||||
|
<callout class="secondary">
|
||||||
|
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Culpa quas optio totam quidem, placeat sunt, sit iusto fugit. Harum omnis deleniti enim nihil iure, quis laudantium veniam velit animi debitis. <a href="#">Click It!</a>
|
||||||
|
</callout>
|
||||||
|
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolores minus eius amet alias odit accusantium, fugit perspiciatis nulla suscipit nisi. Laborum aliquid, voluptatum consectetur fugiat maxime architecto enim molestias aperiam!</p>
|
||||||
|
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ex eveniet veritatis, magnam ipsam et vero necessitatibus. Deserunt facilis impedit, adipisci illo laboriosam assumenda fugiat dolorum nam odio aliquid, sit est.</p>
|
||||||
|
<button class="expand" href="#">Click Me!</button>
|
||||||
|
</columns>
|
||||||
|
<columns large="5" class="sidebar">
|
||||||
|
<callout class="secondary">
|
||||||
|
<h5>Header</h5>
|
||||||
|
<p class="lead">Sub-header</p>
|
||||||
|
<menu class="vertical">
|
||||||
|
<item href="#">Just a Plain Link »</item>
|
||||||
|
<item href="#">Just a Plain Link »</item>
|
||||||
|
<item href="#">Just a Plain Link »</item>
|
||||||
|
<item href="#">Just a Plain Link »</item>
|
||||||
|
<item href="#">Just a Plain Link »</item>
|
||||||
|
<item href="#">Just a Plain Link »</item>
|
||||||
|
<item href="#">Just a Plain Link »</item>
|
||||||
|
</menu>
|
||||||
|
</callout>
|
||||||
|
<callout class="secondary">
|
||||||
|
<h6>CONNECT WITH US:</h6>
|
||||||
|
<button class="facebook expand" href="#">Facebook</button>
|
||||||
|
<button class="twitter expand" href="#">Twitter</button>
|
||||||
|
<button class="google expand" href="#">Google+</button>
|
||||||
|
<p>CONTACT INFO:</p>
|
||||||
|
<p>Phone: 408-341-0600</p>
|
||||||
|
<p>Email: <a href="mailto:foundation@zurb.com">foundation@zurb.com</a></p>
|
||||||
|
</callout>
|
||||||
|
</columns>
|
||||||
|
</row>
|
||||||
|
|
||||||
|
<center>
|
||||||
|
<menu>
|
||||||
|
<item href="#">Terms</item>
|
||||||
|
<item href="#">Privacy</item>
|
||||||
|
<item href="#">Unsubscribe</item>
|
||||||
|
</menu>
|
||||||
|
</center>
|
||||||
|
|
||||||
|
</container>
|
70
resources/emails/src/pages/sidebar.blade.php.hbs
Normal file
70
resources/emails/src/pages/sidebar.blade.php.hbs
Normal file
|
@ -0,0 +1,70 @@
|
||||||
|
---
|
||||||
|
subject: My Hero Sidebar Template Subject
|
||||||
|
---
|
||||||
|
|
||||||
|
<wrapper class="header">
|
||||||
|
<container>
|
||||||
|
<row class="collapse">
|
||||||
|
<columns small="6">
|
||||||
|
<img src="http://placehold.it/200x50/663399">
|
||||||
|
</columns>
|
||||||
|
<columns small="6">
|
||||||
|
<p class="text-right">SIDEBAR</p>
|
||||||
|
</columns>
|
||||||
|
</row>
|
||||||
|
</container>
|
||||||
|
</wrapper>
|
||||||
|
|
||||||
|
<container>
|
||||||
|
|
||||||
|
<spacer size="16"></spacer>
|
||||||
|
|
||||||
|
<row>
|
||||||
|
<columns large="7">
|
||||||
|
<h2>Hello, Han Fastolfe</h2>
|
||||||
|
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Laboriosam nobis velit, aliquid pariatur at fugit. Omnis at quae, libero iusto quisquam animi blanditiis neque, alias minima corporis, ab in explicabo?</p>
|
||||||
|
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Maxime dignissimos voluptas minus, cupiditate voluptatem, voluptatum iste molestiae consectetur temporibus quae dolore nam possimus reprehenderit blanditiis laborum iusto sit. Perspiciatis, dolor.</p>
|
||||||
|
<callout class="secondary">
|
||||||
|
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Culpa quas optio totam quidem, placeat sunt, sit iusto fugit. Harum omnis deleniti enim nihil iure, quis laudantium veniam velit animi debitis. <a href="#">Click It!</a>
|
||||||
|
</callout>
|
||||||
|
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolores minus eius amet alias odit accusantium, fugit perspiciatis nulla suscipit nisi. Laborum aliquid, voluptatum consectetur fugiat maxime architecto enim molestias aperiam!</p>
|
||||||
|
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ex eveniet veritatis, magnam ipsam et vero necessitatibus. Deserunt facilis impedit, adipisci illo laboriosam assumenda fugiat dolorum nam odio aliquid, sit est.</p>
|
||||||
|
<button class="expand" href="#">Click Me!</button>
|
||||||
|
</columns>
|
||||||
|
<columns large="5" class="sidebar">
|
||||||
|
<callout class="secondary">
|
||||||
|
<h5>Header</h5>
|
||||||
|
<p class="lead">Sub-header</p>
|
||||||
|
<menu class="vertical">
|
||||||
|
<item href="#">Just a Plain Link »</item>
|
||||||
|
<item href="#">Just a Plain Link »</item>
|
||||||
|
<item href="#">Just a Plain Link »</item>
|
||||||
|
<item href="#">Just a Plain Link »</item>
|
||||||
|
<item href="#">Just a Plain Link »</item>
|
||||||
|
<item href="#">Just a Plain Link »</item>
|
||||||
|
<item href="#">Just a Plain Link »</item>
|
||||||
|
</menu>
|
||||||
|
</callout>
|
||||||
|
<callout class="secondary">
|
||||||
|
<h6>CONNECT WITH US:</h6>
|
||||||
|
<button class="facebook expand" href="#">Facebook</button>
|
||||||
|
<button class="twitter expand" href="#">Twitter</button>
|
||||||
|
<button class="google expand" href="#">Google+</button>
|
||||||
|
<p>CONTACT INFO:</p>
|
||||||
|
<p>Phone: 408-341-0600</p>
|
||||||
|
<p>Email: <a href="mailto:foundation@zurb.com">foundation@zurb.com</a></p>
|
||||||
|
</callout>
|
||||||
|
</columns>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<columns>
|
||||||
|
<center>
|
||||||
|
<menu>
|
||||||
|
<item href="#">Terms</item>
|
||||||
|
<item href="#">Privacy</item>
|
||||||
|
<item href="#">Unsubscribe</item>
|
||||||
|
</menu>
|
||||||
|
</center>
|
||||||
|
</columns>
|
||||||
|
</row>
|
||||||
|
</container>
|
51
resources/emails/src/pages/welcome.blade.php.hbs
Normal file
51
resources/emails/src/pages/welcome.blade.php.hbs
Normal file
|
@ -0,0 +1,51 @@
|
||||||
|
---
|
||||||
|
subject: My Welcome Email Template Subject
|
||||||
|
---
|
||||||
|
|
||||||
|
<container class="header">
|
||||||
|
<row>
|
||||||
|
<columns>
|
||||||
|
<h1 class="text-center">Welcome to Kraken Academy</h1>
|
||||||
|
|
||||||
|
<center>
|
||||||
|
<menu class="text-center">
|
||||||
|
<item href="#">About</item>
|
||||||
|
<item href="#">Course List</item>
|
||||||
|
<item href="#">Campus Map</item>
|
||||||
|
<item href="#">Contact</item>
|
||||||
|
</menu>
|
||||||
|
</center>
|
||||||
|
|
||||||
|
</columns>
|
||||||
|
</row>
|
||||||
|
</container>
|
||||||
|
|
||||||
|
<container class="body-border">
|
||||||
|
<row>
|
||||||
|
<columns>
|
||||||
|
|
||||||
|
<spacer size="32"></spacer>
|
||||||
|
|
||||||
|
<center>
|
||||||
|
<img src="http://placehold.it/200x200">
|
||||||
|
</center>
|
||||||
|
|
||||||
|
<spacer size="16"></spacer>
|
||||||
|
|
||||||
|
<h4>An exciting future of terrorizing sailors awaits you at Kraken Academy.</h4>
|
||||||
|
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Atque culpa vel architecto, perspiciatis eius cum autem quidem, sunt consequuntur, impedit dolor vitae illum nobis sint nihil aliquid? Assumenda, amet, officia.</p>
|
||||||
|
|
||||||
|
<center>
|
||||||
|
<menu>
|
||||||
|
<item href="#">krakenacademy.com</item>
|
||||||
|
<item href="#">Facebook</item>
|
||||||
|
<item href="#">Twitter</item>
|
||||||
|
<item href="#">(408)-555-0123</item>
|
||||||
|
</menu>
|
||||||
|
</center>
|
||||||
|
|
||||||
|
</columns>
|
||||||
|
</row>
|
||||||
|
|
||||||
|
<spacer size="16"></spacer>
|
||||||
|
</container>
|
1
resources/emails/src/partials/.gitkeep
Normal file
1
resources/emails/src/partials/.gitkeep
Normal file
|
@ -0,0 +1 @@
|
||||||
|
# You can delete this file. It's just here to make Git happy.
|
Loading…
Reference in a new issue