feat(): add menu bar and main content with colors from atom editor

This commit is contained in:
kendo5731 2016-01-31 15:24:53 +01:00
commit 06de5347fa
10 changed files with 358 additions and 0 deletions

5
.gitignore vendored Normal file
View File

@ -0,0 +1,5 @@
.idea
public/**/*.css
node_modules
public/fonts
!public/fonts/.gitkeep

27
gulpfile.js Normal file
View File

@ -0,0 +1,27 @@
var gulp = require('gulp');
var gutil = require('gulp-util');
var sass = require('gulp-sass');
var browserSync = require('browser-sync').create();
gulp.task('fonts', function() {
gulp.src('./node_modules/bootstrap-sass/assets/fonts/bootstrap/*')
.pipe(gulp.dest('./public/fonts'));
});
gulp.task('serve', ['fonts', 'sass'] , function () {
browserSync.init({ server: { baseDir: "./public" } });
gulp.watch("public/**/*.scss", ['sass']);
gulp.watch("public/*.html").on('change', browserSync.reload);
});
gulp.task('sass', function() {
return gulp.src("./public/**/*.scss")
.pipe(sass().on('error', handleError))
.pipe(gulp.dest('./public'))
.pipe(browserSync.stream());
});
function handleError(err) {
gutil.log(err);
this.emit('end');
}

17
package.json Normal file
View File

@ -0,0 +1,17 @@
{
"description": "HTML/CSS Theme for www.aubm.net",
"repository": "https://github.com/aubm/aubm-website-theme.git",
"license": "MIT",
"dependencies": {
"bootstrap-sass": "^3.3.6"
},
"devDependencies": {
"browser-sync": "^2.11.1",
"gulp": "^3.9.0",
"gulp-sass": "^2.1.1",
"gulp-util": "^3.0.7"
},
"scripts": {
"serve": "gulp serve"
}
}

View File

@ -0,0 +1,46 @@
$bootstrap_path: "../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/";
// Core variables and mixins
@import "../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/variables";
@import "../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/mixins";
// Reset and dependencies
@import "../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/normalize";
@import "../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/print";
@import "../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/glyphicons";
// Core CSS
@import "../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/scaffolding";
//@import "../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/type";
//@import "../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/code";
@import "../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/grid";
//@import "../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/tables";
//@import "../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/forms";
//@import "../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/buttons";
//// Components
//@import "../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/component-animations";
//@import "../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/dropdowns";
//@import "../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/button-groups";
//@import "../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/input-groups";
//@import "../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/navs";
//@import "../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/navbar";
//@import "../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/breadcrumbs";
//@import "../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/pagination";
//@import "../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/pager";
//@import "../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/labels";
//@import "../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/badges";
//@import "../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/jumbotron";
//@import "../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/thumbnails";
//@import "../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/alerts";
//@import "../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/progress-bars";
//@import "../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/media";
//@import "../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/list-group";
//@import "../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/panels";
//@import "../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/responsive-embed";
//@import "../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/wells";
//@import "../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/close";
// Utility classes
@import "../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/utilities";
@import "../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/responsive-utilities";

14
public/css/_mixins.scss Normal file
View File

@ -0,0 +1,14 @@
.no-padding-left-and-right {
padding-left: 0px;
padding-right: 0px;
}
.no-user-select {
-webkit-touch-callout: none; /* iOS Safari */
-webkit-user-select: none; /* Chrome/Safari/Opera */
-khtml-user-select: none; /* Konqueror */
-moz-user-select: none; /* Firefox */
-ms-user-select: none; /* IE/Edge */
user-select: none; /* non-prefixed version, currently
not supported by any browser */
}

View File

@ -0,0 +1,7 @@
$bg-color: #001f27;
$content-bg-color: #002b36;
$menu-hover-bg-color: #003b4a;
$text-color: #839496;
$link-color: #2aa198;
$icon-font-path: "../fonts/";

109
public/css/theme.scss Normal file
View File

@ -0,0 +1,109 @@
//@import "../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap";
@import "./variables.scss";
@import "./custom-bootstrap.scss";
@import "./mixins.scss";
html {
height: 100%;
}
body {
min-height: 100%;
height: 100%;
font-family: 'Source Code Pro';
background-color: $bg-color;
color: $text-color;
&>.container-fluid {
@extend .no-padding-left-and-right;
}
}
.page-container {
height: 100%;
min-height: 100%;
}
a {
color: $link-color;
&:hover {
color: $link-color;
text-decoration: underline;
}
}
.article-content {
background-color: $content-bg-color;
min-height: 100%;
padding-top: 1px;
padding-bottom: 15px;
}
.menu {
padding-left: 0px;
nav {
@media (min-width: $screen-md-min) {
@extend .no-padding-left-and-right;
position: fixed;
height: 100%;
overflow-y: auto;
}
@media (max-width: $screen-sm-max) {
ul {
display: none;
}
}
h3 {
@extend .no-user-select;
cursor: pointer;
font-size: 14px;
padding: 4px 0px 4px 15px;
margin: 0px;
&:before {
@extend .glyphicon;
@extend .glyphicon-folder-close;
margin-right: 8px;
}
}
.open {
h3:before {
@extend .glyphicon-folder-open;
}
}
ul {
padding-left: 0px;
margin: 0px;
li {
list-style: none;
padding: 4px 30px 4px 40px;
margin-right: -15px;
&:before {
@extend .glyphicon;
@extend .glyphicon-file;
margin-right: 8px;
}
&:hover {
background-color: $menu-hover-bg-color;
}
a, a:hover {
color: $text-color;
text-decoration: none;
}
}
}
@media (max-width: $screen-sm-max) {
h3 {
padding: 10px 0px 10px 15px;
}
ul li {
padding: 10px 30px 10px 40px;
}
}
}
}

