diff --git a/public/hero.jpg b/public/hero.jpg new file mode 100644 index 0000000..5dd5a8f Binary files /dev/null and b/public/hero.jpg differ diff --git a/templates/themes/default/sidebar-album.hbs b/templates/themes/cards/sidebar-album.hbs similarity index 100% rename from templates/themes/default/sidebar-album.hbs rename to templates/themes/cards/sidebar-album.hbs diff --git a/templates/themes/default/theme.hbs b/templates/themes/cards/theme.hbs similarity index 96% rename from templates/themes/default/theme.hbs rename to templates/themes/cards/theme.hbs index b0495b5..230a3ed 100644 --- a/templates/themes/default/theme.hbs +++ b/templates/themes/cards/theme.hbs @@ -17,12 +17,12 @@ - + + + {{#if albums.length}} + + {{else}} + + {{/if}} + {{title}}{{stats.total}} + + + + diff --git a/templates/themes/mosaic/theme.hbs b/templates/themes/mosaic/theme.hbs new file mode 100644 index 0000000..81fbc3f --- /dev/null +++ b/templates/themes/mosaic/theme.hbs @@ -0,0 +1,105 @@ +
+ + + + +
+ + +
+

+ + {{gallery.title}} +

+
+ + + + + + +
+ + + + + +
    + {{#each album.files}} + {{#if isVideo}} +
  • + + {{filename}} + + +
  • + {{else}} +
  • + + {{filename}} + +
  • + {{/if}} + {{/each}} +
+ +
+ +
+ +
diff --git a/templates/themes/mosaic/theme.less b/templates/themes/mosaic/theme.less new file mode 100644 index 0000000..f8654c1 --- /dev/null +++ b/templates/themes/mosaic/theme.less @@ -0,0 +1,314 @@ + +// ----------------------------------- +// Variables for user customisation +// ----------------------------------- + +@body-background: #f6f6f6; +@header-background: #444; +@header-foreground: #fff; +@nav-background: #fafafa; +@nav-highlight: #fff; +@album-background: #fafafa; +@text-color: #444; +@text-light: #999; +@borders: #ddd; +@mobile-trigger: 900px; + +// ----------------------------------- +// Page structure +// ----------------------------------- + +* { + box-sizing: border-box; + -moz-box-sizing: border-box; +} + +html { + height: 100%; +} + +html, body { + padding: 0; + margin: 0; +} + +#wrapper { + display: flex; + min-height: 100vh; + flex-direction: column; +} + +#container { + // display: flex; + // flex: 1; +} + +#sidebar { + overflow: hidden; + order: -1; +} + +#content { + flex: 1; +} + +// ----------------------------------- +// Slide-out navigation +// ----------------------------------- + +.hamburger-checkbox { + position: absolute; + opacity: 0; +} + +.hamburger-label { + display: none; +} + +#sidebar { + flex: 0 0 15em; +} + +@media only screen and (max-width: @mobile-trigger) { + + .hamburger-label { + display: inline-block; + } + + #sidebar { + flex: 0 0 0; + transition: all .2s; + white-space: nowrap; + } + + #sidebar .count { + opacity: 0; + } + + .hamburger-checkbox:checked ~ #sidebar { + flex: 0 0 100%; + font-size: 1.1em; + } + + .hamburger-checkbox:checked ~ #content { + flex: 0 0 0; + } + + .hamburger-checkbox:checked ~ #sidebar .count { + opacity: 100; + } + +} + +// ----------------------------------- +// Generic styles +// ----------------------------------- + +body { + background: #fff; + color: #444; + font-family: 'Open Sans', sans-serif; + font-size: 16px; + font-weight: lighter; + -webkit-font-smoothing: antialiased; +} + +a { + text-decoration: none; +} + +.clearfix:after { + content: " "; + display: block; + clear: both; +} + +.noselect { + cursor: default; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +// ----------------------------------- +// Header +// ----------------------------------- + +header { + background: #fff; + font-size: 1.4em; + font-family: 'Montserrat', sans-serif; + padding: 0; + color: #17baef; +} + +header .hamburger-label { + // color: #fff; + margin-right: 0.4em; +} + +h1 { + margin: 1em; + color: #17baef; + display: inline-block; +} + +// ----------------------------------- +// Sidebar navigation +// ----------------------------------- + +#sidebar { + background: @nav-background; + border-right: 1px solid @borders; +} + +#sidebar ul:not(:first-child) { + margin-left: 1.5em; +} + +#sidebar i.fa { + margin-right: 0.3em; +} + +#sidebar a { + border-bottom: 1px solid @borders; + color: @text-color; + display: block; + padding: 0.8em 1em; + position: relative; +} + +#sidebar .count { + background-color: #fcfcfc; + border: 1px solid @borders; + border-radius: 0.4em; + color: @text-light; + font-size: 0.7em; + padding: 0.4em 0.6em 0.3em 0.5em; + position: absolute; + right: 1em; + margin-top: -2px; +} + +// ----------------------------------- +// Breadcrumbs navigation +// ----------------------------------- + +nav.breadcrumbs { + margin: 0; + padding: 1.5em; + font-weight: bold; + height: 4em; + background: url('hero.jpg') center center repeat; + background-size: contain; + color: #fff; + position: relative; +} + +nav.breadcrumbs .mask { + background-color: #17baef; + position: absolute; + top: 0; + bottom: 0; + left: 0; + right: 0; + opacity: 0.9; + z-index: 1; +} + +nav.breadcrumbs a, nav span { + position: relative; + z-index: 2; + display: inline; +} + +nav.breadcrumbs a { + color: #fff; + text-decoration: none; +} + +// ----------------------------------- +// Nested albums +// ----------------------------------- + +#albums, #media { + margin: 1em; + overflow: hidden; +} + +#albums a { + display: inline-block; + padding: 0.7em; +} + +#albums h3 { + color: #444; + margin-top: 1em; + font-size: 1em; +} + +#albums .meta { + color: #999; + font-size: 0.9em; + font-style: italic; + line-height: 1.2em; + margin: 0.5em 0; + width: 100%; +} + +#albums > li { + display: inline-block; + margin-right: 1em; + margin-bottom: 0em; +} + +#albums .grid { + opacity: 0.8; + width: 400px; + height: 50px; + overflow: hidden; +} + +#albums .grid li { + float: left; + padding: 0; + padding-right: 0px; + padding-bottom: 0px; +} + +#albums .grid img { + display: block; + width: 50px; +} + +// ----------------------------------- +// Navigation hovers +// ----------------------------------- + +#sidebar a:hover { + background-color: @nav-highlight; +} + +// ----------------------------------- +// Photo and video thumbnails +// ----------------------------------- + +#media li { + float: left; + margin-right: 0.4em; + margin-bottom: 0.2em; + position: relative; +} + +#media li .video-overlay { + left: 50%; + height: 48px; + margin-left: -24px; + margin-top: -24px; + position: absolute; + top: 50%; + width: 48px; +}