Answer for both question and comment on @glis answer:
As other explained: SLDS is used only for styling. There are already ready to use components that are styled with SLDS and you only need to add markup and eventually some logic.
Currently you have (or at least I found only those) 3 ready to use options:
lightning:select
Component:
<aura:component>
<lightning:select aura:id="select" name="select" label="Select a pie" onchange="{! c.onChange }">
<option value="">choose one...</option>
<option value="apple">apple</option>
<option value="pumpkin">pumpkin</option>
<option value="cherry">cherry</option>
<option value="blueberry">blueberry</option>
<option value="pickle">pickle</option>
</lightning:select>
</aura:component>
Controller:
({
onChange: function (cmp, evt, helper) {
alert(cmp.find('select').get('v.value') + ' pie is good.');
}
})
lightning:combobox (which SHOULD have already ready to use multiselect functionality and I don't have a clue why SFDC released that component without implementing such functionality).
Component:
<aura:component>
<aura:attribute name="options" type="List" default="[
{'label': 'New', 'value': 'new'},
{'label': 'In Progress', 'value': 'inProgress'},
{'label': 'Finished', 'value': 'finished'},
]"/>
<lightning:combobox name="progress" label="Status" value="inProgress" placeholder="Select Progress" options="{! v.options }" onchange="{! c.handleChange }"/>
</aura:component>
Controller:
({
handleChange: function (cmp, event) {
// This will contain the string of the "value" attribute of the selected option
var selectedOptionValue = event.getParam("value");
alert("Option selected with value: '" + selectedOptionValue + "'");
}
})
lightning:dualListbox (with this you can fulfill requirement of multiselecting options)
Component:
<aura:component>
<aura:attribute name="options" type="List" default="[
{ label: 'English', value: 'en' },
{ label: 'German', value: 'de' },
{ label: 'Spanish', value: 'es' },
{ label: 'French', value: 'fr' },
{ label: 'Italian', value: 'it' },
{ label: 'Japanese', value: 'ja' }]"/>
<lightning:dualListbox name="languages"
label= "Select Languages"
sourceLabel="Available"
selectedLabel="Selected"
fieldLevelHelp="This is a dual listbox"
options="{!v.options}"
onchange="{! c.handleChange }"/>
</aura:component>
Controller:
({
handleChange: function (cmp, event) {
// This will contain an array of the "value" attribute of the selected options
var selectedOptionValue = event.getParam("value");
alert("Option selected with value: '" + selectedOptionValue.toString() + "'");
}
})
Finally I found this blogpost which shows how to create multiselect picklist. But if you're only starting with lightning components I would recommend to use something that already ready to use and do not need any maintenance.
Also I would recommend Lightning Component Library from which I took those examples. Using this documentation you can learn a lot. It have list of all ready to use component with documentation and examples.
And last but not least as in previous answer you can use ui:inputSelect with multiple="true" parameter which will allow you to use multiselect picklist but it's not styled as you want.