Tag: web design

Basic Web Design – Lesson 1 HTML

Basic Web Design – Lesson 1 HTML

A 36 minute short project for beginners covering making a CV using HTML

This lesson (HTML) covers core concepts of HTML as well as a tutorial on how to create and write basic html for a CV.

CC (Creative Commons) so please if you so wish use as an educational resource.

Patreon donations gratefully received at https://www.patreon.com/noirvortex

Visual Code Download Link
https://code.visualstudio.com/

Subjects covered:
Concepts – 0:00 to 8:45
What is HTML?
HTML5 and introduction to concept of CSS
Introduction to the concept of content and presentation
Commonly used tags
How to structure an initial Index.html file (and file formats)

Coding Tutorial : 8:48 – end
Guided video Tutorial showing how to create a basic CV .html file

Sourcecode here (but try coding it yourself first!!) https://github.com/drnoir/Basic-Web-D…

HTML history –
https://www.w3.org/People/Raggett/boo…

W3C
https://www.w3schools.com/html/

Bootstrap Responsive Landscape Image Slider-Demo on Github

Bootstrap Responsive Landscape Image Slider-Demo on Github

https://github.com/drnoir/Bootstrap-Responsive-Landscape-Image-Slider-Demo

Download / fork etc on link aboe

Bootstrap-Responsive-Landscape-Image-Slider-Demo

Demo in HTML of responsive landscape images scaling and tested on multiple devices made with Bootstrap / css / Jquery

Features:

  • Responsive Bootstrap Layout
  • Creates scrollable and responsve full page height images that will display wide range of devices via css / Media Queries
  • Side menu with additional onclick submenu (View Demo in index.html to see)

A quick demo of a landscape image slider made with Bootstrap, custom CSS and JQuery

View the Index.html example to see the resizing of all images to browser view windows across – desktop / laptop / mobile / tablet etc

Notes on important files

  • index.html – Main HTML
  • custom.css – all custom css is managed here including media queries (will probably seperate out eventually, as it is somewhat bloaty)
What I have learned from 10 years of being a Developer

What I have learned from 10 years of being a Developer

A semi serious / semi comedy video about my 10 years of being a developer including some stories about work I’ve done, some funny anecdotes and stories and how I got into game dev and web / multimedia dev, as well as a few bits of general advice on freelance design and development work.

With some captures from games and websites.

Neverwinter nights old mod I did when a youngster https://neverwintervault.org/project/…

and my website for up to date projects www.noirvortex.co.uk

Building a responsive Web Comic

Building a responsive Web Comic

Live Site Address: http://www.thedreamreaper.net

The Dream Reaper is a new webcomic being published online by Artist and Illustrator Augustinas Naslenas, working from his studio in Sheffield. This is a brief exploration of the code I used to make the site and some background. I will transform it into a tutorial in the coming week, but for now it is annotated code with some information / rough description.

Design Proposal

Gus approached me about a month or so ago to see if I could assist him with his vision with Dream Reaper, we had met randomly at a show he was doing at a Sheffield gallery and had a chat about Terrence Mckenna, technology and plants, so I knew that this guy was a fellow I had a lot in common with haha, his art piece also wowed me with it’s mix of the futuristic, the sacred and the ancient / occult symbolism and I recognised him as an artist engaged in work that was of much interest.

He proposed creating a multi-platform, responsive template for a webcomic he had in the pipeline, based around ideas of Shamanism, journeying and dreamwork. This naturally to me sounded like an amazing idea and challenge, so I jumped at the chance to approach it with my knowledge and experience of designing for the web.

The initial brief was clear, but it was going to be challenging in some respects, these respects being the way each strips had to nicely scroll on all devices (Tablet / Mobile / Desktop etc) and how to present that best was a key element, and had to be central to the sites design. The website also provided some interesting presentation / UX / UI questions – how to present the strip, but also how best to display chapters and navigation etc.

What follows is an exploration into the main technical implementations on the site thus far and some context and explanation of what the code is doing. It’s the first time I’ve done a more technical / in-depth blog like this, so please give me feedback if you have any. I am still looking to develop this website still further, so please bear in mind that whilst the website is up and running, there are still some incremental improvements to be made, so this does not reflect the final version of the code, which I am looking to next convert into a WordPress theme. Now with that preamble out the way….

Dependencies

