As we are all aware, there are always two sides of every website design. The visual side that all users see with all the graphic elements, buttons, pictures and the side behind it, which is the code that is responsible for the functionality of the website. How to achieve the balance?
The enabling side does not contain only one type of code, but it encompasses different ones. First off all it is HTML code, which creates a framework in which to embed CSS (Cascading Style Sheets) or programming languages such as PHP. In other words HTML is used to structure the content on the page, while CSS allows treating your website content and its style separately and programming languages communicate instructions to the computer.
HTML itself does not power such effects as drop down menus or carousels. There is a code which is expressively dedicated to the user interface while other code is used to process data and connect to database. The ‘presentation layer’ refers to graphical interface as well as to the code that powers it, including the code that controls interactive elements such as drop down menus.
Presentation code includes:
- HTML and HTML 5
- CSS
- Scripting languages such as JavaScript, jQuery and Ajax.
Usually all those languages are skilfully weaved together in order to create a visually attractive and highly functional website design.
1. Creating multimedia interface
Animated and immersive design is achieved through the use of either Adobe Flash or combination of HTML, CSS and other scripting languages mixed together.
For many years Adobe Flash was in the lead, but it started to change. Nowadays with the development of HTML 5 and CSS we are able to increasingly replicate much of the interactive and animation effects.
HTML 5, the most recent edition of HTML has made a huge step forward in terms of presentation layer design capabilities. It provides an improved toolkit of elements and properties and acknowledges the way designers work and use particular elements. For example it allows designers to define a navigation group with the new ‘nav’ instead of the previously used ‘div’ element. The animation and interaction design support features of HTML5 have also improved impressively, and the fact that HTML5 is supported on mobile browsers such as Apple’s Safari has opened up the web design possibilities.
A few words about Adobe Flash
Flash is an animation and interactive technology that enables to create highly immersive interface. As for implementation of Flash element in website design the process is quite simple. The component developed in Adobe Flash is exported as a self- contained .swf file and in exactly the same way as an image, the .swf file is embedded within a HTML page. The .swf file can either be a small portion of the page or it can literally be the entire interface. It must be noticed that users must have the Flash player installed in their browser in order to view a page featuring a .swf component.
Despite the capability of creating impressive user experience using Flash has some disadvantages. The most significant one is the fact that the Apple mobile platform simply does not support Flash files. Therefore, the website created in Flash must offer an alternative version of the site for (Apple) mobile viewers (of course only if the market is important enough to them). The invitation for the user to download the latest version of the Flash player on the iPhone is an irrelevant button, since even if they did download Flash the site would still not be accessible.
HTML5 – Flash alternative
As mentioned earlier, combination of HTML 5, CSS and jQuery code now make it possible to reproduce animated websites that were only possible in Flash. Using ‘canvas’ element it is now much easier than ever to design rich and animated user interface. Most modern desktop and mobile browsers support the HTML5 standard which makes it possible to create design that works across a multitude of platforms.
1.1 DHTML, JavaScript, jQuery, and Ajax
Bear in mind that HTML just forms a structure for a content. Scripting languages such as JavaScript, Ajax, and jQuery which control the behaviour of user interface elements and content displayed on a page are woven into that structure.
JavaScript is a dynamic scripting language that is capable of complex animation and interaction effects, such as creating a drop-down menu or an expanding window layer. It allows to interact with the user, control the browser and alter the web page content that is displayed. When JavaScript is implemented into HTML, the HTML is then referred to as ‘DHTML’. Dynamic HTML (DHTML) allows to create interesting interactive components and animations.
jQuery is a simplified form of JavaScript that focuses on the commonly-used interactions between JavaScript and HTML. It is designed to make it easier to navigate a web page. jQuery is a free, open-source software and is available online. You can copy and paste ready scripts into your web pages and customize them to serve your purposes. Using jQuery, you can create animation and interaction design effects with much less code than would be required with JavaScript.
Examples of jQuery effects:
- Expanding and collapsing according windows
- Carousel image rotation
- Image zoom upon rollover etc.
Ajax (Asynchronous JavaScript and XML) allows data processing such as sending or retrieving data to occur in the background (asynchronously) without interfering with display or behaviour of the web page. Therefore reloading the page or clicking an “update” button is not required and data on the page can be refreshed/updated automatically.
1.2 Advanced CSS Graphic Effects
In the past, in order to create a graphic element, a button for example, we used to rely on bitmap graphics such as jpeg or gif. Not only do they increase the load time of the web page but also they have to be created by designers familiar with software such as Photoshop, and then they have to be hand-changed every time you wish to change the look of the site.
Nowadays CSS is offering increasing levels of stylistic control over the appearance of elements. It’s now possible to add gradations, rounded corners, reflections, and soft drop shadows to text and elements simply through code.
There are quite a few useful CSS graphical style controls that we can be implemented to avoid the use of bitmap graphics in building user interface.
The advantages of using CSS for our user interface include:
- Faster download times – CSS code is written just once, and can be applied as a style to any graphic or text element;
- Scalable design – CSS code allows you to apply scalable attributes to fonts and elements;
- Easy maintenance – In order to change the size, colour, and visual effects of a button, text, or design element, we simply change values in the CSS code, and the change will be applied to all elements assigned to the particular style;
- Accessibility – in CSS we are using actual text for our buttons and interface elements, and these are tagged and identified in a way that screen readers can digest and translate for users who rely on such devices.
1.3 Responsive design
The most recent trend in website design is ‘responsive design‘. It is an approached aimed at creating websites in a way that provides an optimal viewing experience, easy to read and navigate across the wide range of devices. When the user changes the size of their browser window, the web page updates immediately in order to optimally display in the ‘view port’ size. View port is a new term designers use to refer to not only different desktop browser sizes, but also mobile devices which all have different fixed screen sizes.
Responsive design is possible thanks to the ‘media queries portion of the CSS3 specification. It recognizes the browser’s size and tells the page to load the appropriate style sheet, for example ‘widescreen.css’ or ‘mobilescreen.css’. It is possible because different style sheets contain different layout systems, font sizes, and image optimization settings.
The last but not least is getting a creative ideas for user interface. There are plenty of inspirations online. It would be advised to analyse good design practices, break them down to essentials, and see how some of them can be adapted for application in our own field.