Resonsive Web Design With Macaw
Resonsive Web Design With Macaw
CONTENTS
Chapter 1: Introduction ..............................
7
8
11
13
14
21
25
30
31
35
37
38
41
44
50
60
CHAPTER ONE
INTRODUCTION
Lets get started!
http://schonne.com/rwd/
Video Tutorials
Throughout this book, youll find links to short explanation videos that help
illustrate the concepts. These videos are free!
I also offer a complete paid video tutorial course that builds a multi-page
website from scratch, starting with Macaw. More information about that
video course can be found here: http://schonne.com/macaw/start-to-finish.
http://schonne.com/rwd/
Notes
I wrote this book assuming the reader has some basic understanding about
HTML and CSS and how they work together. I briefly cover JavaScript in
the advanced chapters, however, knowledge of JS is not mandatory to use
Macaw or to get the most out of this book.
If you paid for this book, get your money back.You got scammed.
GET FREE UPDATES TO THIS BOOK
If you havent already, make sure youre on my Macaw mailing list so I
can send you free updates and Macaw tutorials and tips.
http://schonne.com/macaw/
http://schonne.com/rwd/
INTRODUCTION
Dear Reader,
Thanks for taking the time to read my little book. I created this book as a
labor of love, largely because I believe there is a need for a tool like Macaw
in the modern web development workflow. I feel that its a great way for
someone new to web development to get to the fun stuff about developing
a sitenamely creating one and pushing it live. But I also think it can be
extremely useful in a production environment with highly skilled designers
and developers. Macaw allows designers to escape from the two dimensional
Photoshop environment so they can create actual responsive websites they
can demonstrate to stakeholders.
Macaw is far from perfectafter all, its still version one software. But I
believe Macaw has a real shot at revolutionizing the early stages of a web
project. If youre reading this book, you probably agree.
This book is a continuous work-in-progress. Ill be frequently updating it
as Macaw changes and improves. If there are errors you want to correct, or
sections you want to add, feel free to contact me. Ill include your changes in
future versions of the book!
As always, if you have questions about the book or about Macaw, let me
know!
Schonne Eldridge
http://schonne.com
[email protected]
http://schonne.com/rwd/
CHAPTER TWO
MACAW BASICS
Lets start at the beginning...
http://schonne.com/rwd/
http://schonne.com/rwd/
Now, Im sure youve already created a quick mockup and hit PUBLISH to
check out the code. As far as WYSIWYG code, Macaw does a stellar job in
terms of outputting clean, standards-compliant code. But, in most cases, the
code generated isnt really production code.
So what do I mean byproductioncode anyway? Well (in my view) production
code is code that is semantic, well-structured, follows a logical hierarchy and
is easily maintainable and extensible. It should be code that could be handed
to a developer and he wouldnt have to spend several minutes trying to figure
out how the layout is structured, or (worse) re-writing sections of the code.
Ideally, the developer should be able to start immediately extending the code
to meet the project needs: converting it to Sass, incorporating Bootstrap,
installing jQuery plugins, breaking the design apart for Mixture, etc.
First Things First: Know HTML/CSS
The key to getting production code out of Macaw is to think like a developer
when using it. Most designers approach Macaw like they do Photoshop: as a
tool to create a design, but to get production code you have to treat Macaw
like a graphical interface for code. Meaning: everything you place on the
canvas, every tweak to the settings, every item you import will generate code.
Thats the point. So its important that you understand how that codes going
to look when you hit PUBLISH before you make any changes to the design.
This means you need to have a core understanding of HTML and CSS.
Macaw is not a replacement for a developer. Its the starting point of the
development process.
If youre rusty on HTML/CSS, the book HTML and CSS: Design and Build
Websites is a great overview of those languages. Its written for designers so its
as non-boring as its going to get.You can get through each one in a couple
of hours. If youre dragging your feet on learning these languages, then Ive
got to tell you that youre falling behind in your skill-set as a designer. More
and more employers and clients are expecting designers to know basic code.
9
http://schonne.com/rwd/
You dont want to be in a position where youre passed over for a job just
because you didnt spend a weekend learning one of the worlds easiest
programming languages.
Besides being aware of the code output as you design, you should also keep
in mind what you plan on doing after you finish the Macaw phase of the
project. This will help with things like naming conventions and hierarchy.
For instance, if you plan on using Bootstrap to style your forms, then youll
need to make sure youre naming the form and its inputs with classes that
Bootstrap will understand when you incorporate that framework into your
design post-Macaw.
Lastly, it will help if you have an understanding of jQuery. You certainly
dont need to know this to use Macaw. A competent developer can deal with
jquery post-Macaw, but if you understand jQuery, Macaw becomes really
awesome allowing you to create truly interactive mockups. It also opens up
your possibilities as a designer once you understand all the options available
to you.
If youre going to use jQuery in Macaw, youll want to double check with
your developer first. Many developers (myself included) have very strict
methodologies we use when dealing with jQuery or JavaScript. Macaw tends
to output pretty vanilla JavaScript. You dont want to spend time creating
jQuery interactions that the developer will just delete when the project hits
his desk.
10
http://schonne.com/rwd/
http://schonne.com/rwd/
View the free video How to start a Macaw Project by clicking the
image above or going to this link:
http://schonne.com/macaw/videos/
12
http://schonne.com/rwd/
13
http://schonne.com/rwd/
14
http://schonne.com/rwd/
15
http://schonne.com/rwd/
Note: To get code like I have above, you have to have two elements with the
same class name (in this case, theyre both named welcome). Unfortunately,
this breaks the naming best practices. So, youll have to decide which is more
important for your project: redundant code reduction, or semantic class names.
I will almost always choose semantics because I can fix the redundant problem
post-Macaw.
16
http://schonne.com/rwd/
17
http://schonne.com/rwd/
18
http://schonne.com/rwd/
For groups of elements, use the Align tool to keep elements aligned to each
other:
19
http://schonne.com/rwd/
View the free video Global Styles in Macaw by clicking the image
above or going to this link:
http://schonne.com/macaw/videos/
20
http://schonne.com/rwd/
http://schonne.com/rwd/
So, what does all this mean? And how does it apply to creating production
code?
What you want in production code is semantic markup, where the HTML
and CSS are self-descriptive and make sense structurally. This means using
class names that clearly describe the function of the element, with appropriate
semantic HTML tags.
If a developer looks at your generated CSS and HTML, they should be able
to easily understand your intent without needing to load the page in the
browser. By having code structured this way, you will make it easier for the
code to be maintained later - even by a developer who doesnt have access to
Macaw.
22
http://schonne.com/rwd/
http://schonne.com/rwd/
If you follow the naming best practices, you should get production code like
this:
This is beautiful, semantic code that any developer can read and understand
without needing to load the project in Macaw or fire up a browser.
Brings a tear to the eye...
24
http://schonne.com/rwd/
CHAPTER THREE
25
http://schonne.com/rwd/
Focus
You can center an element to your screen, by clicking on this icon in the
Outline tab.
26
http://schonne.com/rwd/
Create a List
Creating an ordered or unordered list in Macaw is pretty easy:
1) Use the Text tool to create each list item. Place each list item
below the previous one to create a list of items in descending order.
2) Name each text box in the list li.li
3) Select all the text boxes in the list by dragging around them or
holding SHIFT as you click each box.
4) Group the text boxes (ctrl+g) and name the group ul.ul
This can be done for ordered lists (or), unordered lists (ul) and description/
definition lists (dl)
Macaw imports a CSS reset called standardize.css that will erase all the
bullet points from lists. You can hack this by adding some code to your
Head & Tail section
ol, ul, li {
list-style: normal;
}
The .mcw file can be opened outside of Macaw
Macaw project files are just zip folders. You can rename the extension from
.mcw to .zip and open it like you would any zip folder. This is great if you
need to pull out an asset like an image or font.
27
http://schonne.com/rwd/
28
http://schonne.com/rwd/
Components
Components are a huge time saver, especially if youre going to have similar
items across multiple pages on a site like call-to-action buttons or sign-up
forms.
The best way to create a component is on a separate page outside the page
youre currently designing. This prevents the component from accidentally
inheriting page specific positioning issues. After you create the component
and save it, the component will appear in your library ready to go.
Favicon
To add a favicon to your project, go to File>Publish Settings>Head & Tail
and add this code just above the </head>
<link rel="shortcut icon" href="/favicon.ico">
Be sure the name and path of the favicon is correct. Also: keep in mind that
Macaw will delete any files or folders in its generated project folder that
arent from Macaw, so if you want the favicon in the Macaw folder, youll
want to put it there after you do the last publish.
29
CHAPTER THREE
ADVANCED MACAW
Time to Level Up!
30
http://schonne.com/rwd/
http://schonne.com/rwd/
VERTICAL CENTERING
http://schonne.com/rwd/
32
http://schonne.com/rwd/
Exact Center Positioning (child and parent fixed or fluid height and width)
This is probably one of the most common CSS tricks to get an element
exactly in the center of another element, even in a responsive design where
the parent element shrinks.
1. Make sure the elements ARE grouped together and the parent
has an auto height.
2. The parent element should have a fixed (px) or fluid (%) height
and width. Neither should be set to auto.
3. The child element should have margins of 0. The child should
be sitting in the upper left corner of the parent div.
4. Open the Head & Tail section under File>Publish Settings...
33
http://schonne.com/rwd/
Since were overriding the Macaw styling with this hack, the changes wont
be visible on the Macaw canvas in design mode. However, youll see them
when you Publish.
http://schonne.com/rwd/
1) Create your Macaw design using the system fonts you want. Be sure
to keep track of the system fonts youre using - youll need that later. Besides
the font name, youll also need to keep track of what weight (400, 600, etc)
youre using and any font styling (italic, outline).
2) Publish and look at the CSS that Macaw generated. You need to
write down the font names that Macaw chose to use for each of your system
fonts in use. If the font name has more than one word, Macaw will put quotes
around the font name. Make note of that.
3) In the Macaw project folder, create a Fonts folder and place the
necessary webfonts inside. You have to use webfonts - you cant just copy
your font from your system and place it inside your Macaw project. There
are usually 4 versions of the font for the web: .eot, .svg, .ttf, and .woff. If you
dont have these webfonts, you can either purchase them from a font supplier
or create them yourself (for free) using Font Squirrel (http://www.fontsquirrel.
com/tools/webfont-generator).
35
http://schonne.com/rwd/
Youll want to change the font-family to the name of the font that
Macaw is using in its generated CSS. Youll also want to change the font file
names to match the ones in your Macaw fonts folder.
Its important to remember that Macaw and your local browser will be showing
the system font when rendering the web pages. Web fonts can sometimes
render oddly, so youll want to test the page out on a device that doesnt
have that system font installed to double check that there are no web font
rendering issues.
View the free video Using Custom Fonts with Macaw by clicking the
image above or going to this link:
http://schonne.com/macaw/videos/
36
http://schonne.com/rwd/
We can target that first letter by inserting code in the Head & Tail section just
above the </head> tag.
<style>
.article p:first-child:first-letter { float: left; color: #903; font-size: 75px;
line-height: 60px; padding-top: 4px; padding-right: 8px; padding-left: 3px;
font-family: Georgia; }
</style>
When adding custom CSS, you have to keep in mind CSS heirachy, so if you
make changes and they are being over-ridden by Macaw, youll need to be
more specific or add !important to the attribute.
CSS that you add via the Head & Tail wont show in the canvas view. Youll
only be able to see those in the published view.
37
http://schonne.com/rwd/
Macaw uses v1 jQuery, which is the most backwards compatible version, however its
Code written in the script editor appears immediately after jQuery in the production code.
This means the browser reads the JavaScript on the page in this order:
1. JavaScript code placed in the Head section
2. jQuery
3. index.js (code from the script editor)
4. JavaScript code placed in the Tail section
38
http://schonne.com/rwd/
Understanding when code will be read helps when youre dealing with
dependencies, particularly when it comes to jQuery plugins or other included
scripts.
jQuery Plugins
So heres the problem with jQuery Plugins in Macaw: we insert the plugins
AFTER the index.js file appears. This means you dont have access to the
plugins in the script editor. Heres how you insert a plugin:
This link
has to reside outside the Macaw generated directory or it will be overwritten
whenever you hit. You want to place this link just above the </body> tag.
1) In the Head & Tail section of Publish Settings, insert a link to your plugin.
2) Immediately following the link to the Plugin in the Tail, add your jQuery code
39
http://schonne.com/rwd/
Youll want to pay close attention to the code you use to configure your
plugin. Many plugins use IDs to target elements in the DOM so youll want
to be sure to set an ID on the element in Macaw.
View the free video Using JavaScript, jQuery, & Plugins with Macaw
by clicking the image above or going to this link:
http://schonne.com/macaw/videos/
40
http://schonne.com/rwd/
Im a huge fan of Sass: I use it in all of my projects. And, like most front end
developers,I dragged my feet about learning it only to realize that its far superior
to standard CSS. For now, Macaw doesnt support a CSS-preprocessor like
Sass out of the box. That means well have to do the conversion of Macaws
CSS output post-Macaw.
Advanced Macaw Naming Rules for CSS Pre-Processors
All of Macaws generated CSS is flat, meaning: theres no indication on the style
sheet of a heirachy of elements. Pre-processors like their code in heirachies,
which make it easier to read and maintain. It also prevents elements with
accidental duplicate class names from conflicting with each other.
Lets say we have a simple nav like this:
<header class="header">
<h1 class="welcome">Welcome!</h1>
<img class="logo" src="img/logo.png" />
<ul class="nav">
<li class="about">About</li>
<li class="contact">Contact</li>
</ul>
</header>
41
http://schonne.com/rwd/
So, what we need is a way for Macaws CSS to be hierarchical. Were going
to do this by using semantic names that will describe the elements position.
What were going to do is place a double dash (--) between each semantic
name based on it hierarchy, so, in this header example, wed nave the element
like this:
<header class="header">
<h1 class="header--welcome">Welcome!</h1>
<img class="header--logo" src="img/logo.png"/>
<ul class="header--nav">
<li class="header--nav--about">About</li>
<li class="header--nav--contact">Contact</li>
</ul>
</header>
Because Macaw alphabetizes the class names in its CSS output, this naming
convention naturally groups the names together.
42
http://schonne.com/rwd/
View the free video Using Sass / LESS / Stylus with Macaw by
clicking the image above or going to this link:
http://schonne.com/macaw/videos/
43
http://schonne.com/rwd/
BOOTSTRAP / FOUNDATION
First: let me say that Bootstrap and Foundation wont integrate perfectly with
Macaw out of the box without the Macaw developers baking it into the software.
But Bootstrap and Foundation are important tools for many professional
designersits one of the most requested features on the Macaw forumsso a
book about professional Macaw development needs to address this fact.
Ive had several discussions with Macaw users about Bootstrap/Foundation
and some people want to just drag and drop Bootstrap/Foundation-formatted
components and elements onto a canvas to create a design.
What they really want is a Bootstrap visual editor (you can see a comparison of
the most popular ones here).
These visual editors are all about making quick and dirty websitestheyre very
utilitarian. The problem with visual editors is they tend to produce sites that look
and feel very similar to each other. This is fine if youre creating landing pages
or webapps, but most people dont want their important personal or commercial
sites and blogs to look like a template.
This is where Macaw comes in. Macaw is about design. Its closest relative is
Photoshop. If you want to create something unique and special, then a tool like
Macaw will help you WOW visitors and stakeholders.
This doesnt make Macaw better than a visual editoryou just need to pick the
right tool for the job.
PLEASE NOTE
http://schonne.com/rwd/
Bootstrap and Foundation really offer three main features: a grid system, element
styling and components.
Grid System At
this point, theres no way to integrate the grid system into Macaw.
The reason for this is obvious: Macaw already provides a grid system and theres
no way to override it. Frankly, the Macaw grid is great and will suit most purposes.
If you absolutely must use the Bootstrap/Foundation grid, you can try to do
that post-Macaw in a text editor (good luck!) but, in that case, Id probably not
use Macaw for that project.
creates this:
Because you can use multiple class names in Macaw, its totally possible to use
Bootstrap/Foundation for element styling!
Ill say it right now: the Bootstrap/Foundation components are
awesome! Its really one of the main reasons to use these frameworks. Were going
to be taking advantage of Macaws embed tool to get this magic in our design.
Components
BE CAREFUL!
When using a framework like Bootstrap or Foundation, they tend to reserve class names
for themselves. You want to make sure you arent creating elements in your design that
will conflict with the framework.
An obvious trip-point is container. Macaw might give any containers your create the class name of
container. Bootstrap has a very specific use-case for divs called container which will be applied
causing wonky or unexpected behaviors in Publish view.
45
http://schonne.com/rwd/
1) In the Head & Tail section of Publish Settings, insert links to your framework.
</head>
Bootstrap (Be sure to check here to ensure youre using the latest links)
Place CSS above </head> tag:
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/
bootstrap.min.js"></script>
Note: some BootStrap components require additional js files to be installed. Just add them below
this main one using links outside of your Macaw project.
46
http://schonne.com/rwd/
Foundation
Place CSS above </head> tag:
<script src="http://cdn.foundation5.zurb.com/foundation.js"></
script>
This will force Macaw to add jQuery to your project, which Bootstrap and
Foundation need to work as expected.
47
http://schonne.com/rwd/
So, lets say you need a button with the following Bootstrap class names:
btn btn-primary btn-lg btn-block
This is pretty easy to do in Macaw. Just create the button like normal, but in
the class name section you want to follow this pattern:
Semantic Class Name | Bootstrap/Foundation classes
Its important that you add the semantic class name first, otherwise Macaw
could auto-generate a specific classname for this element for you. Its the
semantic class name that well use post-Macaw to make specific styling changes
to the element, if necessary. Also, to get multiple class names in Macaw, you
cant use a space keyyou need to use a dot instead. So if the semantic name
youve chosen for this button is submit, in Macaw give the button element
this class name:
button.submit.btn.btn-primary.btn-lg.btn-block
You should see the Bootstrap/Foundation styles when you look at the Publish
view.
48
http://schonne.com/rwd/
in mind that
the component will be inside this embed tool, so if you make the embed too
small, itll cut off the component.
3) Insert the component code.
4) Hit Publish and cross your fingers. Hopefully youll see what you were expecting.
At the time of this writing, the embed tool had only been released for about
a week. I, and several forum members, have noticed bugs (like embeded spans
would have their class names stripped out when publishing). The Macaw
developers are pretty quick to fix bugs so if you find any, be sure to post it on
their forum.
http://schonne.com/rwd/
APPENDIX I
A DIFFERENT DOCS
The Docs Before the Docs
50
http://schonne.com/rwd/
NOTE: I wrote these docs before Macaw released their official docs. Im including these in the
appendix for those who may find it useful, however I think the official docs are superior. Id suggest
referring to those first.
1. MENU BAR This is pretty standard for all software. Well go over each of the options later, but for now, this is basically
where you go to create, save, publish, make changes to the interface and edit your design.
2. PAGES These are tabs showing the currently open pages youre editing. The tabs work like standard browser tabs (like
Chrome or Firefox). The hamburger icon to the left allows you to quickly navigate between, create, duplicate or delete
pages.
3. VIEW MODE This is a set of options that appear based on what youre editing. The options change when you select a
tool or object.
4. TOOL BAR If youve ever used a software design tool like Photoshop, this will be very familiar to you. These are a list of
common tools youll use to manipulate your design.
5. STATUS Macaw puts crucial status information here like what breakpoint youre viewing or if the DOM is editable or
not. This will make more sense later.
6. RIGHT PANEL This section has three tabs.
INSPECTOR Similar to the View Mode in that it provides options based on what youre currently
doing in the main window.
OUTLINE shows us the breakdown of the elements on the page and how theyre ordered.
LIBARARY gives you quick access to the web pages assets (like images) so you dont have to search
around your computer for them.
7. PREFERENCES You can setup global preferences for your project here. Theres also a link to contact the Macaw developers if you feel like harrassing them with annoying questions.
51
http://schonne.com/rwd/
MENU BAR
Macaw opens with a blank project so you only need to create a new project if youve
started working and decide to start over with a new project.
NEW PAGE Creates a blank webpage layout based on your global preferences and
mcw file to launch Macaw or drag the mcw file onto the Macaw icon.
SAVE Saves the currently open project. If there is no open project, it will save the
focused page (see ALERT). If the project/page has never been saved, this will function
like a SAVE AS...
SAVE AS shows us the breakdown of the elements on the page and how theyre
ordered.
IMPORT TO CANVAS gives you quick access to the web pages assets (like images) so
52
http://schonne.com/rwd/
ALERT!
PROJECTS vs PAGES Macaw is a little odd about how it deals with Projects vs
Pages. This is what you need to know:
a little confusing at first.Where are the other pages you created? Theyre still attached
to the project, but Macaw didnt open them even though they were open when you
saved the project.To reopen the closed pages click the hamburger icon in the PAGES
section of the interface (just below the menu).
RECENT PROJECTS It would be nice if there was an option to select recent projects
under the FILE menu so you could quickly switch between projects. That feature doesnt
exist yet, unfortunately.
EDIT These are pretty standard EDIT submenus, but there are a couple of
Macaw-specific ones Ill unpack below.
COPY/PASTE VISUAL PROPERTIES This essentially copies the CSS properties for the
object, but not the object itself. For instance, if a box has a background color of
blue, you can copy that background color and paste it onto another object (like a
paragraph).
MOVE BACKWARDS/SEND TO BACK etc This places elements on top or below other
elements.
SELECT Most likely youll select object with your mouse, but sometimes you
cant do that easily.These options let you select all the elements in the canvas,
or, if you select an object, you can toggle to elements behind or in front of
the selected element
53
http://schonne.com/rwd/
element and set its transparency (see the Tools section for more info)
SHOW QUICK SWATCHES Opens the swatches panel.
SHOW SCRIPTS Opens the scripts window.
SHOW OUTLINE MODE Outline Mode shows the elements without aesthetic styling.
It allows you to quickly understand the designs spacing so you can troubleshoot the
design.
CENTER CANVAS Puts the canvas in the center of the screen.
TOGGLE POSITIONING GUIDES Positioning Guides are the light blue boxes that appear
ELEMENTS These options are related to the elments in your canvas. It gets
tricky here, so pay attention.
GROUP/UNGROUP Grouping is important to keep multiple elements (like the logo,
nav and background of a header) grouped together so they can act like a single
element. This makes it easier for positioning and styling, but it also helps clean up
your CSS code.
EXPAND Expands the element to the full width (100%) of the grid.
FIT TO CHILDREN When you want to adjust the container to its children, e.g.You have
a div which contains a couple of images that you just resized, and now you need to
adjust the divs width/height to their combined dimensions.
LOCK SELECTED/UNLOCK ALL Makes the element unselectable and locks it into
position in the canvase. Theres no way to individually unlock an element (since you
cant select it), so you have to UNLOCK ALL.
54
http://schonne.com/rwd/
CREATE COMPONENT If you have elements or a group of elements you plan to reuse,
you can select it and create a component here. The Components you created will
appear in your project Library. To use the component, just drag it onto the canvas.
BREAK COMPONENT REFERENCE If you want the selected component in the canvas
to have styling not related to any components. This basically makes the selected
component no longer a component. This doesnt affect any other instances of the
component on the canvas and it doesnt delete the component from your project
Library.
PAGES
The pages section of the interface has all the pages for the project listed under
the hamburger icon.
To create a new page, click the grey square with a plus symbol on the right
side of the word pages.
To delete a page, hover over the page you want to delete and click the trash
can icon to the right of the name.
To make a duplicate of an existing page, hover over the page you want to
duplicate and click the two grey rectangular boxes to the right of the page
name.
To open an existing page, just click on the page name.
To the right of the hamburger icon, youll see the open pages in tab form.
Click the tab you want to put into view.
55
http://schonne.com/rwd/
VIEW MODE
These are modes to help you with the design and layout of your page. NOTE:
youll only see this option if you have no elements selected in the canvas.You
can also toggle between view modes under the VIEW menu or with hot keys.
NORMAL This is the normal layout in WYSIWYG mode. What you see
on the canvas is pretty much what will end up on the webpage when you
publish.
OUTLINE Outline mode is awesome. It shows just the unstyled elements like
divs and text on the canvas. This is the mode I usually do most of my design
work in because it allows me to concentrate on the design, positoning and
flow of the page without the distractions of the styling. Its also really easy
to accidently place an element on the page (like a blank text div) and those
empty divs cant hide in this mode
WIREFRAME Wireframe mode shows the design in black and white. This
helps if youre still trying to decide the color scheme.
56
http://schonne.com/rwd/
TOOLBAR
These are the tools youll use to manipulate your canvas design. If youve
every used a design tool like Photoshop, youll be familiar with the toolbar
and some of its tools.
SELECT TOOL This allows you to select elements in the canvas.
DIRECT SELECT TOOL This will function like the Select Tool unless the
elements are grouped together. In that case, the Select Tool will select the
group, while the Direct Select Tool will allow you to select individual elements
within the group.
TEXT TOOL Place text on the canvas. You can click on the canvas with this
tool and start typing if you want, but if the text area must have a specific
width or height (like a centered h1), you can use this tool to drag a box on
the canvas and position the text within.
ELEMENT TOOL This allows you to drag a div onto the canvas.
CONTAINER TOOL Like the Element Tool, this draws a div, but the purpose
is to create a CSS group around several elements. For instance, if you wanted
57
http://schonne.com/rwd/
an ARTICLE container for elements related to articles, you can do that here.
That way you can target articles and their inner content with global styling,
or provide semantic markup.
BUTTON TOOL Lets you draw a clickable button on the canvas that you can
wire up to a javascript event, a form or html link.
INPUT TOOL The input tool allows you to create several common inputs like
text, textarea, select, checkbox, and radio.
HAND TOOL Lets you drag around the canvas with the mouse without
worrying about accidently selecting an element.
58
http://schonne.com/rwd/
Publish Settings
This shows a list of all the pages in the project. They are all checked by default. If there is a page you dont
want to publish, uncheck it here.
PAGES
this is you want Macaw to write CSS that will be used for all the
pages rather than separate CSS files for each page. In most cases youll want to check this.
This allows you to put metatags, analytics tracking codes or other custom elements across all the pages
that you publish.
HEAD & TAIL
STYLES
These are several options about how the CSS will be output.
CONSOLIDATE STYLES: Im
not sure why this appears here again but it does exactly what the
PAGES>CONSOLIDATE PAGE STYLES option does
uses CSS shorthand for properties like BACKGROUND, FONT, etc. I
personally dislike CSS shorthand because it makes it difficult to debug styling issues in larger projects if
the styles are truncated. For that reason, I deselect this in my projects.
TRIM WHITESPACE:This
minification will make the CSS file difficult to read and debug later. Only do
this if you are planning on deploying the code output from Macaw without further editing.
want to keep this checked to ensure that your webpage will work in all
the major browsers. Im not really sure why the developers included this option since the only benefit
to unchecking it is to save a few bytes in the final CSS file size.
These allow the CSS output to use px, em, rem or % for fonts or elements. If youre not familiar with em or
rem, I would suggest leaving these values alone. Many web designers prefer to use em or rem as their primary unit
on the page because it can work well in responsive designs, but there are some drawbacks to this approach, especially
if youre trying to debug a designs CSS code. Use these units only if youre familiar with them.
UNITS
This doesnt work very well in Macaw. The grid thats output isnt very usable in professional
production since it doesnt follow any of the standards most grids follow (like bootstrap or skeleton). I uncheck this
option since I dont use it.
PUBLISH GRIDS
This can be a bit wonky. For now, Id leave this unchecked. If retina images are
important to you, then you should add them in by hand after you publish with Macaw.
GENERATE OPTIMIZED IMAGES
59
http://schonne.com/rwd/
Youve got the basics of Macaws production code workflow, now see these
best practices applied as I build an entire site from scratch. Ill start with a
blank Macaw project and youll see step by step as I design each page in
Macaw and ensure the generated code is semantic and ready for production.
But I dont just stop there! After the Macaw phase, youll see how I approach
the project post-Macaw! Youll see me edit the Macaw-generated code in
Sublime Text 3 and Mixture and push it live.
So if youd like to see how a professional designer and developer uses Macaw
in an actual project from start to finish - look no further!
Find out more on my website: http://schonne.com/macaw/start-to-finish
60