<link href="css/bootstrap.min.css" rel="stylesheet">
<link href="css/bootstrap.css" rel="stylesheet">
<link href="css/custom.css" rel="stylesheet">
<link href="https://fonts.googleapis.com/css?family=Courgette" rel="stylesheet">
<link href="https://fonts.googleapis.com/css?family=Passion+One" rel="stylesheet">
<link href="https://fonts.googleapis.com/css?family=Kaushan+Script" rel="stylesheet">
<link href="https://fonts.googleapis.com/css?family=Condiment" rel="stylesheet">
<link href="https://fonts.googleapis.com/css?family=Gloria+Hallelujah" rel="stylesheet">
<link rel="stylesheet" href="css/font-awesome/css/font-awesome.min.css">

Layout and Design of Dream Reaper

The first challenge and the major one to tackle straight away was the representation of the strips themselves as part of the main interface, Gus wanted ideally a responsive horizontal strip that would scale appropriately, maintaining maximum readability across all devices. I decided to use Bootstrap to create a basic layout (Using bootstrap pre-defined layout classes such as container / row fluid etc ) with container and a sidemenu.

The code for the HTML5 layout and associated presentation CSS (defined in Custom CSS) for responsiveness is displayed blow with annotations.

Layout HTML for comic Image/s

<div class="row-fluid">

    <button type="button" onclick="openNav()" id="backward" class="btn btn-default back"><i class="fa fa-bars fa-3x" aria-hidden="true"></i></button>
        <div class='strip scrollmenu'> 
            <img src ="content/eftsc-cover.jpg" class='make-it-fit'/><img src ="content/eftsc-4.jpg" class='make-it-fit'/><img src ="content/eftsc-cs.jpg" class='make-it-fit'/>
        </div>
    </div>
<!-- /row -->

Notes: Images have to be inserted into div as they are presented or else it creates a gap between images, breaking the design somewhat, seems to be a whitespace issue. The row fluid is a standard Bootstrap class that defines a row within the container div above it. The custom classes are “strip” and “scrollmenu” which in turn define that div as scrollable and defines some responsive and presentational css to ensure readability and scalability of the div / images within across all devices.

Each image also has it’s own class “make-it-fit”. .

The Button is for the menu to open up with an on click to trigger the openNav() javascript function which opens up the sidemenu.

Get onto that more below later…

Read CSS below for further context

CSS for presentation  of Comic Image/s

/*Classes to add scrollmeny to div rowfluid */
div.scrollmenu {
    overflow: auto;
    white-space: nowrap;
}

div.scrollmenu a {
    display: inline-block;
    top:0;
    color: white;
    text-align: center;
    padding: 14px;
    text-decoration: none;
}

div.scrollmenu a:hover {
    background-color: #e4bd78;
}

/*class for main content container div rowfluid for strip*/
.strip {
     /*Resize div to current viewport*/
    width:100%;
    height: auto;
    /*Positions content in center, add no repeat and fixed positioning*/
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    position: fixed;
     /*Maintains position*/
    left:0;
    right: 0;
    top: 0;
    bottom:0;
    
    text-align: center;
}

/*Image class to make image/s responsive within container rowfluid */
img.make-it-fit {
    position: relative;
    max-height: 99%;
    width: auto;
}

Next up is the layout and presentation / CSS and javascript controlling the side menu

Side Menu Layout HTML

<div id="mySidenav" class="sidenav">

    <a href="javascript:void(0)" class="closebtn" onclick="closeNav()">&times;</a>
    <a href="index.html">Home</a>
    <a href="about.html">About</a>
    
    <a href="#" data-toggle="collapse" data-target="#collapseChapter" aria-expanded="false" aria-controls="collapseChapter">Chapters</a>
                
                <div class="collapse chapternav" id="collapseChapter">
                                    <a class = "chapter-inactive" href = '#'>1</a>
                                    <a class = "chapter-inactive" href = '#'>2</a>
                                    <a class = "chapter-inactive" href = '#'>3</a>
                                    <a class = "chapter" href = 'index.html'>4 - The Meeting</a>
                                    <a class = "chapter-inactive" href = '#'>5</a>
                                    <a class = "chapter-inactive" href = '#'>6</a>
                                    <a class = "chapter-inactive" href = '#'>7</a>
                 </div>
                            
    <a href="contact.html">Contact</a>
    <a href="subscribe.html">Subscribe</a>
    
</div>

Notes: See below for CSS context for classes. The div with class collapse chatpernav is the submenu for the chapter list that is opened via the datatoggle controls in bootstrap which you can read more about on the Bootstrap knowledge base 

CSS Sidemenu

