Construire un portefeuille basé sur Instagram avec Bootstrap

Dans ce tutoriel, je vais suivre le processus de création du portefeuille simple basé sur Instagram, conçu dans un précédent tutoriel de Tomas Laurinavicius..

Thomas a fait un excellent travail en conservant un design simple, spacieux et fonctionnel, donc je pense que ce n’est que justice que nous fassions de même lorsque nous le construisons. Pour nous faciliter la vie, nous allons nous appuyer sur quelques outils et bibliothèques. Commençons par les examiner..

Outils du commerce

Il y a quelques choses que nous devons préparer avant de commencer notre construction. Elles sont:

  • Toupet
  • Twitter Bootstrap (version Sass)
  • Instafeed.js
  • Moderniser

Tout d'abord, vous devez installer Sass sur votre ordinateur. Pour ce faire, le moyen le plus simple consiste à utiliser l'une des excellentes applications disponibles pour regarder et compiler. J'utilise actuellement Koala, qui est multi-plateforme et gratuit, c'est donc une très bonne option pour être opérationnel rapidement. Il existe des alternatives telles que l'application Scout, Prepros et Compass. Ils offrent tous presque la même fonctionnalité et le choix vous appartient.!

La prochaine étape est Bootstrap. Nous allons utiliser Bootstrap à un niveau très basique pour gérer certains des éléments réactifs de la page. Nous voulons spécifiquement télécharger le Version sass afin que nous puissions l'inclure dans notre propre feuille de style et utiliser les variables disponibles. Allez-y et téléchargez la dernière version.

Presque là! Nous avons maintenant besoin de récupérer un exemplaire de Instafeed.js, qui gèrera tout le travail en prenant des photos sur Instagram. Il convient de noter ici que pour obtenir quelque chose d’Instagram, vous devez fournir au plugin un identité du client qui peut être généré en vous inscrivant à Instagram et en remplissant le formulaire dans la section développeurs.

Enfin, nous devrions télécharger la dernière version de Modernizr afin de pouvoir, si nécessaire, cibler certaines fonctionnalités du navigateur. Nous avons donc également le shim HTML5 pour les navigateurs plus anciens. Ce n’est pas strictement nécessaire, mais j’aime bien l’inclure dans des projets pour être sûr.

Maintenant que nous avons ces atouts, nous pouvons commencer notre construction!

Structure de fichier et de dossier

Nous devons créer des fichiers et des dossiers pour notre projet. Allez-y, créez ce qui suit dans le répertoire racine du projet..

  • css /
  • images/
  • js /
  • index.html

Ceci est notre bloc de base. Ensuite, recherchez l’archive Bootstrap que vous avez téléchargée précédemment et extrayez-la quelque part, facilement. Dans le dossier extrait devrait se trouver un dossier nommé les atoutsOuvrez ce dossier et vous verrez quelque chose de similaire au suivant:

Copier le les policesrépertoire dans la racine du projet avec les autres dossiers que nous venons de créer. S'ouvrir javascripts et copier le bootstrap.jsdéposer dans le jsdossier de notre projet. Enfin, ouvrez le feuilles de style répertoire et copiez le bootstrap.scssfichier et bootstrapdossier dans le css dossier de notre projet. Nos fichiers et dossiers devraient maintenant ressembler à ceci…

Bon travail! Maintenant, trouvez le instafeed.min.js et Moderniser les fichiers que vous avez téléchargés précédemment et les copier dans le jsdossier. Nous avons juste besoin de mettre en place un peu plus de choses avant de pouvoir commencer à construire la mise en page.

Sass Setup

Il est maintenant temps de configurer notre projet dans l'application Sass que vous avez choisi d'utiliser. En Koala, il s'agit de faire glisser le dossier dans la fenêtre de l'application. Je crois que c'est un processus similaire pour les autres aussi. La prochaine chose que je fais toujours lors de la configuration est de regarder les options de compilation Sass et, le cas échéant, de cocher la case pour utiliser Autoprefixer. Cet ajout pratique analysera notre fichier Sass et ajoutera tous les préfixes de fournisseurs dont nous avons besoin afin que nous n'ayons pas à nous soucier de les écrire nous-mêmes. N'hésitez pas à jouer avec les paramètres de votre application Sass pour obtenir la meilleure configuration possible. J'aime garder les choses simples et vérifie normalement simplement le préfixe automatique et un style de sortie de Étendu (Comprimé en production).

