Drupal http://default/ en No one-offs http://default/2019/drupal/no-one-offs <div data-history-node-id="446" class="h-entry node node--type-piece node--view-mode-fulltext ds-1col clearfix"> <div class="clearfix text-formatted field field--name-field-sub-title field--type-text field--label-above"> <div class="field__label">Sub title</div> <div class="field__item"><p>Things seen here are configured there.</p> </div> </div> <div class="field field--name-field-image field--type-image field--label-hidden field__item">/sites/default/files/styles/large/public/things-shown-here-configured-there.png?itok=qSZb6N0L</div> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p><em>An elaboration on underlying considerations that make simple suggestions as <a href="https://www.drupal.org/project/drupal/issues/1440678">this one</a> not so simple after all.</em></p> <p>An important consideration when deciding whether to “add something to core” is that generally speaking, core doesn’t do one-offs. The underlying principle is not <em>“make it do X”</em> but <em>“make it possible to make it do X (and X2, X3,…)</em></p> <h2>Linking from a <em>create</em> context to a <em>configuration</em> context</h2> <p><a href="https://www.drupal.org/project/drupal/issues/1440678">In this particular case</a> we have a proposal to link to the screen where you can add new content types from the page that lists available content types to create content with. Or, in url speak: on /node/add, put a link to /admin/structure/types. Or once more: on the screen that lists existing content types that you can <em>create content</em> with, add a link to the screen that lets you <em>define new content types</em>.</p> <p>Notice the distinction between “create content of type X” and “define a new type of content Y”. The first is a content creation task, the second is a content definition task (in Drupal jargon usually captured under “site building”). This distinction then should clarify why a link to define a new content type should not use the “blue + button” pattern on a screen that is in service of a content creation task.</p> <p>Back to the “no one-offs” principle. Where and how <em>can</em> we add a link of this kind? To answer that question we should look for possible patterns. Is there a more generalised definition for the type of problem that this single link to elsewhere wants to solve?</p> <p>The example is: put a link to the content <em>type</em> definition area on the screen that lists already available types to create content with. Restated more generally: link to <em>that</em> area of the Drupal admin where the things on <em>this</em> screen are configured.</p> <h2>Connecting the dots <em>is</em> important</h2> <p>You know those links at the bottom of product pages in an online store: “people who bought this item also bought X, Y and Z”. In our case it’s more like “Things seen <em>here</em> are configured <em>there</em>.</p> <p>I noticed a sort of similar pattern in the Android OS settings pages, where the screen ends with suggestions of related topics to the ones already shown. It’s a way to provide meaningful next places to go if the current page didn’t offer what you were looking for (and is of course a symptom of how many settings there are in the first place).</p> <p><em>“Things seen <strong><em>here</em></strong> are defined <strong><em>there</em></strong>.</em></p> <p>If we can find more examples of where this would be meaningful and helpful then we might have a good case for introducing a new user interface pattern. See image for some initial examples.</p></div> <div class="field field--name-taxonomy-vocabulary-1 field--type-entity-reference field--label-inline"> <div class="field__label">Tags</div> <div class="field__items"> <div class="field__item"><a href="http://default/tag/drupal" hreflang="en">Drupal</a></div> <div class="field__item"><a href="http://default/drupal" hreflang="en">drupalplanet</a></div> </div> </div> <span class="hidden"><a href="https://brid.gy/publish/twitter"></a></span> <div class="node__links"> <ul class="links inline"><li class="comment-forbidden"></li></ul> </div> </div> Fri, 10 May 2019 14:05:23 +0000 Roy 446 at http://default Drupal UX call, june 12 2018 http://default/2018/drupal-ux-call-june-12-2018 <div data-history-node-id="419" class="h-entry node node--type-piece node--view-mode-fulltext ds-1col clearfix"> <div class="clearfix text-formatted field field--name-field-sub-title field--type-text field--label-above"> <div class="field__label">Sub title</div> <div class="field__item"><p>With live sketching!</p> </div> </div> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>Today about how to handle buttons you don’t want people to click, indicating global changes, pager behaviour and standards for UI texts.</p> <p><iframe allow="autoplay; encrypted-media" allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/p8rTPtZUxAI" width="560"></iframe></p> </div> <div class="field field--name-taxonomy-vocabulary-1 field--type-entity-reference field--label-inline"> <div class="field__label">Tags</div> <div class="field__items"> <div class="field__item"><a href="http://default/tag/drupal" hreflang="en">Drupal</a></div> <div class="field__item"><a href="http://default/tag/design" hreflang="en">design</a></div> </div> </div> <span class="hidden"><a href="https://brid.gy/publish/twitter"></a></span> <div class="node__links"> <ul class="links inline"><li class="comment-forbidden"></li></ul> </div> </div> Tue, 12 Jun 2018 21:04:54 +0000 Roy 419 at http://default Idea: a data & content modelling UX sprint http://default/2018/idea-data-content-modelling-ux-sprint <div data-history-node-id="389" class="h-entry node node--type-piece node--view-mode-fulltext ds-1col clearfix"> <div class="clearfix text-formatted field field--name-field-sub-title field--type-text field--label-above"> <div class="field__label">Sub title</div> <div class="field__item"><p>Who’s in?</p> </div> </div> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>During <a href="https://youtu.be/BechK49LvY4?t=31m14s">this weeks UX meeting</a> we explored what it would mean to redesign the core Field UI. It’s definately in need of an update.</p> <p>Currently all mashed together in a couple of tabs on Field UI:</p> <ul> <li><strong>Data modelling</strong> – Define data types and storage formats for individual fields & their relationships</li> <li><strong>Content modelling</strong> – Compiling individual fields into appropriate content (entity) types and configuring <em>the input form</em> for creating content items</li> <li><strong>Display modelling</strong> – Configuring different ways to <em>display</em> these created content items</li> </ul> <p>One of the first steps towards a new and improved user interface for Field UI would be to unbraid these different types of tasks. Take it apart and put it together again in more user friendly ways.</p> <p>Would be nice to kick this off with some kind of (virtual) <a href="https://www.drupal.org/project/drupal/issues/2944689#comment-12492973">UX design sprint</a>, no?</p> </div> <div class="field field--name-taxonomy-vocabulary-1 field--type-entity-reference field--label-inline"> <div class="field__label">Tags</div> <div class="field__items"> <div class="field__item"><a href="http://default/tag/drupal" hreflang="en">Drupal</a></div> <div class="field__item"><a href="http://default/taxonomy/term/146" hreflang="en">content modeling</a></div> <div class="field__item"><a href="http://default/drupal" hreflang="en">drupalplanet</a></div> </div> </div> <span class="hidden"><a href="https://brid.gy/publish/twitter"></a></span> <div class="node__links"> <ul class="links inline"><li class="comment-forbidden"></li></ul> </div> </div> Thu, 22 Feb 2018 01:19:16 +0000 Roy 389 at http://default Tweets starting from here http://default/2018/tweets-starting-here <div data-history-node-id="386" class="h-entry node node--type-piece node--view-mode-fulltext ds-1col clearfix"> <div class="clearfix text-formatted field field--name-field-sub-title field--type-text field--label-above"> <div class="field__label">Sub title</div> <div class="field__item"><p>Tweet-sized notes posted as content on yoroy.com that get pushed to Twitter via RSS and Zapier.</p> </div> </div> <div class="field field--name-field-image field--type-image field--label-hidden field__item">/sites/default/files/styles/large/public/20180219-notes-ui.png?itok=4rNLWr49</div> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>My <a href="http://default/2018/small-steps-towards-posse">previous post</a> inspired Joeri to some <a href="http://jpoesen.com/articles/self-publication-web-owning-controlling-simplifying-and-sharing-my-content">improvements on his site</a>. Nice!</p> <p>I built another step towards <a href="https://indieweb.org/POSSE">POSSE</a> this weekend: tweet-sized notes posted as content on yoroy.com that get pushed to Twitter via RSS and Zapier. Here’s how:</p> <p>Create a new content type “Note”. This one needs to only have a text area. And here we run into Drupal always requiring a title. We can’t create entities without giving it a title. The title itself is always a text field, so not ideal for writing 280 char bits of text. Two contrib modules to work around this:</p> <ul> <li><a href="https://www.drupal.org/project/auto_entitylabel">Auto entity label</a> to define an automatic pattern for the title of these Notes. I set it to use a simple timestamp.</li> <li><a href="https://www.drupal.org/project/exclude_node_title">Exclude node title</a> to actually hide the title field on the Note creation form and on display.</li> </ul> <p>Next I defined a new text format that does <em>not</em> use CKEditor but allows <a> tags and automatically transforms URLs into links. I set this to be the default text format for the text area on the Note using the Better Formats module (sadly currently only available as an old development release). This step is optional, it helps </a><a href="http://default/2018/experiment-removing-friction">remove user interface clutter</a>. This gives me a content creation form with just a single plain text text area, a “published” checkbox and a Save button.</p> <p>I updated the views that list blog content on this site to also include content of type “Note” and configured a <a href="http://www.yoroy.com/notes/rss.xml">Notes RSS feed</a> as well. I use this feed as an input on <a href="https://www.zapier.com">Zapier</a> where the Notes body is extracted and posted as a tweet.</p> </div> <div class="field field--name-taxonomy-vocabulary-1 field--type-entity-reference field--label-inline"> <div class="field__label">Tags</div> <div class="field__items"> <div class="field__item"><a href="http://default/tag/posse" hreflang="en">posse</a></div> <div class="field__item"><a href="http://default/tag/twitter" hreflang="en">twitter</a></div> <div class="field__item"><a href="http://default/tag/drupal" hreflang="en">Drupal</a></div> <div class="field__item"><a href="http://default/taxonomy/term/146" hreflang="en">content modeling</a></div> <div class="field__item"><a href="http://default/drupal" hreflang="en">drupalplanet</a></div> </div> </div> <span class="hidden"><a href="https://brid.gy/publish/twitter"></a></span> <div class="node__links"> <ul class="links inline"><li class="comment-forbidden"></li></ul> </div> </div> Sun, 18 Feb 2018 22:55:07 +0000 Roy 386 at http://default Drupal admin tasks http://default/2018/drupal-admin-tasks <div data-history-node-id="384" class="h-entry node node--type-piece node--view-mode-fulltext ds-1col clearfix"> <div class="clearfix text-formatted field field--name-field-sub-title field--type-text field--label-above"> <div class="field__label">Sub title</div> <div class="field__item"><p>lets talk task groups, not roles and certainly not personas in this context</p> </div> </div> <div class="field field--name-field-image field--type-image field--label-hidden field__item">/sites/default/files/styles/large/public/admin-ia-workshop.png?itok=F_7KCIHt</div> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>A late summary of one of the two BoFs on <a href="http://www.yoroy.com/2018/drupal-admin-revamp-ui-research">Drupal admin UI improvements</a> that we held at Drupalcon Vienna. An inventory of tasks for three main task domains: create/manage content, build structure/configure functionality and build functionality. Yes, these domains map to the types of roles we often use: content creator, site builder, developer. Problem with that is those role based labels make it too easy to forget that the same person often switches between multiple roles. Somebody who’s <em>developing</em> part of a content API will <em>build</em> a content type and <em>create content</em> in order to check their work.</p> <p>Not complete and not in any particular order:</p> <h2>Create and manage content</h2> <ul> <li>View content</li> <li>Review content</li> <li>Inline editing</li> <li>Schedule content</li> <li>Create revisions</li> <li>Link to external media</li> <li>Publish</li> <li>Search content</li> <li>Content relations</li> <li>Layout content</li> <li>Update site content</li> <li>Translate content</li> <li>Optimise SEO</li> <li>Revert a revision</li> <li>Delete content</li> <li>View content in context</li> <li>Import/export content</li> <li>Manage revisoins</li> <li>Moderate content</li> <li>Edit media</li> <li>Choose layout template</li> <li>Upload media</li> <li>Manage menu</li> <li>Manage content structure</li> </ul> <h2>Build structure and configure functionality</h2> <ul> <li>Create entity types for information architecture</li> <li>Structure each entity type</li> <li>Define display options, globally</li> <li>Define display options, individually</li> <li>Create content curation(?) - views, lists, blocks</li> <li>Configure language options for translations</li> <li>Prepare site for themer/frontender</li> <li>Provide/improve user interface for other users</li> <li>Create roles</li> <li>Create permissions</li> <li>Access & read help/documentation</li> <li>Access reports</li> <li>Debugging</li> </ul> <h2>Building functionality</h2> <ul> <li>Build the business logic</li> <li>Build integrations</li> <li>Create layouts</li> <li>Build data structures</li> <li>Provide APIs</li> <li>Write documentation</li> <li>Define permissions</li> <li>Provide configuration options</li> <li>Create forms</li> <li>Define lists of components</li> <li>Migrate content</li> <li>Fix bugs</li> <li>Update code/features</li> <li>Deploy</li> <li>Define cache rules</li> <li>Extend functionalities</li> </ul> </div> <div class="field field--name-taxonomy-vocabulary-1 field--type-entity-reference field--label-inline"> <div class="field__label">Tags</div> <div class="field__items"> <div class="field__item"><a href="http://default/tag/drupal" hreflang="en">Drupal</a></div> </div> </div> <span class="hidden"><a href="https://brid.gy/publish/twitter"></a></span> <div class="node__links"> <ul class="links inline"><li class="comment-forbidden"></li></ul> </div> </div> Sat, 17 Feb 2018 23:31:34 +0000 Roy 384 at http://default Drupal admin revamp UI research http://default/2018/drupal-admin-revamp-ui-research <div data-history-node-id="376" class="h-entry node node--type-piece node--view-mode-fulltext ds-1col clearfix"> <div class="clearfix text-formatted field field--name-field-sub-title field--type-text field--label-above"> <div class="field__label">Sub title</div> <div class="field__item"><p>Some links that might help sketch the outlines of what a “Drupal admin UI revamp” might involve.</p> </div> </div> <div class="field field--name-field-image field--type-image field--label-hidden field__item">/sites/default/files/styles/large/public/20180214-admin-revamp.png?itok=cQvydZqz</div> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>At Drupalcon Vienna there was a lot of interest and preparation work done around modernizing the Drupal administrative interface. I wrote up a <a href="http://default/2017/ux-notes-week-44">high level summary here</a>. As a result <a href="https://www.drupal.org/project/ideas/issues/2902399">this initial issue</a> was posted.</p> <p>My previous post with a <a href="http://default/2018/sneak-preview-new-drupal-ui-content-creation">small concept for the editor UX</a> triggered some <a href="https://twitter.com/wimleers/status/962733069345148928">interesting</a> <a href="https://twitter.com/wimleers/status/963768765728153601">discussion</a> on Twitter.</p> <p>We also discussed this topic during <a href="https://www.youtube.com/watch?v=8PxjE06aoRY">yesterdays UX meeting</a>.</p> <p>As a result, <a href="https://www.drupal.org/u/ckrina">ckrina</a> now proposes <a href="https://www.drupal.org/project/drupal/issues/2944689">an initial round of research</a> to learn and get inspiration from other systems. Mind you, this is the woman that brought us the redesigned status report page and is a member of the team that made the Umami demo that’s now in core. Good things can come from this!</p> <p>Your help in researching these topics is very welcome. <a href="https://www.drupal.org/project/drupal/issues/2944689">Have a look</a>.</p> </div> <div class="field field--name-taxonomy-vocabulary-1 field--type-entity-reference field--label-inline"> <div class="field__label">Tags</div> <div class="field__items"> <div class="field__item"><a href="http://default/tag/ui" hreflang="en">ui</a></div> <div class="field__item"><a href="http://default/taxonomy/term/147" hreflang="en">research</a></div> <div class="field__item"><a href="http://default/tag/drupal" hreflang="en">Drupal</a></div> <div class="field__item"><a href="http://default/drupal" hreflang="en">drupalplanet</a></div> </div> </div> <span class="hidden"><a href="https://brid.gy/publish/twitter"></a></span> <div class="node__links"> <ul class="links inline"><li class="comment-forbidden"></li></ul> </div> </div> Wed, 14 Feb 2018 21:56:58 +0000 Roy 376 at http://default Sneak preview of the new Drupal UI for content creation http://default/2018/sneak-preview-new-drupal-ui-content-creation <div data-history-node-id="373" class="h-entry node node--type-piece node--view-mode-fulltext ds-1col clearfix"> <div class="clearfix text-formatted field field--name-field-sub-title field--type-text field--label-above"> <div class="field__label">Sub title</div> <div class="field__item"><p>No it isn’t. But maybe it should be.</p> </div> </div> <div class="field field--name-field-image field--type-image field--label-hidden field__item">/sites/default/files/styles/large/public/20180210-content-creation-ui-preview.png?itok=DbU7bNKf</div> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>I <a href="http://default/2018/experiment-removing-friction">declared separate title and body fields old school in that previous post</a> about removing friction. In the mean time, I’ve installed and tested a few Android applications for taking notes. There too it was an immediate turn-off to see a separate field for the note title. Let me write something first, I might think about naming it later. Often (in this note taking context) it’s not even really necessary. And so the first few words of the note becomes the title on the notes listing screen.</p> <p>Even simply showing a label with, and a border around individual form fields is emphasizing the implementation model. Of course these elements are sometimes necessary affordances to show, but still:</p> <p><img alt="animation of a first line of text getting typed, shown in big font. Return to the next line automatically reduces font size." src="http://default/sites/default/files/20180211-hello-world.gif" /></p> <p>Using the first line in a body of text as its title seems like a sensible default. No need to be so literal and explicit about it and present separate input boxes for both.</p> </div> <div class="field field--name-taxonomy-vocabulary-1 field--type-entity-reference field--label-inline"> <div class="field__label">Tags</div> <div class="field__items"> <div class="field__item"><a href="http://default/tag/drupal" hreflang="en">Drupal</a></div> <div class="field__item"><a href="http://default/tag/author-ux" hreflang="en">author ux</a></div> <div class="field__item"><a href="http://default/tag/sketch" hreflang="en">sketch</a></div> </div> </div> <span class="hidden"><a href="https://brid.gy/publish/twitter"></a></span> <div class="node__links"> <ul class="links inline"><li class="comment-forbidden"></li></ul> </div> </div> Sat, 10 Feb 2018 23:56:19 +0000 Roy 373 at http://default An experiment in removing friction http://default/2018/experiment-removing-friction <div data-history-node-id="370" class="h-entry node node--type-piece node--view-mode-fulltext ds-1col clearfix"> <div class="clearfix text-formatted field field--name-field-sub-title field--type-text field--label-above"> <div class="field__label">Sub title</div> <div class="field__item"><p>A smoother path to posting pictures from phone to site</p> </div> </div> <div class="field field--name-field-image field--type-image field--label-hidden field__item">/sites/default/files/styles/large/public/form-display.png?itok=heIg7oII</div> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>An experiment triggered by Dries’s blog post <a href="https://dri.es/to-pesos-or-to-posse">To PESOS or to POSSE?</a> and <a href="https://dri.es/comment/134591#comment-134591">my comment</a> there about the friction in the UI’s for the POSSE approach. The Drupal content creation UI is not as optimized as the ones in native, mobile apps for Twitter, Instagram and the like.</p> <p>I was curious how far I could take things just by stripping down the default Drupal content creation UI, optimizing it for posting an image + caption as an entry to this here blog.</p> <h2>What I did:</h2> <ol> <li>Create a custom, stripped down content creation form</li> <li>Use evil CSS to hide superfluous items</li> </ol> <h3>Custom form mode</h3> <p>The first step was to remove most of the fields that are not required to create a post. The <a href="https://www.drupal.org/project/form_mode_manager">Form Mode Manager module</a> lets you do just that. I set up a “Minimal piece” form mode which hides the fields for inputs like a separate summary, tags, file attachments, url alias, author, date, sticky and the “promoted” checkbox. These are optional (not required) fields that can be left empty or provide sensible defaults (me as the author, use “now” for the publishing date).</p> <p>This alternative form comes with its own URL I can go to to create that new post.</p> <p><img alt="Phone screenshot 1: optional fields removed but still a long form" src="http://default/sites/default/files/piece-ui-1.png" /></p> <h3>Evil CSS</h3> <p>The stripped down form still shows bits and pieces I don’t really need to be reminded of every time I go to post something. Nothing a few display: none; CSS staments couldn’t fix. But, I’m using the default Seven admin theme here, which does not provide a body class to uniquely identify a specific page. I couldn’t add my CSS hacks to that theme’s (or sub theme’s) stylesheet because those would then apply to all admin pages.</p> <p>I use the Firefox browser on my Android phone. <a href="https://addons.mozilla.org/en-US/firefox/addon/stylish/">Stylish</a> to the rescue. We’re definately in proof-of-concept territory now! Stylish lets you define custom styling for all sites, a site or one or more specific URLs. I made one specifically for the URL where the minimal entry form lives to clean up that screen even more: hiding the header, breadcrumbs, form field descriptions, etc.</p> <p><img alt="phone screenshot 2 with CSS hacks applied. The save button is nowvisible in the intial viewport." src="http://default/sites/default/files/piece-ui-2.png" /></p> <h2>And, does it work?</h2> <p>Yes. It’s far from elegant but it’s already a much more focussed and faster experience. I <em>think</em> I already knew but was happily surprised to see that the regular image field does provide access to both the camera (for taking a new picture) and the gallery (for choosing an existing image).</p> <p><img alt="screenshot 3" src="http://default/sites/default/files/piece-ui-3.png" /></p> <h2>What could be next</h2> <p>One thing that makes the Drupal approach feel old school is the required title field. Twitter, Instagram, Tumblr all let you just type something into what basically amounts to a “body text” field. In Drupal it has to at least be just like email: a subject and a message: a title + a body. I can make the body optional but I want my text to go in there. Hiding the title field is not straightforward, I think because it is tightly coupled with the unique ID for that content item. There’s modules that let you hide the title input field but those still automatically generate a (gibberish) title.</p> <p>Still, my focus was on smoothing the path for posting an image to my blog from my phone. That “Browse…” button is old school too, but it does provide access to camera and camera roll. Saving a bookmark for this comes with the option to create a shortcut icon for it on the phone home screen for quick access. Not bad for an hour or two of experimenting without coding :)</p> <p>A couple of years ago swentel created <a href="https://github.com/swentel/Drupoid">Drupoid</a>, an Android app that let you save an image from your phone as a content item on a Drupal site. It would be an interesting exercise to recreate something like it with React, Drupal’s (future) JavaScript toolkit of choice and figure out how smooth and snappy we can make it there.</p> </div> <div class="field field--name-taxonomy-vocabulary-1 field--type-entity-reference field--label-inline"> <div class="field__label">Tags</div> <div class="field__items"> <div class="field__item"><a href="http://default/tag/drupal" hreflang="en">Drupal</a></div> <div class="field__item"><a href="http://default/drupal" hreflang="en">drupalplanet</a></div> <div class="field__item"><a href="http://default/tag/ux" hreflang="en">ux</a></div> <div class="field__item"><a href="http://default/tag/process" hreflang="en">process</a></div> </div> </div> <span class="hidden"><a href="https://brid.gy/publish/twitter"></a></span> <div class="node__links"> <ul class="links inline"><li class="comment-forbidden"></li></ul> </div> </div> Wed, 07 Feb 2018 22:28:07 +0000 Roy 370 at http://default 17 http://default/2018/17 <div data-history-node-id="348" class="h-entry node node--type-piece node--view-mode-fulltext ds-1col clearfix"> <div class="clearfix text-formatted field field--name-field-sub-title field--type-text field--label-above"> <div class="field__label">Sub title</div> <div class="field__item"><p>years of Drupal</p> </div> </div> <div class="field field--name-field-image field--type-image field--label-hidden field__item">/sites/default/files/styles/large/public/20180115-17.png?itok=5WAijQuS</div> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p><a href="https://dri.es/happy-seventeenth-birthday-drupal">Drupal is 17 years old today</a>. Quite an achievement for a web software to stay around, let alone stay relevant for such a long time.</p> <p><a href="https://www.drupal.org/u/yoroy">I’ve been around for 12 years</a>. Quite a stretch as well. Getting involved in this open source project as a designer has taught and brought me a lot. I put quite a bit into it as well.</p> <p>I get a lot of benefits from things I learned in Drupal that I can apply in other contexts.</p> <ul> <li>Provide rationale for design decisions. So much typing in issue queue comments!</li> <li>Help people see the other’s point of view and then come to a shared decision.</li> <li>Or agree to disagree, then still make a choice.</li> <li>An appreciation and at least a “gist of things” knowledge of the complexity of software development. It helps with clarifying scope, finding a good place to start, and understanding what is difficult and what can be relatively straight forward.</li> <li>Pragmaticism over purism</li> <li>Edge cases are important</li> <li>There’s a difference between patience and stubborness</li> <li>Accessibility, multilingual, extensibility, modularity are hard but worth it</li> <li>If you can’t imagine why somebody would want do do X, it’s always from a lack of imagination from your part</li> <li>There’s always so much more to do</li> <li>There’s only so much you can do</li> <li>When you start taking things personal it’s probably time to take a break</li> <li>It’s amazing what people can get done when driven by a passion for doing a good thing and doing it well.</li> </ul> <p>… and many returns!</p> </div> <div class="field field--name-taxonomy-vocabulary-1 field--type-entity-reference field--label-inline"> <div class="field__label">Tags</div> <div class="field__items"> <div class="field__item"><a href="http://default/tag/drupal" hreflang="en">Drupal</a></div> <div class="field__item"><a href="http://default/drupal" hreflang="en">drupalplanet</a></div> <div class="field__item"><a href="http://default/tag/open-source" hreflang="en">open source</a></div> </div> </div> <span class="hidden"><a href="https://brid.gy/publish/twitter"></a></span> <div class="node__links"> <ul class="links inline"><li class="comment-forbidden"></li></ul> </div> </div> Mon, 15 Jan 2018 21:34:28 +0000 Roy 348 at http://default One to many or one to one, an example of a Drupal UX design decision http://default/2018/example-Drupal-ux-design-decision <div data-history-node-id="336" class="h-entry node node--type-piece node--view-mode-fulltext ds-1col clearfix"> <div class="clearfix text-formatted field field--name-field-sub-title field--type-text field--label-above"> <div class="field__label">Sub title</div> <div class="field__item"><p>Short recap of an interesting discussion during today’s UX meeting.</p> </div> </div> <div class="field field--name-field-image field--type-image field--label-hidden field__item">/sites/default/files/styles/large/public/media-upload-sketch.png?itok=ar3pBxzP</div> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>About inserting media items from within the WYSIWYG editor. These could be different types of media files, like images, video and audio. You could even have different flavours for the same file type. For example with images, you might want to store different information and metadata on product images than on images used in press releases or for the company blog posts.</p> <p>The question was how to provide the starting point(s) for this. Of course the goal would be to make this as transparent as possible, reducing the amount of administrative busy work to the required minimum. But, structured content does not yet create itself automatically, we do have to provide forms that present the required fields to fill out when adding a media item.</p> <h2>We discussed two basic approaches</h2> <p>There are likely more and there’s room for subtle variations inside these two as well.</p> <h3>Option 1: start with a single button to add media</h3> <p><img alt="Workflow sketch of option 1" data-entity-type="" data-entity-uuid="" src="http://default/sites/default/files/media-upload-1_0.png" /></p> <ol> <li>Click 1 generic “add media” button in the WYSIWYG editor that launches a media upload form</li> <li>Upload the media (image, video, audio, …) you want and save</li> <li>Figure out the media file type and present the corresponding form with the required (meta)data fields in a second step</li> <li>Save and return to the editor</li> </ol> <h3>Option 2: choose from multiple buttons to add a specific media item</h3> <p><img alt="Workflow sketch of option 2" data-entity-type="" data-entity-uuid="" src="http://default/sites/default/files/media-upload-2_0.png" /></p> <ol> <li>Find and click the add button for the media you want to create. There would be separate buttons for inserting an image, a video, an audio item</li> <li>Because the type is known we can directly show the form for the required (meta)data.</li> <li>Save and return to the editor.</li> </ol> <p>(Although this list only goes to 3 instead of 4, there is a bit more work for the user to do in step 1: finding the right media button to click)</p> <p>After a bit of back and forth we chose option 2, because:</p> <ul> <li>A one-on-one relationship between WYSIWYG button and media type to create is easier to understand</li> <li>The upload process can be contained within 1 step because the system knows upfront which form to show for the required info.</li> <li>With this one-to-one relationship, per media type permissions can be handled more elegantly (you either have a audio upload button or you don’t)</li> </ul> <p>The trade-offs are:</p> <ul> <li>it’s not super elegant to require the user to do the upfront work of explicitly choosing the type of media to create.</li> <li>With multiple types of media available we’ll have to see how to expose all those different options in the WYSIWYG editor toolbar.</li> </ul> </div> <div class="field field--name-taxonomy-vocabulary-1 field--type-entity-reference field--label-inline"> <div class="field__label">Tags</div> <div class="field__items"> <div class="field__item"><a href="http://default/tag/drupal" hreflang="en">Drupal</a></div> <div class="field__item"><a href="http://default/drupal" hreflang="en">drupalplanet</a></div> </div> </div> <span class="hidden"><a href="https://brid.gy/publish/twitter"></a></span> <div class="node__links"> <ul class="links inline"><li class="comment-forbidden"></li></ul> </div> </div> Tue, 02 Jan 2018 22:57:07 +0000 Roy 336 at http://default