Skip to content
This repository was archived by the owner on May 5, 2020. It is now read-only.

Commit b911321

Browse files
committed
Optimize images; Convert img references to use srcset
1 parent af88ef5 commit b911321

23 files changed

+16
-7
lines changed

pages/avatar.jpg

20.3 KB
Loading

pages/avatar.png

-392 KB
Binary file not shown.

pages/avatar@2x.jpg

68 KB
Loading
Loading
Binary file not shown.
Loading
Loading
Binary file not shown.
Loading
Binary file not shown.
Loading
Binary file not shown.

pages/work/2016-04-09---an-all-new-way-to-build-websites/index.md

+4-4
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,11 @@ When the time came to start building responsive sites, something for which I had
1414

1515
The key to this new system is a separation of concerns illustrated above. We separated the structure of the site into **Layouts**, the look-and-feel into **Themes**, and the actual content into **Widgets**. This made each component reusable in only the ways it needed to be and, crucially, allowed us to offer built-in responsiveness instead of requiring a custom solution for each site.
1616

17-
![Layout illustration](./Layout.png) {.left}
17+
<img src="./Layout.jpg" alt="Layout illustration" class="left" />
1818

1919
**Layouts** are an XML representation of a traditional wireframe for the site. They describe which Containers (more on those in a bit) exist and in which arrangement. They also define the major media query breakpoints (e.g. when the sidebar of a site moves from under the main content to beside it) for the site and are _highly_ reusable. We chose XML because it is highly expressive, easily updated and understood, and easy to validate, to prevent errors early in the process. Because Layouts are completely separated from the look-and-feel and content of the site, they can be re-used with little to no effort. After building our first few sites using the new system, which I carefully supervised, we built up a nice library of common site layout patterns, codified into Layouts. For the next six months, I continued to regularly review Design’s comps and offer feedback and suggestions to ensure they used their new capabilities to their best and fullest potential.
2020

21-
![Theme illustration](./Theme.png) {.left}
21+
<img src="./Theme.jpg" alt="Theme illustration" class="left" />
2222

2323
**Themes** provide the aesthetic of the site, the fonts, colors, textures, spacing, etc... Importantly, they do not require the user to even think about responsiveness, since that is handled by the Layout and Widgets. Rather than forcing Web Admins to write the CSS for these Themes by hand, we built a <abbr title="What you see is what you get">WYSIWYG</abbr> interface to more efficiently translate the comp from Design into a working site.
2424

@@ -29,12 +29,12 @@ This decision provided a lot of wins:{.cf}
2929
3. The separation of aesthetic from structure and content allows us to redesign a site without migrating any content, which was previously impossible.
3030
3. While Themes are too specific to an individual site to be shared with another site, a site’s multiple Themes are often quite similar and our interface allows for easy modification of one or more Themes simultaneously.
3131

32-
![Widget illustration](./Widget.png) {.left}
32+
<img src="./Widget.jpg" alt="Widget illustration" class="left" />
3333

3434
Finally, we have **Widgets**, which hold the content. Layouts are made of Containers, which hold a grid into which the client can drag-and-drop Widgets. This is the biggest improvement over the previous system. Previously, clients did not have access to anything other than the main content area of a page, requiring an email or phone call to Support just to switch out some content in their sidebar. Now, not only do they have that access, but we reduced a 17-step process across five screens to a simple drag-and-drop action and a popup to quickly configure the new Widget’s options. (Well, simple from the author’s perspective. As you can see in the figure below, it’s anything but simple.) There are Widgets for all types of content. To name a few: a full-featured <abbr title="What you see is what you get">WYSIWYG</abbr> editor; a quick, easy way to build a fully-responsive data table; drop-in images and slideshows; and a multitude of “Module Widgets”, which dynamically pull in content from other areas of the site.
3535