Ajout de fichiers

Ouvrez le projet dans l'éditeur que vous utilisez pour pouvoir ajouter quelques fichiers..

Tout d'abord sous la cssrépertoire ajouter un fichier appelé style.scss. Puis à l'intérieur du js dossier ajouter un fichier appelé app.js.

Assurez-vous d'actualiser l'application Sass que vous utilisez pour qu'elle récupère les nouveaux fichiers. Certains le font automatiquement mais il est préférable de vérifier et d'actualiser manuellement si nécessaire.

Je pense que c'est tout le fichier mis en place pour le moment. Nous pouvons continuer avec la construction de la mise en page!

Commencer la construction

S'ouvrir index.html et entrez (ou copiez / collez) le code HTML de base suivant:

    Portfolio Instagram        

Nous avons notre premier morceau de code! Faisons le décomposer. 

le la section contient la fenêtre de visualisation nécessairetag afin que nos requêtes de média fonctionnent correctement. Ensuite, nous donnons un titre à la page et incluons un  balise pour les différentes polices de Google que nous voulons utiliser. Les polices ici sont basées sur celles utilisées dans la conception de Thomas. La ligne suivante peut paraître étrange car nous n’avons pas créé de style.css fichier encore, mais la génération de ce fichier sera gérée par notre compilateur Sass. Enfin, nous incluons Modernizr.

le L'élément contient quatre autres éléments pour contenir chacune des bandes qui apparaissent sur le dessin. J'ai appliqué des classes descriptives à la

éléments afin que nous puissions voir clairement à quoi ils serviront.

Référencement de fichiers JavaScript

Ajoutez l'extrait suivant sous le pied de page section:

    

Celles-ci > les balises pointent vers nos différentes bibliothèques JavaScript, y compris jQuery à partir du CDN de Google, requis par Bootstrap.

modes

Nous avons nos blocs de construction de base alors poursuivons en mettant en place notre style.scss déposer un peu.

/ * * Variables personnalisées * / $ main-font: 'Lato', sans-serif; $ sous-police: 'Montserrat', sans-serif; $ fancy-font: 'Kaushan Script', cursive; $ taille de police: 16px; $ noir: # 000; $ white: #FFF; $ grey: # 585c65; $ mediumgrey: # 9b9b9b; $ lightgrey: #eeeeee; $ blue: # 3466a1; $ padding: 10px; $ marge: 10px; / * * Ignorer les variables Bootstrap * / $ font-family-sans-serif: $ main-font; @import 'bootstrap';

Ici, nous définissons des variables que nous pourrons utiliser ultérieurement dans notre feuille de style. Tout d’abord, quelques variables liées aux polices. C’est là que nous importons les polices Google que nous avons incluses précédemment et donnons à chacune d’elles un repli si, pour une raison quelconque, la police ne se charge pas ou ne fonctionne pas..

Nous avons ensuite des variables de couleur qui ont été choisies dans la conception. C’est l’une des raisons pour lesquelles j’aime autant Sass que nous pouvons définir nos couleurs ici et oublier de nous rappeler ou de copier les valeurs hexagonales partout..

Enfin, pour nos variables personnalisées, nous avons quelques marges simples et un remplissage. J'aime les inclure même si je ne les utilise pas toujours. Il est agréable de pouvoir utiliser une valeur de base et nous donne la possibilité d’apporter des modifications uniformes aux éléments qui utilisent les variables..

La section suivante indique où nous incluons Bootstrap, mais auparavant, nous devrions définir la variable de police principale Bootstrap. $ font-family-sans-serif pour égaler notre précédemment créé $ main-font variable. Cela signifie que lors de la compilation de Bootstrap, il utilisera notre police principale plutôt que sa propre.

le @importationdéclaration ici n'inclut pas la .scss à la fin du fichier car cela n’est pas nécessaire lors de l’inclusion d’autres fichiers Sass. Sass est assez intelligent pour chercher et trouver le bon fichier. Enregistrez le fichier et si tout va bien, votre application Sass réalisera que vous avez enregistré un fichier Sass et compilez style.css.

Plus de styles

Continuons en ajoutant quelques styles:

