Search code examples
polymerpolymer-1.0paper-elements

Polymer 1.0: Styling <paper-toolbar>


Please provide a working JSBin that makes this <paper-toolbar> "look pretty" as follows:

  • Vertically center the <paper-input> and <paper-dropdown-menu> elements to the middle of the <paper-toolbar>.
  • Vertically align the <paper-input> and <paper-dropdown-menu> horizontal input field lines with each other.
  • Horizontally space the <paper-input> and <paper-dropdown-menu> elements between each other by at least 20px.

Link to JSBin

http://jsbin.com/hiwoqapawu/edit?html,output
<html>

<head>
  <title>My Element</title>

  <script data-require="polymer@*" data-semver="1.0.0" src="http://www.polymer-project.org/1.0/samples/components/webcomponentsjs/webcomponents-lite.js"></script>
  <script data-require="polymer@*" data-semver="1.0.0" src="http://www.polymer-project.org/1.0/samples/components/polymer/polymer.html"></script>
  <base href="http://element-party.xyz/" />
  <link rel="import" href="all-elements.html" />
</head>

<body>
  <dom-module id="my-element">
    <style>
      paper-toolbar {
        background: var(--paper-blue-100);
      }
    </style>
    <template>
      <paper-toolbar>
        <paper-input id="search" label="Search">
          <iron-icon icon="search" prefix></iron-icon>
          <paper-icon-button suffix icon="clear"></paper-icon-button>
        </paper-input>
        <paper-dropdown-menu label="Sort by">
          <paper-menu class="dropdown-content">
            <paper-item>Foo</paper-item>
            <paper-item>Bar</paper-item>
            <paper-item>Qux</paper-item>
          </paper-menu>
        </paper-dropdown-menu>
      </paper-toolbar>
    </template>
    <script>
      Polymer({
        is: "my-element"
      });
    </script>
  </dom-module>

  <my-element></my-element>
</body>

</html>

Solution

  • Link to JSBin

    http://jsbin.com/bumisimali/edit?html,output
    <html>
    
    <head>
      <title>My Element</title>
    
      <script data-require="polymer@*" data-semver="1.0.0" src="http://www.polymer-project.org/1.0/samples/components/webcomponentsjs/webcomponents-lite.js"></script>
      <script data-require="polymer@*" data-semver="1.0.0" src="http://www.polymer-project.org/1.0/samples/components/polymer/polymer.html"></script>
      <base href="http://element-party.xyz/" />
      <link rel="import" href="all-elements.html" />
    </head>
    
    <body>
      <dom-module id="my-element">
        <style>
          paper-toolbar {
            background: var(--paper-blue-100);
            @apply(--layout-around-justified);
          }
          paper-dropdown-menu, paper-input {
            @apply(--layout-self-end);
          }
        </style>
        <template>
          <paper-toolbar>
            <div class="flex"></div>
            <paper-input id="search" label="Search">
              <iron-icon icon="search" prefix></iron-icon>
              <paper-icon-button suffix icon="clear"></paper-icon-button>
            </paper-input>
            <div class="flex"></div>
            <paper-dropdown-menu label="Sort by">
              <paper-menu class="dropdown-content">
                <paper-item>Foo</paper-item>
                <paper-item>Bar</paper-item>
                <paper-item>Qux</paper-item>
              </paper-menu>
            </paper-dropdown-menu>
            <div class="flex"></div>
          </paper-toolbar>
        </template>
        <script>
          Polymer({
            is: "my-element"
          });
        </script>
      </dom-module>
    
      <my-element></my-element>
    </body>
    
    </html>