/* The side navigation menu */
.sidenav {
    height: 100%; /* 100% Full-height */
    width: 0; /* 0 width - change this with JavaScript */
    position: fixed; /* Stay in place */
    z-index: 2; /* Stay on top */
    top: 0;
    left: 0;
    background-color: #77420f; 
    overflow-x: hidden; /* Disable horizontal scroll */
    padding-top: 60px; /* Place content 60px from the top */
    transition: 0.5s; /* 0.5 second transition effect to slide in the sidenav */
}

/* The navigation menu links */
.sidenav a {
    padding: 8px 8px 8px 32px;
    text-decoration: none;
    font-size: 25px;
    font-family: 'Condiment', cursive;
    color:#ecb685;
    display: block;
    transition: 0.3s;
   
}

.sidenav h2{
    padding: 8px 8px 8px 32px;
}

.sidenav a.chapter{
    font-size: 20px;
}

.sidenav a.chapter-inactive{
    font-size: 20px;
    color:#e4bd78;
}

/* When you mouse over the navigation links, change their color */
.sidenav a:hover, .offcanvas a:focus{
    color: #e4bd78;
}

/* Position and style the close button (top right corner) */
.sidenav .closebtn {
    position: absolute;
    top: 0;
    right: 25px;
    font-size: 36px;
    margin-left: 50px;
}

.chapternav{
        background-color:#77420f;
}

Custom Javascript

$('#for').on('click', function (){
$( "img.make-it-fit" ).animate({
   right: "+=500px",
  }, 5000, function() {
    // Animation complete.
  });
});

/* Set the width of the side navigation to 250px and the left margin of the page content to 250px and add a black background color to body */
function openNav() {
    document.getElementById("mySidenav").style.width = "150px";
    document.getElementById("main").style.marginLeft = "150px";
    document.body.style.backgroundColor = "rgba(255,255,255,0.4)";
}

/* Set the width of the side navigation to 0 and the left margin of the page content to 0, and the background color of body to white */
function closeNav() {
    document.getElementById("mySidenav").style.width = "0";
    document.getElementById("main").style.marginLeft = "0";
    document.body.style.backgroundColor = "white";
}
 // RELOADS WEBPAGE WHEN MOBILE ORIENTATION CHANGES  
    window.onorientationchange = function() { 
        var orientation = window.orientation; 
            switch(orientation) { 
                case 0:
                case 90:
                case -90: window.location.reload(); 
                break; } 
    };

Notes: Two main function of the javascript here – top one two function simply control the sidemenu – showing and hiding it from view , and the other reloads the page when the orientation changes (was having a distortion issue when orientation changes from vertical to horizontal on mobile devices so this was required.

Future Developments of Dream Reaper

I am looking to next convert the dreamreaper code into a PHP WordPress template, which I will release as a general purpose template for people who want to publish web comics.

The website is online and working fine, but this remains the next stage in it’s development and in general, the next stage in the development of a theme for people who want to publish a web comic via wordpress which I think would be a nice addition.

Thanks for reading. Look for updates soon, I will be updating this blog over the next few weeks when time allows.

Rapid Website development using Bootstrap Template

Rapid Website development using Bootstrap Template

Website : www.chrisgodberart.co.uk 

Rapid Website Application 

A website created quickly in one night as an exercise in rapid web development to showcase some of my art using a responsive and accessible Bootstrap Template that I then customised with my own content, as well as adding some JQuery for a lightbox options to display some paintings and drawings.

UI 

I wanted the website UI to emphasise a strong bold visual that is easy and also fast to navigate so I using an existing bootstrap template here https://startbootstrap.com/template-overviews/stylish-portfolio/ which was based around responsive design and showcasing creative work.

Advantages of using Boostrap in rapid app / website dev 

This saved me the effort of having to create a lot of responsive classes and sped up the process of creating layout classes (one of the main advantages of using the bootstrap framework for quick prototyping and web design) whilst still presenting my work in an interesting way that is led by visual design and minimising text bloat (Which I consider important for showcasing visual art, to me personally nothing more offputting than a text heavy artist site with no pics of their work….)

I decided to also incorporate a video I did a few years ago of being interviewed about my artwork to make the website even more visual and interactive in a sense and to add a nice element of additional media.

It is simple in design and execution , and Bootstrap is often very useful for rapidly creating interfaces given it’s modular pre-defined classes / components / JS library and  grid system.

Advice on getting started with Bootstrap 

I think the best way to get started with it, is to build a simple website layout from scratch as opposed to building with templates at first, to get familiar with the CSS / Grid System and JS / JQuery functionality as well as directory structures. But it’s definitely is useful for rapid application building to use a template if you are tied for time, and still achieve a nice result without compromising quality design / visual aesthetic and responsiveness / cross browser compatibility.

Download Bootstrap here: http://getbootstrap.com/