0
public/fonts/.gitkeep Normal file
View File

98
public/index.html Normal file
View File

@ -0,0 +1,98 @@
<!doctype html>
<html>
<head>
<base href="/">
<meta charset="utf-8">
<meta name="author" content="Aurélien Baumann">
<meta name="viewport" content="width=device-width, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">
<meta name="description" page-metadesc>
<title page-title>Aubm</title>
<link href='https://fonts.googleapis.com/css?family=Source+Code+Pro:400,700' rel='stylesheet' type='text/css'>
<link rel="stylesheet" href="css/theme.css" type="text/css">
</head>
<body>
<div class="page-container container-fluid">
<div class="col-md-3 menu">
<nav class="col-md-3">
<div id="last-posts" class="open">
<h3 data-open="last-posts">Aubm.net - Les derniers articles</h3>
<ul>
<li><a href="#">Astuce le serveur de developpement embarque de-php</a></li>
<li><a href="#">Astuce phpstorm partager ses lives templates</a></li>
<li><a href="#">Contrainte dunicite dans symfony 2 avec doctrine</a></li>
<li><a href="#">Du neuf sous le capot</a></li>
<li><a href="#">Gardez le code explicite court et modulaire</a></li>
<li><a href="#">Installation et utilisation de sentry</a></li>
<li><a href="#">La pagination avec doctrine la bonne methode</a></li>
<li><a href="#">Mes premiers pas avec cakephp 3</a></li>
<li><a href="#">Retour dexperience sur joomla point de vue dun developpeur</a></li>
<li><a href="#">Utiliser les event subscriber avec fosrestbundle et jmsserializerbundle</a></li>
<li><a href="#">Webservice restful avec symfony2 gerer les champs de type datetime</a></li>
</ul>
</div>
</nav>
</div>
<div class="col-md-9 article-content">
<article>
<p>Bonjour, ce petit article pour partager une de mes découvertes récentes. Il s&rsquo;agit du serveur web
interne de
PHP, intégré depuis la version 5.4. La lecture de cette article ne vous apprendra surement pas grand
chose
si vous
avez déjà connaissance de cette fonctionnalité.</p>
<p>Pour en savoir plus, rendez vous directement sur la <a
href="http://php.net/manual/fr/features.commandline.webserver.php" target="_blank">documentation
officielle de
PHP</a>. La documentation explique comment utiliser de façon très simple ce service. A noter que celui n&rsquo;est
pas pensé pour être utilisé dans un environnement de production, mais est destiné à servir dans un
environnement de
développement. Il n&rsquo;est, par conséquent, plus nécessaire de configurer une nouvelle vhost sur
votre
serveur
http (typiquement apache ou nginx), et d&rsquo;ajouter une entrée dans le fichier hosts. Démarrez votre
application
à l&rsquo;aide d&rsquo;une simple commande dans votre terminal, et testez directement votre application
!
</p>
<h2 id="encore-mieux:b661274995ee589e28a51c629100f44d">Encore mieux</h2>
<p>De nombreux framework de développement PHP, dont Symfony ou encore Laravel facillitent encore plus l&rsquo;utilisation
de ce service. Pour l&rsquo;exemple, si vous utilisez Symfony2 pour développer votre application, tapez
directement
dans votre terminal la commande suivante :</p>
<pre><code class="language-bash">php app/console server:run
</code></pre>
<p>La console vous affichera un message comme :</p>
<pre><code class="language-bash">Server running on http://localhost:8000
</code></pre>
<p>Ouvrez votre navigateur et rendez vous à l&rsquo;adresse <code>http:/localhost:8000</code> pour utiliser
votre
application. Note : la commande lance l&rsquo;application dans l&rsquo;environnement de développement,
vous
n&rsquo;avez
donc pas besoin de faire précéder toutes vos route par <code>app_dev.php</code>.</p>
<p>Pour finir un petit coup d&rsquo;oeil sur les informations que nous fournit la commande suivante :</p>
<pre><code class="language-bash">php app/console server:run --help
</code></pre>
<p>Enfin, pour en savoir plus, rendez-vous directement sur la <a
href="http://symfony.com/doc/current/cookbook/web_server/built_in.html" target="_blank">documentation
officelle
de Symfony</a>.</p>
<p>Et voilà, have fun :)</p>
</article>
</div>
</div>
</body>
<script src="js/theme.js" type="text/javascript"></script>
</html>

35
public/js/theme.js Normal file
View File

@ -0,0 +1,35 @@
(function() {
var elements = document.querySelectorAll('[data-open]');
for (var i=0; i<elements.length; i++) {
initOpen(elements[i]);
}
function initOpen(element) {
var className = 'open';
var target = document.getElementById(element.getAttribute('data-open'));
var ulChildrenMap = function(fn) {
var lists = target.getElementsByTagName('ul');
for (var i=0; i<lists.length; i++) {
fn(lists[i]);
}
};
if (!target) return;
// dirty hack for small screen ...
var firstChildUl = target.getElementsByTagName('ul')[0];
if (firstChildUl && window.getComputedStyle(firstChildUl).display === 'none') {
target.classList.remove(className);
}
element.addEventListener('click', function() {
var list = target.getElementsByTagName('ul')[0];
if (target.classList.contains(className)) {
target.classList.remove(className);
ulChildrenMap(function(ul) { ul.style.display = 'none'; });
} else {
target.classList.add(className);
ulChildrenMap(function(ul) { ul.style.display = 'block'; });
}
});
}
})();