diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index 1269a81..e388065 100644
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -63,9 +63,13 @@
 
     <!-- Dimensions for most recent call shortcut cards -->
     <dimen name="recent_call_log_item_translation_z">4dp</dimen>
-    <dimen name="recent_call_log_item_padding">8dp</dimen>
+    <dimen name="recent_call_log_item_margin">8dp</dimen>
+    <dimen name="recent_call_log_item_margin_bottom">6dp</dimen>
+
     <!-- The maximum amount to clip on the left and right of the recent call shortcut card -->
     <dimen name="recent_call_log_item_horizontal_clip_limit">20dp</dimen>
+    <dimen name="recent_call_log_item_padding_start">8dp</dimen>
+    <dimen name="recent_call_log_item_padding_bottom">7dp</dimen>
 
     <!-- Size of the star icon on the favorites tile. -->
     <dimen name="favorites_star_icon_size">12dp</dimen>
diff --git a/res/values/styles.xml b/res/values/styles.xml
index e47c05e..1044a1e 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -33,9 +33,9 @@
         <item name="activated_background">@drawable/list_item_activated_background</item>
         <item name="section_header_background">@drawable/list_title_holo</item>
         <item name="list_section_header_height">32dip</item>
-        <item name="list_item_padding_top">12dip</item>
+        <item name="list_item_padding_top">12dp</item>
         <item name="list_item_padding_right">0dip</item>
-        <item name="list_item_padding_bottom">12dip</item>
+        <item name="list_item_padding_bottom">12dp</item>
         <item name="list_item_padding_left">0dip</item>
         <item name="list_item_gap_between_image_and_text">8dip</item>
         <item name="list_item_gap_between_label_and_data">5dip</item>
@@ -55,8 +55,9 @@
         <item name="contact_browser_list_padding_right">0dp</item>
         <item name="contact_browser_background">@color/contact_list_background_color</item>
         <item name="list_item_name_text_color">@color/contact_list_name_text_color</item>
-        <item name="list_item_name_text_size">@dimen/contact_browser_list_item_text_size</item>
+        <item name="list_item_name_text_size">16sp</item>
         <item name="list_item_text_indent">@dimen/contact_browser_list_item_text_indent</item>
+        <item name="list_item_text_offset_top">-2dp</item>
         <!-- CallLog -->
         <item name="call_log_primary_text_color">@color/contact_list_name_text_color</item>
         <item name="call_log_primary_background_color">#000000</item>
@@ -102,7 +103,7 @@
         <!-- CallLog -->
         <item name="call_log_primary_text_color">#404040</item>
         <item name="call_log_primary_background_color">#FFFFFF</item>
-        <item name="call_log_secondary_text_color">#9a9a9a</item>
+        <item name="call_log_secondary_text_color">#8f8f8f</item>
         <item name="call_log_secondary_background_color">#FFFFFF</item>
         <item name="call_log_header_color">#FFFFFF</item>
         <!-- VoicemailStatus -->
diff --git a/src/com/android/dialer/list/ShortcutCardsAdapter.java b/src/com/android/dialer/list/ShortcutCardsAdapter.java
index 4df44f0..a39bed5 100644
--- a/src/com/android/dialer/list/ShortcutCardsAdapter.java
+++ b/src/com/android/dialer/list/ShortcutCardsAdapter.java
@@ -27,6 +27,7 @@
 import android.view.ViewGroup;
 import android.widget.BaseAdapter;
 import android.widget.FrameLayout;
+import android.widget.LinearLayout;
 
 import com.android.dialer.R;
 import com.android.dialer.calllog.CallLogAdapter;
@@ -54,7 +55,10 @@
 
     private final ListsFragment mFragment;
 
-    private final int mCallLogPadding;
+    private final int mCallLogMargin;
+    private final int mCallLogMarginBottom;
+    private final int mCallLogPaddingStart;
+    private final int mCallLogPaddingBottom;
     private final int mCardMaxHorizontalClip;
 
     private final Context mContext;
@@ -104,7 +108,14 @@
         mFragment = fragment;
         mCardMaxHorizontalClip = resources.getDimensionPixelSize(
                 R.dimen.recent_call_log_item_horizontal_clip_limit);
-        mCallLogPadding = resources.getDimensionPixelSize(R.dimen.recent_call_log_item_padding);
+        mCallLogMargin = resources.getDimensionPixelSize(R.dimen.recent_call_log_item_margin);
+        mCallLogMarginBottom =
+                resources.getDimensionPixelSize(R.dimen.recent_call_log_item_margin_bottom);
+        mCallLogPaddingStart =
+                resources.getDimensionPixelSize(R.dimen.recent_call_log_item_padding_start);
+        mCallLogPaddingBottom =
+                resources.getDimensionPixelSize(R.dimen.recent_call_log_item_padding_bottom);
+
         mCallLogAdapter = callLogAdapter;
         mObserver = new CustomDataSetObserver();
         mCallLogAdapter.registerDataSetObserver(mObserver);
@@ -211,8 +222,15 @@
             final FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(
                     FrameLayout.LayoutParams.MATCH_PARENT,
                     FrameLayout.LayoutParams.WRAP_CONTENT);
-            params.setMargins(mCallLogPadding, mCallLogPadding, mCallLogPadding, mCallLogPadding);
+            params.setMargins(mCallLogMargin, mCallLogMargin, mCallLogMargin, mCallLogMarginBottom);
             view.setLayoutParams(params);
+
+            LinearLayout actionView =
+                    (LinearLayout)view.findViewById(R.id.primary_action_view);
+            actionView.setPaddingRelative(
+                    mCallLogPaddingStart, actionView.getPaddingTop(),
+                    actionView.getPaddingEnd(), mCallLogPaddingBottom);
+
             view.setTranslationZ(getResources().getDimensionPixelSize(
                     R.dimen.recent_call_log_item_translation_z));
 