3636
<figure>
37-
<img src="./GridSpecTargets.png" alt="Sketch of drag-and-drop grid targets and their behavior" />
37+
<img src="./GridSpecTargets.jpg" srcset="./GridSpecTargets@2x.jpg 2x" alt="Sketch of drag-and-drop grid targets and their behavior" />
3838
<figcaption>One of many sketches to figure out how the drag-and-drop should operate. We opted for the third scenario, on the right.</figcaption>
3939
</figure>
4040

Loading
Binary file not shown.
Loading
Loading
Binary file not shown.
Loading
Loading
Binary file not shown.
Loading

pages/work/2016-04-12---a-fully-responsive-cms/index.md

+12-3
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,23 @@ At [CivicPlus](http://civicplus.com), the administrative UI for our CMS was star
1212

1313
I worked with our UX Designer and development team to design and build the new UI and front-end architecture. As we started, I championed the need for a dynamic design system that would be the source of all of the various design patterns necessary for the build. After explaining the benefits, including faster QA regression testing, much easier maintainability, and enforced design &amp; code consistency, I had no problem persuading leadership to buy in.
1414

15-
![Excerpt of Button section of the style guide](./StyleGuideButton.png) {.right@sm .w-50@sm .push@md}
15+
<figure class="right@sm w-50@sm push@md">
16+
<img src="./StyleGuideButton.jpg" srcset="./StyleGuideButton@2x.jpg 2x" alt="Excerpt of Button section of the style guide" />
17+
<figcaption>A standard button, as defined in the style guide</figcaption>
18+
</figure>
1619

1720
The design system, and therefore the product, is built with Angular & Sass. The development team handled the former while I alone handled the latter. The Sass code has a base layer, an admin layer, and a “public” layer, the last of which I built in preparation for a future project to overhaul our citizen-facing UI. It is also quickly and easily theme-able, thanks to some custom mixins and a strict adherence to [<abbr title="Block Element Modifier">BEM</abbr>](http://csswizardry.com/2013/01/mindbemding-getting-your-head-round-bem-syntax/)^[The [official resource for BEM](https://en.bem.info/) isn’t nearly as understandable as the article I linked to above. It also goes way beyond the scope of CSS.] principles. This was also my first real foray into using an SVG icon system, which beautifully matches the bold, flat look and significantly reduced both the size and number of requests for images.
1821

19-
![Mobile wireframe](./MobileWireframe.png) {.left@sm .w-50@sm .pull@md}
22+
<figure class="left@sm w-50@sm pull@md">
23+
<img src="./MobileWireframe.jpg" srcset="./MobileWireframe@2x.jpg 2x" alt="Mobile wireframe" />
24+
<figcaption>“Mobile” wireframes for one of the modules in the CMS; <em>not my work</em></figcaption>
25+
</figure>
2026

2127
With the design system in place, I could begin to take the wireframes of “desktop” and “mobile” screens provided by our UX designer and translate them into real, working markup. This required a lot of collaboration with both the designer and the development team, as there were significant constraints from both sides and decisions frequently affected each of them in complex ways. It also required a large amount of ingenuity. Nothing was specified for the widths between “desktop” and ”mobile”, so it was up to me to determine the design and code to make it work at all widths. I loved the challenge.
2228

23-
![Calendar desktop](./CalendarDesktop.png)
29+
<figure>
30+
<img src="./CalendarDesktop.jpg" srcset="./CalendarDesktop@2x.jpg 2x" alt="Calendar desktop" />
31+
<figcaption>The completed calendar module, at “desktop” size</figcaption>
32+
</figure>
2433

2534
The end result was released recently with the launch of a new Dashboard. It meets all of the goals for the project and our clients have been raving about how much they’re enjoying the significant improvement. It was such a success that we then quickly applied the aesthetic^[The architecture rewrite and responsiveness will take much more time and effort.] to our entire system, which was also met with praise, and the design system has been expanded to eventually drive every one of our products.

0 commit comments

Comments
 (0)