From eed94326c49bac873c66c1222edc36eb20d94fe3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicolas=20L=C5=93uillet?= Date: Tue, 26 Nov 2013 13:33:00 +0100 Subject: [PATCH 1/2] [add] layout --- app/app.php | 4 + app/controllers/front.php | 6 + app/views/_footer.twig | 3 + app/views/_top.twig | 5 + app/views/index.twig | 4 + app/views/layout.twig | 26 + web/assets/css/knacss.css | 1121 ++++++++++++++++++++++++++++++++++ web/assets/css/style.css | 35 ++ web/assets/fonts/Roboto.woff | Bin 0 -> 22172 bytes web/assets/img/logo.png | Bin 0 -> 1350 bytes 10 files changed, 1204 insertions(+) create mode 100644 app/views/_footer.twig create mode 100644 app/views/_top.twig create mode 100644 app/views/layout.twig create mode 100644 web/assets/css/knacss.css create mode 100644 web/assets/css/style.css create mode 100644 web/assets/fonts/Roboto.woff create mode 100644 web/assets/img/logo.png diff --git a/app/app.php b/app/app.php index b4a940c..ad15a1a 100644 --- a/app/app.php +++ b/app/app.php @@ -8,6 +8,10 @@ $app->register(new Silex\Provider\TwigServiceProvider(), array( 'twig.path' => __DIR__.'/views', )); +$app->before(function () use ($app) { + $app['twig']->addGlobal('layout', $app['twig']->loadTemplate('layout.twig')); +}); + $app->register(new ConsoleServiceProvider(), [ 'console.name' => 'Poche console', 'console.version' => '0.1', diff --git a/app/controllers/front.php b/app/controllers/front.php index f190ba5..c39246b 100644 --- a/app/controllers/front.php +++ b/app/controllers/front.php @@ -9,5 +9,11 @@ $front->get('/', function () use ($app) { return $app['twig']->render('index.twig', array('entry' => $entry)); }); +$front->get('/unread', function () use ($app) { + + $entries = $app['entry_api']->getEntries(); + + return $app['twig']->render('index.twig', array('entry' => $entry)); +}); return $front; diff --git a/app/views/_footer.twig b/app/views/_footer.twig new file mode 100644 index 0000000..ccf7379 --- /dev/null +++ b/app/views/_footer.twig @@ -0,0 +1,3 @@ + diff --git a/app/views/_top.twig b/app/views/_top.twig new file mode 100644 index 0000000..4ae23fc --- /dev/null +++ b/app/views/_top.twig @@ -0,0 +1,5 @@ +
+

+ poche logo +

+
diff --git a/app/views/index.twig b/app/views/index.twig index d7b17aa..337aba0 100644 --- a/app/views/index.twig +++ b/app/views/index.twig @@ -1,2 +1,6 @@ +{% extends layout %} + +{% block content %} Poche v2
{{ entry.id }} - {{ entry.title }} +{% endblock %} \ No newline at end of file diff --git a/app/views/layout.twig b/app/views/layout.twig new file mode 100644 index 0000000..9efb2fe --- /dev/null +++ b/app/views/layout.twig @@ -0,0 +1,26 @@ + + + + + + + + + + + poche + + + + +{% include '_top.twig' %} +
+
+ {% block content %}{% endblock %} +
+
+{% include '_footer.twig' %} + + \ No newline at end of file diff --git a/web/assets/css/knacss.css b/web/assets/css/knacss.css new file mode 100644 index 0000000..e71d0a7 --- /dev/null +++ b/web/assets/css/knacss.css @@ -0,0 +1,1121 @@ +/*! +* www.KNACSS.com V2.9 (2013-10) @author: Raphael Goetter, Alsacreations +* Licence WTFPL http://www.wtfpl.net/ +*/ + +/* ----------------------------- */ +/* ==reset */ +/* ----------------------------- */ + +/* base font-size corresponds to 10px and is adapted to rem unit */ +html { + font-size: 62.5%; +} +body { + background-color: #fff; + color: #000; + font-family: helvetica, arial, sans-serif; + font-size: 1.4em; /* equiv 14px */ + line-height: 1.5; /* adapt to your design */ +} + +/* font-sizing for content */ +/* preserves vertical-rythm, thanks to http://soqr.fr/vertical-rhythm/ */ +p, +ul, +ol, +dl, +blockquote, +pre, +td, +th, +label, +textarea, +caption, +details, +figure { + margin: .75em 0 0; + line-height: 1.5; +} +h1, .h1-like { + margin: 0.6563em 0 0 0; + font-size: 2.2857em; /* equiv 32px */ + line-height: 1.3126; +} +h2, .h2-like { + margin: 0.75em 0 0 0; + font-size: 2em; /* equiv 28px */ + line-height: 1.5; +} +h3, .h3-like { + margin: 0.875em 0 0 0; + font-size: 1.7143em; /* equiv 24px */ + line-height: 1.75; +} +h4, .h4-like { + margin: 1.05em 0 0 0; + font-size: 1.4286em; /* equiv 20px */ + line-height: 1.05; +} +h5, .h5-like { + margin: 1.1667em 0 0 0; + font-size: 1.2857em; /* equiv 18px */ + line-height: 1.1667; +} +h6, .h6-like { + margin: 1.3125em 0 0 0; + font-size: 1.1429em; /* equiv 16px */ + line-height: 1.3125; +} + +/* alternate font-sizing */ +.smaller { + font-size: .7143em; /* equiv 10px */ +} +.small { + font-size: .8571em; /* equiv 12px */ +} +.big { + font-size: 1.1429em; /* equiv 16px */ +} +.bigger { + font-size: 1.2857em; /* equiv 18px */ +} +.biggest { + font-size: 1.4286em; /* equiv 20px */ +} + +/* soft reset */ +html, +body { + margin: 0; + padding: 0; +} +ul, +ol { + padding-left: 2em; +} +ul.unstyled { + list-style: none; +} +code, +pre, +samp, +kbd { + white-space: pre-wrap; + font-family: consolas, 'DejaVu Sans Mono', courier, monospace; + line-height: 1em; +} +code, kbd, mark { + border-radius: 2px; +} +em { + font-style: italic; +} +strong { + font-weight: bold; +} +kbd { + padding: 0 2px; + border: 1px solid #999; +} +code { + padding: 2px 4px; + background: rgba(0,0,0,.04); + color: #b11; +} +mark { + padding:2px 4px; + background: #ff0; +} +sup, +sub { + vertical-align: 0; + position: relative; +} +sup { + bottom: 1ex; +} +sub { + top: .5ex; +} +table { margin-bottom: 1.5em; } + +/* avoid top margins on first content element */ +p:first-child, +ul:first-child, +ol:first-child, +dl:first-child, +blockquote:first-child, +pre:first-child, +h1:first-child, +h2:first-child, +h3:first-child, +h4:first-child, +h5:first-child, +h6:first-child { + margin-top: 0; +} + +/* avoid margins on nested elements */ +li p, +li ul, +li ol { + margin-top: 0; + margin-bottom: 0; +} + +/* max values */ +img, table, td, blockquote, code, pre, textarea, input, video { + max-width: 100%; +} +/* pictures */ +img { + vertical-align: middle; +} +/* Google Gmap3 bug fix on images */ +:not(.gm-style) img { + height: auto !important; +} +.ie678 .gm-style img { + height: 100%; /* IE678 hack */ +} +.gm-style img, +.gmnoscreen img, +.gmnoprint img { + max-width: none !important; +} + +a img { border: 0; } + +/* scripts */ +body > script {display: none !important;} + +/* skip-links */ +.skip-links { + position: absolute; +} +.skip-links a { + position: absolute; + left: -7000px; + padding: 0.5em; + background: #000; + color:#fff; + text-decoration: none; +} +.skip-links a:focus { + position: static; +} + +/* ----------------------------- */ +/* ==layout and modules */ +/* ----------------------------- */ + +/* switching box model for all elements */ +* { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +/* float layout */ +/* module, gains superpower "BFC" Block Formating Context */ +.mod { + overflow: hidden; +} + +/* blocks that needs to be placed under floats */ +.clear, +.line, +.row { + clear: both; +} + +/* blocks that must contain floats */ +.clearfix:after, +.line:after, +.mod:after { + content: ""; + display: table; + clear: both; +} + +/* table layout */ +.row { + display: table; + table-layout: fixed; + width: 100%; +} +.row > *, +.col { + display: table-cell; + vertical-align: top; +} + +/* inline-block */ +.inbl { + display: inline-block; + vertical-align: top; +} + +/* alignments (blocks and inline) */ +/* ------------------------------ */ + +/* left elements */ +.left { + float: left; +} +img.left { + margin-right: 1em; +} + +/* right elements */ +.right { + float: right; +} +img.right { + margin-left: 1em; +} + +img.left, img.right { + margin-bottom: 5px; +} + +.center { margin-left: auto; margin-right: auto; } +.txtleft { text-align: left; } +.txtright { text-align: right; } +.txtcenter { text-align: center; } + +/* blocks widths (percentages and pixels) */ +.w10 { width: 10%; } +.w20 { width: 20%; } +.w25 { width: 25%; } +.w30 { width: 30%; } +.w33 { width: 33.3333%; } +.w40 { width: 40%; } +.w50 { width: 50%; } +.w60 { width: 60%; } +.w66 { width: 66.6666%; } +.w70 { width: 70%; } +.w75 { width: 75%; } +.w80 { width: 80%; } +.w90 { width: 90%; } +.w100 { width: 100%; } + +.w50p { width: 50px; } +.w100p { width: 100px; } +.w150p { width: 150px; } +.w200p { width: 200px; } +.w300p { width: 300px; } +.w400p { width: 400px; } +.w500p { width: 500px; } +.w600p { width: 600px; } +.w700p { width: 700px; } +.w800p { width: 800px; } +.w960p { width: 960px; } +.mw960p { max-width: 960px; } +.w1140p { width: 1140px; } +.mw1140p { max-width: 1140px; } + +/* spacing helpers +p,m = padding,margin +a,t,r,b,l = all,top,right,bottom,left +s,m,l,n,0 = small(10px),medium(20px),large(30px), zero or none(0) +source https://github.com/stubbornella/oocss/blob/master/core/spacing/space.css +*/ +.m-reset, .ma0 { margin: 0; } +.p-reset, .pa0 { padding: 0; } +.ma1, .mas { margin: 10px; } +.ma2, .mam { margin: 20px; } +.ma3, .mal { margin: 30px; } +.pa1, .pas { padding: 10px; } +.pa2, .pam { padding: 20px; } +.pa3, .pal { padding: 30px; } + +.mt0, .mtn { margin-top: 0; } +.mt1, .mts { margin-top: 10px; } +.mt2, .mtm { margin-top: 20px; } +.mt3, .mtl { margin-top: 30px; } +.mr0, .mrn { margin-right: 0; } +.mr1, .mrs { margin-right: 10px; } +.mr2, .mrm { margin-right: 20px; } +.mr3, .mrl { margin-right: 30px; } +.mb0, .mbn { margin-bottom: 0; } +.mb1, .mbs { margin-bottom: 10px; } +.mb2, .mbm { margin-bottom: 20px; } +.mb3, .mbl { margin-bottom: 30px; } +.ml0, .mln { margin-left: 0; } +.ml1, .mls { margin-left: 10px; } +.ml2, .mlm { margin-left: 20px; } +.ml3, .mll { margin-left: 30px; } + +.pt0, .ptn { padding-top: 0; } +.pt1, .pts { padding-top: 10px; } +.pt2, .ptm { padding-top: 20px; } +.pt3, .ptl { padding-top: 30px; } +.pr0, .prn { padding-right: 0; } +.pr1, .prs { padding-right: 10px; } +.pr2, .prm { padding-right: 20px; } +.pr3, .prl { padding-right: 30px; } +.pb0, .pbn { padding-bottom: 0; } +.pb1, .pbs { padding-bottom: 10px; } +.pb2, .pbm { padding-bottom: 20px; } +.pb3, .pbl { padding-bottom: 30px; } +.pl0, .pln { padding-left: 0; } +.pl1, .pls { padding-left: 10px; } +.pl2, .plm { padding-left: 20px; } +.pl3, .pll { padding-left: 30px; } + +/* hiding content */ +.visually-hidden { + position: absolute; + left: -7000px; + overflow: hidden; +} +[dir=rtl] .visually-hidden { + left: auto; + right: -7000px; +} + +.desktop-hidden { display: none; } /* hidden on desktop */ + +/* ----------------------------- */ +/* ==iefix */ +/* ----------------------------- */ + +/* hasLayout for IE6/IE7 */ +.ie67 .clearfix, +.ie67 .line, +.ie67 .mod, +.ie67 .row, +.ie67 .col { + zoom: 1; +} + +/* inline-block and table-cell for IE6/IE7 */ +/* warning: .col needs a width on IE6/IE7 */ +.ie67 .btn, +.ie67 .col, +.ie67 .inbl { + display: inline; + zoom: 1; +} +.ie8 img { + width: auto; /* @bugfix for IE8 */ +} + +/* Active box-sizing for IE6/IE7 */ +/* @source https://github.com/Schepp/box-sizing-polyfill */ +/* +.ie67 * { + behavior: url(/js/boxsizing.htc); +} +*/ + +/* ----------------------------- */ +/* ==print */ +/* ----------------------------- */ + +/* quick print reset */ +@media print { + p, + blockquote { + orphans: 2; + widows: 2; + } + blockquote, + ul, + ol { + page-break-inside: avoid; + } + h1, + h2, + h3, + caption { + page-break-after: avoid; + } +} + +/* debug helper */ +.knacss-debug { + background: pink; + outline: 3px solid maroon; +} + +/* orientation iOS font-size fix */ +@media (orientation: landscape) and (max-device-width: 768px) { + html, + body { + -webkit-text-size-adjust: 100%; + } +} + +/* ----------------------------- */ +/* ==own stylesheet */ +/* ----------------------------- */ + +/* Here should go your own CSS styles */ +/* You can link them with an @import or, better for webperf, just paste them here */ + +/* @import url(my-styles.css); */ + + +/* ----------------------------- */ +/* ==grids */ +/* ----------------------------- */ + +/* grids inspired from SUIT https://github.com/suitcss/suit */ +/* font-family hack explained here : https://github.com/raphaelgoetter/KNACSS/issues/37 */ + +.grid { + overflow: hidden; + font-family: FreeSans, Arimo, "Droid Sans", Helvetica, Arial, sans-serif; +} +.grid > * { + display: block; + padding: 0; + margin-left: -20px; /* gutter value */ + text-align: left; + letter-spacing: -0.31em; + text-rendering: optimizespeed; +} +/* Opera hack */ +.opera:-o-prefocus, +.grid > * { + word-spacing: -0.43em; +} +.grid > * > * { + display: inline-block; + width: 100%; + padding-left: 20px; /* gutter value */ + margin-left: 0; + vertical-align: top; + text-align: left; + letter-spacing: normal; + word-spacing: normal; + text-rendering: auto; + *display: inline; *zoom: 1; /* IE67 hack */ + font-family: helvetica, arial, sans-serif; +} +.grid2 > * {width: 50%;} +.grid3 > * {width: 33.333%;} +.grid4 > * {width: 25%;} +.grid5 > * {width: 20%;} +.grid6 > * {width: 16.667%;} +.grid8 > * {width: 12.5%;} +.grid10 > * {width: 10%;} +.grid12 > * {width: 8.333%;} + +/* unequal grids (1-2, 2-1, 1-3 and 3-1) for 2 blocks */ +.grid2-1 > *:first-child, +.grid1-2 > * + * { width: 66.666%; } +.grid1-2 > *:first-child, +.grid2-1 > * + * { width: 33.333%; } +.grid1-3 > *:first-child, +.grid3-1 > * + * { width: 25%; } +.grid3-1 > *:first-child, +.grid1-3 > * + * { width: 75%; } + +/* Responsiv-o-matic */ +@media (max-width: 1024px) { + .grid5 > *, + .grid6 > *, + .grid8 > *, + .grid10 > *, + .grid12 > * {width: 33.333%} +} +@media (max-width: 768px) { + .grid3 > *, + .grid4 > *, + .grid5 > *, + .grid6 > *, + .grid8 > *, + .grid10 > *, + .grid12 > * {width: 50%} +} +@media (max-width: 640px) { + .grid > * > * {width: 100% !important} +} + +/* ----------------------------- */ +/* ==tables */ +/* ----------------------------- */ + +table, +.table { + max-width : 100%; + table-layout: fixed; + border-collapse: collapse; + vertical-align: top; +} +table { + width: 100%; +} +.table { + display: table; +} +table#recaptcha_table, +table.table-auto { + table-layout:auto; +} +caption { + padding: 10px; + color: #555; + font-style: italic; +} +table { + border: 1px solid #ccc; +} +tr > * + * { + border-left: 1px solid #ccc; +} +th, +td { + padding: .3em .8em; + text-align: left; + border-bottom: 1px solid #ccc; +} +td { + color: #333; +} + +/* alternate tables */ +.alternate { border: 0; } +.alternate tbody { + border: 1px solid #ccc; +} +.alternate thead tr > * + * { + border-left: 0; +} +.alternate tbody tr > * + * { + border-left: 1px solid #ccc; +} + +/* alternate-vert tables */ +.alternate-vert { + border: 0; + border-right: 1px solid #ccc; +} +.alternate-vert tr > :first-child { + border-bottom: 0; +} +.alternate-vert tr > * + * { + border-top: 1px solid #ccc; +} + +/* striped tables */ +.striped tbody tr:nth-child(odd) { + background: #eee; + background: rgba(0, 0, 0, .05); +} + +/* striped-vert tables */ +.striped-vert tr > :first-child { + background: #eee; + background: rgba(0, 0, 0, .05); +} +/* ----------------------------- */ +/* ==forms */ +/* ----------------------------- */ + +/* thanks to HTML5boilerplate, +* github.com/nathansmith/formalize +* and www.sitepen.com +*/ + + +/* buttons */ +.btn { + display: inline-block; +} + +/* forms items */ +form, +fieldset { + border: none; +} +input, +button, +select, +label, +.btn { + vertical-align: middle; + font-family: inherit; + font-size: inherit; +} +label { + display: inline-block; + vertical-align: middle; + cursor: pointer; +} +legend { + border: 0; + white-space: normal; +} +textarea { + overflow: auto; /* Removes default vertical scrollbar on empty textarea in IE6/7/8/9 */ + min-height: 5em; + vertical-align: top; + font-family: inherit; + font-size: inherit; + resize: vertical; +} +button, +input[type="button"], +input[type="reset"], +input[type="submit"] { + cursor: pointer; + -webkit-appearance: button; /* clickable input types in iOS */ +} +input[type="checkbox"], +input[type="radio"] { + padding: 0; /* Corrects excess space around these inputs in IE8/9 */ +} +input[type="search"] { + -webkit-appearance: textfield; +} + +/* if select styling bugs on WebKit */ +/* select { -webkit-appearance: none; } */ + +/* 'x' appears on right of search input when text is entered. This removes it */ +input[type="search"]::-webkit-search-decoration, +input[type="search"]::-webkit-search-cancel-button, +input[type="search"]::-webkit-search-results-button, +input[type="search"]::-webkit-search-results-decoration { + display: none; +} +::-webkit-input-placeholder { + color: #777; +} +input:-moz-placeholder, +textarea:-moz-placeholder { + color: #777; +} + +/* Removes inner padding and border in FF3+ */ +button::-moz-focus-inner, +input[type='button']::-moz-focus-inner, +input[type='reset']::-moz-focus-inner, +input[type='submit']::-moz-focus-inner { + border: 0; + padding: 0; +} + +/* ----------------------------- */ +/* ==icons and bullets */ +/* ----------------------------- */ + +.icon {display: inline-block;} + +.icon:before, +.icon.after:after { + content: ""; + display: inline-block; + vertical-align: middle; + position: relative; top: -.1em; + margin: 0 0.3em 0 0; + font: 1.4em/1 sans-serif; + color: #000; + text-shadow: 1px 1px 0 rgba(0,0,0,.1); + speak: none; +} + +@media (min-device-width: 768px) { + .icon:before, + .icon.after:after { + font: 1em/0.6 sans-serif; + -webkit-transform: rotateZ(0.05deg); + } +} + +.icon.after:after { + margin: 0 0 0 8px; +} +.icon.after:before { + content: "" !important +} +.icon-rate:before, +.icon-rate.after:after { + content: "\2605"; +} +.icon-unrate:before, +.icon-unrate.after:after{ + content: "\2606"; +} +.icon-check:before, +.icon-check.after:after{ + content: "\2713"; +} +.icon-uncheck:before, +.icon-uncheck.after:after{ + content: "\2717"; +} +.icon-cloud:before, +.icon-cloud.after:after { + content: "\2601"; +} +.icon-dl:before, +.icon-dl.after:after { + content: "\21E3"; + font-weight: bold; +} +.icon-cross:before, +.icon-cross.after:after { + content: "\2716"; + font-weight: bold; +} +.icon-arrow1:before, +.icon-arrow1.after:after { + content: "\2192"; + position: relative; + top: -0.15em; +} +.icon-arrow2:before, +.icon-arrow2.after:after { + content: "\279E"; +} +.icon-arrow3:before, +.icon-arrow3.after:after { + content: "\279A"; +} +.icon-bracket1:before, +.icon-bracket1.after:after { + content: "\2039"; + font-weight: bold; + font-size: 1.6em; + position: relative; + top: -0.15em; +} +.icon-bracket2:before, +.icon-bracket2.after:after { + content: "\203A"; + font-weight: bold; + font-size: 1.6em; + position: relative; + top: -0.15em; +} +.icon-up:before, +.icon-up.after:after { + content: "\25B2"; +} +.icon-down:before, +.icon-down.after:after { + content: "\25BC"; +} +.icon-bull:before, +.icon-bull.after:after { + content: "\2022"; + font-size: 1.2em; + top: -0.05em; +} +.icon-bull2:before, +.icon-bull2.after:after { + content: "\25E6"; + top: -0.05em; +} +.icon-bull3:before, +.icon-bull3.after:after{ + content: "\2023"; + font-size: 1.6em; + top: -0.05em; +} +.icon-nav:before, +.icon-nav.after:after { + content: "\2261"; + font-weight: bold; +} +.icon-losange:before, +.icon-losange.after:after { + content: "\25C6"; +} +.icon-asteri:before, +.icon-asteri.after:after { + content: "\2731"; + font-weight: bold; +} +.icon-mail:before, +.icon-mail.after:after { + content: "\2709"; + font-size: 1.6em; + top: -.05em; +} + + +/* ----------------------------- */ +/* ==flexbox classes */ +/* ----------------------------- */ + +/* flexbox layout context on container */ +.flex { + display: -webkit-box; + display: -moz-box; + display: -ms-flexbox; + display: -webkit-flex; + display: flex; +} +/* horizontal alignment */ +.flex-h { + -webkit-box-orient: horizontal; + -moz-box-orient: horizontal; + -webkit-flex-direction: row; + -ms-flex-direction: row; + flex-direction: row; +} +/* vertical alignment */ +.flex-v { + -webkit-box-orient: vertical; + -moz-box-orient: vertical; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; +} +/* for fluid items */ +.flex-fluid { + -moz-box-flex: 1; + -webkit-flex: 1; + -moz-flex: 1; + -ms-flex: 1; + flex: 1; +} +/* for items that must appear first */ +.flex-start { + -webkit-box-ordinal-group: -1; + -moz-box-ordinal-group: 0; + -ms-flex-order: -1; + -webkit-order: -1; + -moz-order: -1; + order: -1; +} +/* for items that must appear middle */ +.flex-mid { + -webkit-box-ordinal-group: 1; + -moz-box-ordinal-group: 1; + -ms-flex-order: 1; + -webkit-order: 1; + -moz-order: 1; + order: 1; +} +/* for items that must appear at the end */ +.flex-end { + -webkit-box-ordinal-group: 42; + -moz-box-ordinal-group: 42; + -ms-flex-order: 42; + -webkit-order: 42; + -moz-order: 42; + order: 42; +} + +/* ----------------------------- */ +/* ==viewport fixing for RWD */ +/* ----------------------------- */ +@-webkit-viewport { + width: device-width; + zoom: 1.0; +} +@-moz-viewport { + width: device-width; + zoom: 1.0; +} +@-ms-viewport { + width: device-width; + zoom: 1.0; +} +@-o-viewport { + width: device-width; + zoom: 1.0; +} +@viewport { + width: device-width; + zoom: 1.0; +} + +/* ----------------------------- */ +/* ==desktop and retina medias */ +/* ----------------------------- */ + +@media (min-width: 641px) { +/* here go rules for big resources and big screens like: background-images, font-faces, etc. */ +} +@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi), (min-resolution: 2dppx) { +/* Style adjustments for retina devices */ +} + +/* ---------------------------------- */ +/* ==Responsive large / small / tiny */ +/* ---------------------------------- */ + +@media (min-width: 1280px) { + + /* layouts for large (l) screens */ + .large-hidden, + .tablet-hidden { display: none !important; } + .large-visible { display: block !important; } + .large-no-float {float: none; } + .large-inbl { + display: inline-block; + float: none; + vertical-align: top; + } + .large-row { + display: table; + table-layout: fixed; + width: 100% !important; + } + .large-col { + display: table-cell; + vertical-align: top; + } + + /* widths for large (l) screens */ + .large-w25 { width: 25% !important; } + .large-w33 { width: 33.3333% !important; } + .large-w50 { width: 50% !important; } + .large-w66 { width: 66.6666% !important; } + .large-w75 { width: 75% !important; } + .large-w100 { + display: block !important; + float: none !important; + clear: none !important; + width: auto !important; + margin-left: 0 !important; + margin-right: 0 !important; + border: 0; + } + + /* margins for large (l) screens */ + .large-ma0 { margin: 0 !important; } +} + +@media (max-width: 768px) { + + /* quick tablet reset */ + .w600p, + .w700p, + .w800p, + .w960p, + .mw960p, + .small-wauto { + width: auto; + float: none; + } + + /* you shall not pass */ + div, textarea, table, td, th, code, pre, samp { + word-wrap: break-word; + -webkit-hyphens: auto; + -moz-hyphens: auto; + -ms-hyphens: auto; + -o-hyphens: auto; + hyphens: auto; + } + + /* layouts for small (s) screens */ + .small-hidden, + .tablet-hidden { display: none !important; } + .small-visible { display: block !important; } + .small-no-float {float: none; } + .small-inbl { + display: inline-block; + float: none; + vertical-align: top; + } + .small-row { + display: table !important; + table-layout: fixed !important; + width: 100% !important; + } + .small-col { + display: table-cell !important; + vertical-align: top !important; + } + + /* widths for small (s) screens */ + .small-w25 { width: 25% !important; } + .small-w33 { width: 33.3333% !important; } + .small-w50 { width: 50% !important; } + .small-w66 { width: 66.6666% !important; } + .small-w75 { width: 75% !important; } + .small-w100 { + display: block !important; + float: none !important; + clear: none !important; + width: auto !important; + margin-left: 0 !important; + margin-right: 0 !important; + border: 0; + } + /* margins for small (s) screens */ + .small-ma0 { margin: 0 !important; } +} + +@media (max-width: 640px) { + + /* quick smartphone reset */ + .mod, + .col, + fieldset { + display: block !important; + float: none !important; + clear: none !important; + width: auto !important; + margin-left: 0 !important; + margin-right: 0 !important; + border: 0; + } + .w300p, + .w400p, + .w500p { + width: auto; + float: none; + } + .row { + display: block !important; + width: 100% !important; + } + + /* layouts for tiny (t) screens */ + .tiny-hidden, + .phone-hidden { display: none !important; } + .tiny-visible { display: block !important; } + .tiny-no-float {float: none;} + .tiny-inbl { + display: inline-block; + float: none; + vertical-align: top; + } + .tiny-row { + display: table !important; + table-layout: fixed !important; + width: 100% !important; + } + .tiny-col { + display: table-cell !important; + vertical-align: top !important; + } + th, + td { + display: block !important; + width: auto !important; + text-align: left !important; + } + thead { display: none; } + + /* widths for tiny (t) screens */ + .tiny-w25 { width: 25% !important; } + .tiny-w33 { width: 33.3333% !important; } + .tiny-w50 { width: 50% !important; } + .tiny-w66 { width: 66.6666% !important; } + .tiny-w75 { width: 75% !important; } + .tiny-w100 { + display: block !important; + float: none !important; + clear: none !important; + width: auto !important; + margin-left: 0 !important; + margin-right: 0 !important; + border: 0; + } + /* margins for tiny (t) screens */ + .tiny-ma0 { margin: 0 !important; } +} \ No newline at end of file diff --git a/web/assets/css/style.css b/web/assets/css/style.css new file mode 100644 index 0000000..b62292e --- /dev/null +++ b/web/assets/css/style.css @@ -0,0 +1,35 @@ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + src: local('Roboto Regular'), local('Roboto-Regular'), url(../fonts/Roboto.woff) format('woff'); +} + +body { + margin: 10px; + font-family: 'Roboto',Verdana,Geneva,sans-serif; + font-size: 16px; + color: #000; +} + +header { + text-align: center; +} + +header h1 { + font-size: 1.3em; +} + +a, +a:hover, +a:visited { + color: #000; +} + +footer { + clear: both; +} + +.reading-time { + font-size: 0.8em; +} \ No newline at end of file diff --git a/web/assets/fonts/Roboto.woff b/web/assets/fonts/Roboto.woff new file mode 100644 index 0000000000000000000000000000000000000000..1440b1be64111bc184959ad9669fc0497a80f827 GIT binary patch literal 22172 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 z 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 Date: Tue, 26 Nov 2013 13:34:53 +0100 Subject: [PATCH 2/2] [del] remove dummy code --- app/controllers/front.php | 7 ------- 1 file changed, 7 deletions(-) diff --git a/app/controllers/front.php b/app/controllers/front.php index c39246b..e03d7c5 100644 --- a/app/controllers/front.php +++ b/app/controllers/front.php @@ -9,11 +9,4 @@ $front->get('/', function () use ($app) { return $app['twig']->render('index.twig', array('entry' => $entry)); }); -$front->get('/unread', function () use ($app) { - - $entries = $app['entry_api']->getEntries(); - - return $app['twig']->render('index.twig', array('entry' => $entry)); -}); - return $front;