* position: relative; taille de la boîte: boîte-frontière;  corps color: $ grey; taille de police: $ taille de police;  header max-height: 600px; hauteur: 600px; débordement caché; 

Ici nous utilisons le sélecteur universel * tout définir comme position: relativeil n'y a donc pas de surprise à utiliser des éléments en position absolue. Il est également utile de régler universellement le taille de la boîte propriété à boîte à bordure afin que nous puissions utiliser des largeurs de pourcentage et ne pas nous soucier du remplissage de l'élément ayant une influence sur la présentation.

Nous définissons ensuite une couleur et une taille de police par défaut pour notre corps et donnons la élément de hauteur.

Voilà pour notre fichier Sass pour le moment. Retournez dans le index.html déposer afin que nous puissions commencer à travailler sur l'en-tête.

Fleshing Out the Header

L'en-tête de cette conception est simple, ce qui facilite sa construction. Le balisage avec lequel nous allons travailler est le suivant:

Les montagnes 
Jonathan

Bonjour! Je suis Jonathan

J'aime voyager partout dans le monde et concevoir de belles choses

Facebook Twitter Instagram

Cela devrait aller entre notre  Mots clés. Vous remarquerez que la balise image fait d'abord référence à une image qui n'existe pas. Nous devrons découper cette image dans le PSD. Je n'entrerai pas dans les détails pour savoir comment faire cela dans ce tutoriel, mais si vous avez besoin d'aide pour le processus, consultez cette astuce rapide..

Le reste du code d'en-tête comprend trois div éléments contenant le nom, les titres et les liens sociaux. J'ai appliqué quelques classes à ces éléments que nous utiliserons ensuite dans notre fichier Sass.

Styles d'en-tête

Commençons par ajouter quelques lignes de code dans notre entête déclaration.

img position: fixed; en haut: 0px; à gauche: 50%; marge gauche: -600px; largeur: 1200px; @media screen et (min-width: $ screen-lg) top: auto; gauche: auto; marge: 0; largeur: 100%; 

Cela devrait être imbriqué à l'intérieur la entête section de notre fichier Sass juste en dessous des déclarations de l'en-tête lui-même.

Image fixe

Vous verrez ici que nous avons défini la position du imgtag à fixéCela signifie que l'image restera en position lorsque l'utilisateur fera défiler, créant ainsi un sentiment de profondeur. L'idée est que le contenu défile vers le haut sur l'image dans l'en-tête. Alors que nous adoptons une première méthodologie mobile, nos styles de base donnent à l’image une largeur définie et la positionnent au centre en appliquant une marge gauche négative correspondant exactement à la moitié de sa largeur. Cela fonctionne car le point de transformation de l’image en CSS est le coin en haut à gauche, donc quand on donne un à gauche: 50%déclaration, il placera le bord gauche de l’élément au centre de l’écran. Le petit tour de la marge négative nous aide à bien centrer les éléments avec un positionnement absolu ou fixe.

Requête de média

Nous avons ensuite la première utilisation d’une de nos variables de taille d’écran. Nous disons ici: sur les grandes fenêtres, l’image remplit la largeur du navigateur et la positionne dans le coin supérieur gauche. Il est important de réinitialiser la marge pour que l'image ne soit pas légèrement tirée vers la gauche..

Jetons un premier coup d'œil à notre travail dans le navigateur!

Continuons…

.nom taille de la police: 21px; position: absolue; en haut: 50 px; à gauche: 50px; couleur: $ blanc;  .titles position: absolute; en bas: 40%; largeur: 100%; text-align: center; @ media screen et (min-width: $ screen-lg) en bas: 50%;  h1, h2 width: 100%; couleur: $ blanc; marge: 0; 

Ici nous mettons en place le prénomet titres la position des éléments et les styles de police. Nous devons utiliser une requête de média sur le titresélément pour le pousser un peu plus sur les grands écrans. Faisons un rafraîchissement rapide dans le navigateur.

Cela semble déjà mieux! Ranger ces titres un peu plus.

h1 text-transform: majuscule; poids de police: 700; taille de police: 36px; espacement des lettres: 0.06em; marge-bas: marge; span display: block; @media screen et (min-width: $ screen-md) display: inline;  h2 font-size: 16px; largeur: 70%; marge: 0 auto; @ media screen et (min-width: $ screen-lg) width: 100%; marge: 0; 

