I know that my solution is not like your image, but it can help you get started.
You can play a little code to get what you want and bring it elegance.
Here you can find jsFiddle .
HTML:
<div class="marginer"> <div class="box"> <div class="boxIn">This is text</div> <div class="boxArrowUp"> <div class="boxArrowUpIn"></div> </div> <div class="boxArrowDown"> <div class="boxArrowDownIn"></div> </div> </div> </div>
CSS
.marginer { margin: 20px; } .boxIn { float: left; border: 1px solid #fff; border-right: 0; padding: 6px 12px 6px 30px; box-shadow: 1px 2px 0px #5e98ba, 1px -1px 0px #5e98ba; } .box { position: relative; display: inline-block; font-weight: bold; margin: 10px 10px 10px -18px; color: #fff !important; background-color: #5e98ba; -webkit-box-shadow: 3px 2px 4px rgba(0, 0, 0, .5); -moz-box-shadow: 3px 2px 4px rgba(0, 0, 0, .5); box-shadow: 8px 3px 6px rgba(0, 0, 0, .5); } .box:before { content:' '; position: absolute; width: 0; height: 0; left: 0px; top: 100%; border-width: 5px 10px; border-style: solid; border-color: #315164 #315164 transparent transparent; } .boxArrowUp { content:' '; position: absolute; width: 0; height: 0; right: -10px; top: 0; border-width: 10px 5px; border-style: solid; border-color: #5e98ba transparent transparent #5e98ba; } .boxArrowUpIn:before { content:' '; position: absolute; width: 10px; height: 20px; top: -10px; left: -5px; border-top: 1px solid #fff; border-right: 0px; box-shadow: 0px 0px 0px #5e98ba, 0px -1px 0px #5e98ba; } .boxArrowUpIn:after { content:' '; position: absolute; width: 2px; height: 20px; top: -11px; left: -1px; background: #5e98ba; border-left: 1px solid #fff; -moz-transform:rotate(28deg); -webkit-transform:rotate(28deg); -o-transform:rotate(28deg); -ms-transform:rotate(28deg); z-index: 2; box-shadow: 3px 2px 4px rgba(0, 0, 0, .5); } .boxArrowDown { content:' '; position: absolute; width: 0; height: 0; right: -10px; bottom: 0; border-width: 10px 5px; border-style: solid; border-color: transparent transparent #5e98ba #5e98ba; } .boxArrowDownIn:before { content:' '; position: absolute; width: 10px; height: 20px; bottom: -10px; left: -5px; border-bottom: 1px solid #fff; border-right: 0px; box-shadow: 0px 2px 0px #5e98ba, 0px 0px 0px #5e98ba; } .boxArrowDownIn:after { content:' '; position: absolute; width: 2px; height: 19px; bottom: -11px; left: -1px; background: #5e98ba; border-left: 1px solid #fff; -moz-transform:rotate(332deg); -webkit-transform:rotate(332deg); -o-transform:rotate(332deg); -ms-transform:rotate(332deg); z-index: 2; box-shadow: 1px 4px 3px rgba(0, 0, 0, .5); }
I played a little with shadows and trunks to achieve a result.
Let me know if this helped you.
source share