La principale chose à noter ici serait la style pour le envergureélément. Nous utilisons le envergurebalise dans notre code pour envelopper une partie de la rubrique principale. Cela nous permet de le cibler dans le CSS et, comme nous l’avons fait ici, de changer sa disposition. Sur mobile, nous avons besoin que ce soit un élément de niveau bloc afin qu'il s'empile en dessous, mais sur des écrans plus grands, il convient de le faire comme un texte normal. Cela devrait être beaucoup mieux maintenant…

Police de fantaisie

Un style rapide que nous devrions ajouter est pour le nom dans le coin supérieur gauche. Placez le code suivant tout à la fin du fichier Sass, en dehors du fichier entête bloc.

.fancy-font font-family: $ fancy-font; 

Nous appliquons notre police de fantaisie à n'importe quel élément de cette classe. C’est pour que nous puissions le réutiliser chaque fois que nous en avons besoin et ce n’est pas limité à un élément particulier..

Icônes sociales

Nous devrions attirer l'attention sur les icônes sociales qui, dans ce cas, impliqueront de créer des sprites pour les affichages à résolution normale et les affichages à haute résolution (Retina).

Rendez-vous sur Iconfinder et récupérez chacune des icônes de la conception. Il est préférable de choisir une taille plus grande que celle dont nous aurons besoin pour ne pas avoir de problèmes à les redimensionner. J'opte toujours pour la taille 256px.

Dans votre logiciel d'édition graphique (tel que Photoshop), créez un nouveau fichier de 152 à 52 pixels. Faites glisser chaque icône et réduisez-la à 48px par 48px. Les icônes sont noires, mais nous avons besoin qu’elles soient blanches, alors appliquez un filtre à chacune d’elles..

Nous devons maintenant les positionner. Nous aurons deux pixels d'espace autour de chacun, alors déplacez le premier sur le bord gauche et éloignez-le de deux pixels. De même, éloignez-le du bord supérieur de deux pixels. Positionnez les icônes suivantes à deux pixels du bord supérieur et à deux pixels l’une de l’autre. Vous devriez vous retrouver avec ceci:

Ce sera notre version de Retina. Ignorer le fond noir ici, j'ai ajouté ceci juste pour que nous puissions voir les icônes dans l'image.

Utilisation de Photoshop Enregistrer pour le Web function (ou équivalent dans votre application) enregistre cette image avec le nom de fichier [email protected]. Assurez-vous de le placer dans le dossier images de notre projet. Nous devons maintenant redimensionner l'image de l'image-objet pour obtenir la taille de résolution standard. Nous pouvons le faire dans Photoshop directement dans le Enregistrer pour le Web boite de dialogue. L'important est que l'image doit être redimensionnée à 76px par 52px. Enregistrer cette taille sous social-sprite.pnget placez-le aussi dans le dossier images.

Avec cela, nous avons nos sprites alors écrivons du code pour les utiliser! Placez le code suivant à l'intérieur du entêtesection juste après les styles pour la h1et h2.

.social position: absolue; en haut: 55px; à droite: 50px; débordement caché; a float: left; largeur: 26px; hauteur: 26px; marge: 0 5 px; retrait du texte: -9999px; fond: url (… /images/social-sprite.png) no-repeat; opacité: 0,8; &: survol opacité: 1.0;  @media screen et (-webkit-min-device-pixel-ratio: 2), écran et (-min-device-pixel-ratio: 2) background: url (… /images/[email protected] ) non répété; taille de l'arrière-plan: 76px 26px;  & .facebook background-position: 0px 0px;  & .twitter background-position: -25px 0px;  & .instagram background-position: -50px 0px; 

Wow, ça a l'air compliqué, même si ce n'est pas vraiment honnête! Pour commencer, nous positionnons l'emballage .social élément dans le coin en haut à droite.

Ensuite, nous appliquons quelques styles à la balises pour définir la hauteur et la largeur de chacune d’elles et pour supprimer le texte à l’aide d’une grande retrait du texte. Nous établissons également la base opacitéà 0,8 que nous changeons à 1,0 en vol stationnaire. Cela donne un effet de retournement simple.

La section suivante est pour nos sprites. Nous devons faire savoir aux appareils dotés d’écrans à haute résolution que l’endroit le plus intéressant pour la résolution de la requête de média. Nous devons bien régler le taille de fond propriété de sorte que l’image se réduit à la taille "correcte". Maintenant, nous devons définir le position de fondpour chaque icône. Enregistrer, enregistrer, enregistrer et actualiser!

Comme vous pouvez voir notre fantaisie le style travaille sur le nom et nos icônes sociales sont jolies. Bon travail!

La prochaine section traitera du contenu principal pour lequel nous utiliserons Instafeed.js pour nous connecter à l'API d'Instagram et afficher quelques images de notre page..

Flux Instagram

Nous allons commencer par ajouter du balisage à notre index.htmlla page, alors ouvrez-la et copiez / collez le texte suivant dans le

étiquette:

Dernières photos

309 mentions J'aime
Architecture fantastique #architecture #test
16 septembre 2014

Vous verrez ici que j'ai balisé chaque section dont nous aurons besoin pour les photos Instagram. Le code correspondant ne sera pas chargé à partir de la page HTML, mais à partir du code JavaScript écrit pour Instafeed.js. Ne vous inquiétez pas pour le moment, nous essayons simplement de bien coiffer le style à ce stade..

Grille de Bootstrap

Si vous avez déjà utilisé Bootstrap, vous remarquerez peut-être que nous utilisons des classes Bootstrap pour la première fois. Nous utilisons col-xs-xx, col-sm-xx, col-md-xx, col-lg-xx classes pour ajuster les éléments à différentes tailles d’écran. En résumé, la grille Bootstrap fonctionne à travers des conteneurs, des lignes et des colonnes. Chaque rangéedoit être à l'intérieur d'un récipient et chaque colonne doit être à l'intérieur d'un rangée. Il doit également y avoir un total de douze colonnesdans chaque rangée. C'est là que les cours aiment col-xs-12entrez dedans. À la taille de l'écran xs cet élément doit s'étendre sur douze colonnes qui, visuellement à l'écran, apparaît comme une grande colonne. 

De même, si nous mettons col-xs-12 col-sm-6 col-md-3en tant que classes sur un élément, il demandera à cet élément d'avoir une mise en page pleine largeur à xstaille de l'écran, deux colonnesà sm taille de l'écran et quatre colonnes à Maryland taille de l'écran. C’est un peu déroutant au début, mais si vous comprenez comment les classes sont nommées et ce que chacune d’elles représente à l’écran, son utilisation deviendra très intuitive à la fin.. 

En savoir plus sur Bootstrap dans le cours gratuit Tuts + Bootstrap 3 pour Web Design.

Un autre point à mentionner est l'utilisation de test_img.jpgqui n'existe pas encore. Ceci est une image de substitution que j'ai créée pour utiliser dans le balisage. N'hésitez pas à créer le vôtre ou à utiliser celui des fichiers source fournis, assurez-vous simplement de le mettre dans le images annuaire.

Styles Instagram

Maintenant, nous avons le balisage ajoutons quelques styles:

.instagram-wrap background: $ lightgrey;  .instagram-content h3 text-transform: uppercase; espacement des lettres: 0.5em; taille de police: 12px; poids de police: 700; text-align: center; remplissage: $ padding * 5 0; couleur: plus foncée (gris clair, 20%); 

Vous aurez besoin de placer ce code juste après le tout entête bloquer dans le fichier Sass principal. Il applique des propriétés de couleur d'arrière-plan et des styles de police. Enregistrez le fichier Sass et jetez un coup d'oeil dans le navigateur.

Cette petite quantité de code a fait une différence substantielle. Nous devons le rendre encore meilleur, alors dans le fichier Sass, ajoutez le code suivant:

.boîte à photos marge: 0 0 $ marge * 3 0; .image-wrap img width: 100%;  .likes position: absolute; en bas: 5px; à gauche: 15px; rembourrage: $ padding / 2; fond: $ noir; arrière-plan: rgba ($ black, 0,4); couleur: $ blanc;  .description font-family: $ sous-font; taille de police: 12px; fond: $ blanc; couleur: gris moyen; espacement des lettres: 1px; rembourrage: $ padding * 1.5; hauteur: 75px; débordement caché; espace blanc: maintenant; débordement de texte: points de suspension; 

Cela doit aller juste après le h3déclaration à l'intérieur .contenu instagram.Passons rapidement en revue ceci petit à petit. Nous donnons notre .boîte à photosun peu de marge inférieure afin que chacun soit bien espacé. Nous n'avons pas à nous soucier des espacements gauche et droit, car cela est géré par Bootstrap. Nous nous assurons ensuite que toutes les images de notre .encapsulation d'image sont 100% de large afin qu'ils évoluent avec le navigateur. le .aime L'élément doit être positionné absolument dans le coin inférieur gauche de la zone d'image et son texte est blanc sur un fond noir semi-transparent.. 

Enfin, les styles pour .la description. Les quatre dernières propriétés permettent à la boîte de masquer gracieusement tout texte en débordement en fournissant des points de suspension à la fin. La bonne chose à faire avec CSS est que lorsque les boîtes changent de taille, plus de contenu est révélé, mais les points de suspension feront quand même leur travail si nécessaire. Le support du navigateur est également très complet.

Il est à nouveau temps d’enregistrer le fichier et d’actualiser le navigateur:

C'est beau maintenant! Je pense que la prochaine étape devrait être de remplacer notre code HTML par les images de flux Instagram à l’aide de Instafeed.js.

Utiliser Instafeed.js

Le fonctionnement de ce plug-in permet à quiconque d'ajouter facilement un flux Instagram à son site Web. Cependant, vous aurez besoin d'un identifiant client d'Instagram pour l'utiliser. Vous pouvez en obtenir un en vous inscrivant à un compte Instagram et en vous rendant dans la section des développeurs pour configurer votre identifiant client..

Une fois que tout est configuré, nous devons ajouter le code suivant à la app.js fichier:

$ (function () // Configurer instafeed var feed = new Instafeed (clientId: '97ae5f4c024c4a91804f959f43f2635f', cible: 'instafeed', obtenez: 'tagged', tagName: 'photographyportfolio', liens: true, limite: 8, sortBy: 'le plus récent', résolution: 'résolution standard', template: '
likes J'aime
légende
model.date
'); feed.run (); );

Laissez-moi vous expliquer ce qui se passe ici:

Tout d'abord, un peu de jQuery. Commencez avec une fonction de préparation du document (version abrégée) afin que rien ne soit exécuté avant d'être prêt.

Deuxièmement, déclarer un alimentationvariable et définir sa valeur à une nouvelle instance de Instafeed.

Procurez ensuite Instafeed avec quelques options pour contrôler ce qu’il renvoie:

  • identité du clientL'identifiant client que vous avez obtenu sur Instagram.
  • cibleL'ID de l'élément sur la page que vous souhaitez peupler avec des images.
  • obtenirLe mode dans lequel Instafeed est en cours d'exécution. Utilisez 'tagged' ici pour qu'Instafeed sache que nous recherchons par nom.
  • tagNameLe nom de la balise à rechercher par.
  • liensS'il faut envelopper les images dans des liens vers Instagram
  • limite - Limitez le nombre d'images renvoyées. Utile pour la pagination.
  • Trier parComment trier les images retournées. Mis à le plus récent pour notre projet.
  • résolutionLa taille des images retournées.
  • modèleLe code HTML à utiliser lors du rendu des images sur la page. Nous allons utiliser le balisage que nous avons créé plus tôt. Instafeed utilise des accolades pour indiquer l'endroit où les différentes propriétés de l'image seront insérées.

Enfin, lancez le flux!

Si vous enregistrez le fichier et actualisez le navigateur, vous devriez voir quelque chose de similaire à ceci:

Si vous avez des problèmes, assurez-vous que votre ID client est correct et que le code est correct. Si vous utilisez ce qui est fourni dans les fichiers source, tout devrait bien se passer. Vous devriez voir huit images renvoyées d’Instagram avec les Aime et des descriptions montrant.

Rangement

Nous devons maintenant ranger notre code HTML car nous avons toujours le modèle initial que nous avons codé plus tôt. Revenez à index.htmlet trouvez le code suivant…

309 mentions J'aime
Architecture fantastique #architecture #test
16 septembre 2014

Supprimez ou commentez ceci. J'ai décidé de commenter afin que je puisse y faire référence plus tard si nécessaire.

Le pied de page

Retour dans index.html ajoutez le code suivant à l'intérieur du