Bella Bag (EN)

About Bella Bag (EN)

Bella Bag is an elegant and practical knitted bag, perfect for both everyday use and special occasions. The bag is worked from the bottom up with a sturdy double-knit base and stockinette sides. It comes in three sizes: 20 × 15 × 6 cm (small), 23 × 18 × 8 cm (medium), and 26 × 21 × 10 cm (large). It is knitted in Reborn Tweed from Blackhill Yarns, and requires 120–160 g of yarn depending on the size. The yarn has a yardage of 300 m per 100 g, equivalent to 150 m per 50 g. The bag is finished with integrated handles and can be enhanced with a crocheted edging and lining for a clean and durable result. An ideal combination of function and design.

Designer

Craft

Needle / Hook Size

,

Language

Stitch Pattern & Technique

, , ,

Difficulty Level

Meterage (per 50 g)

Gauge

Collection

,

About this Pattern

Bella Bag is a stylish and functional knitted bag that combines durability with aesthetics. The bag is worked from the bottom up with a double-knit base for a stable foundation, and the sides are then knitted in stockinette stitch. Bella Bag comes in three sizes:
small (20 × 15 × 6 cm), medium (23 × 18 × 8 cm), and large (26 × 21 × 10 cm), making it suitable for everything from daily essentials to a day out in the city.


The bag is knitted in the soft and sustainable Reborn Tweed from Blackhill Yarns (100 g = 300 m), and requires approx. 120 g (small), 140 g (medium), and 160 g (large). With this yardage, it corresponds to 150 m per 50 g. Gauge is 16 sts and 22 rows per 10 × 10 cm on 5 mm needles in stockinette, giving a dense, firm structure ideal for bags.


The bag walls are worked in the round on both circular and double-pointed needles (all 5 mm), and the handles are formed directly within the work using loop cast-on and bind-off techniques. An optional crocheted edging can be added for extra stability and a clean finish, and lining, buttons, or personal details may be added to make each Bella Bag unique.


For the best finish, a single crochet edging around the opening is recommended using the same yarn and a crochet hook half a size smaller than the knitting needles. The lining is sewn and attached at the end, giving the bag a professional finish.


Bella Bag is the perfect project for knitters who want to combine functionality with style. With its simple construction and opportunities for personal customization, it is a pleasure to knit and a stylish accessory you’ll use again and again.

Meet

Axelknit

My name is Anna, and I began my yarn journey with Axelknit as a way to find calm and create something tangible. I draw inspiration from Nordic nature and simplicity, and my focus is always on functional, timeless designs that feel personal and easy to love.

Related patterns

Other patterns you might enjoy.

Rillestrømper (EN)

Dorte Bak Knitting

Eris Trousers (EN)

YarnS Design

FurLux Clutch (EN)

YarnS Design

Sakura Sleeves (EN)

Dorte Bak Knitting

Hope Top (EN)

YarnS Design

Ribbedy Neck Warmer (EN)

Dorte Bak Knitting

Luise Shawlette (EN)

MrsFunnyValentine

Gabriella Tee (EN)

Adorable Knits
<?php
/**
 * Mini-cart
 *
 * Contains the markup for the mini-cart, used by the cart widget.
 *
 * This template can be overridden by copying it to yourtheme/woocommerce/cart/mini-cart.php.
 *
 * HOWEVER, on occasion WooCommerce will need to update template files and you
 * (the theme developer) will need to copy the new files to your theme to
 * maintain compatibility. We try to do this as little as possible, but it does
 * happen. When this occurs the version of the template file will be bumped and
 * the readme will list any important changes.
 *
 * @see              https://woocommerce.com/document/template-structure/
 * @package          WooCommerce\Templates
 * @version          9.5.0
 * @flatsome-version 3.19.8
 */

defined( 'ABSPATH' ) || exit;

do_action( 'woocommerce_before_mini_cart' ); ?>

<?php if ( WC()->cart && ! WC()->cart->is_empty() ) : ?>

	<ul class="woocommerce-mini-cart cart_list product_list_widget <?php echo esc_attr( $args['list_class'] ); ?>">
		<?php
		do_action( 'woocommerce_before_mini_cart_contents' );

		foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
			$_product   = apply_filters( 'woocommerce_cart_item_product', $cart_item['data'], $cart_item, $cart_item_key );
			$product_id = apply_filters( 'woocommerce_cart_item_product_id', $cart_item['product_id'], $cart_item, $cart_item_key );

			if ( $_product && $_product->exists() && $cart_item['quantity'] > 0 && apply_filters( 'woocommerce_widget_cart_item_visible', true, $cart_item, $cart_item_key ) ) {
				/**
				 * This filter is documented in woocommerce/templates/cart/cart.php.
				*
				* @since 2.1.0
				*/
				$product_name      = apply_filters( 'woocommerce_cart_item_name', $_product->get_name(), $cart_item, $cart_item_key );
				$thumbnail         = apply_filters( 'woocommerce_cart_item_thumbnail', $_product->get_image(), $cart_item, $cart_item_key );
				$product_price     = apply_filters( 'woocommerce_cart_item_price', WC()->cart->get_product_price( $_product ), $cart_item, $cart_item_key );
				$product_permalink = apply_filters( 'woocommerce_cart_item_permalink', $_product->is_visible() ? $_product->get_permalink( $cart_item ) : '', $cart_item, $cart_item_key );
				?>
				<li class="woocommerce-mini-cart-item <?php echo esc_attr( apply_filters( 'woocommerce_mini_cart_item_class', 'mini_cart_item', $cart_item, $cart_item_key ) ); ?>">
					<?php
					echo apply_filters( // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
						'woocommerce_cart_item_remove_link',
						sprintf(
							'<a href="%s" class="remove remove_from_cart_button" aria-label="%s" data-product_id="%s" data-cart_item_key="%s" data-product_sku="%s" data-success_message="%s">&times;</a>',
							esc_url( wc_get_cart_remove_url( $cart_item_key ) ),
							/* translators: %s is the product name */
							esc_attr( sprintf( __( 'Remove %s from cart', 'woocommerce' ), wp_strip_all_tags( $product_name ) ) ),
							esc_attr( $product_id ),
							esc_attr( $cart_item_key ),
							esc_attr( $_product->get_sku() ),
							/* translators: %s is the product name */
							esc_attr( sprintf( __( '&ldquo;%s&rdquo; has been removed from your cart', 'woocommerce' ), wp_strip_all_tags( $product_name ) ) )
						),
						$cart_item_key
					);
					?>
					<?php if ( empty( $product_permalink ) ) : ?>
						<?php echo $thumbnail . wp_kses_post( $product_name ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
					<?php else : ?>
						<a href="<?php echo esc_url( $product_permalink ); ?>">
							<?php echo $thumbnail . wp_kses_post( $product_name ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
						</a>
					<?php endif; ?>
					<?php echo wc_get_formatted_cart_item_data( $cart_item ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
					<?php echo apply_filters( 'woocommerce_widget_cart_item_quantity', '<span class="quantity">' . sprintf( '%s &times; %s', $cart_item['quantity'], $product_price ) . '</span>', $cart_item, $cart_item_key ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
				</li>
				<?php
			}
		}

		do_action( 'woocommerce_mini_cart_contents' );
		?>
	</ul>

	<?php do_action( 'flatsome_after_mini_cart_contents' ); ?>

	<div class="ux-mini-cart-footer">
		<?php do_action( 'flatsome_before_mini_cart_total' ); ?>

		<p class="woocommerce-mini-cart__total total">
			<?php
			/**
			 * Hook: woocommerce_widget_shopping_cart_total.
			*
			* @hooked woocommerce_widget_shopping_cart_subtotal - 10
			*/
			do_action( 'woocommerce_widget_shopping_cart_total' );
			?>
		</p>

		<?php do_action( 'woocommerce_widget_shopping_cart_before_buttons' ); ?>

		<p class="woocommerce-mini-cart__buttons buttons"><?php do_action( 'woocommerce_widget_shopping_cart_buttons' ); ?></p>

		<?php do_action( 'woocommerce_widget_shopping_cart_after_buttons' ); ?>
	</div>

<?php else : ?>

	<div class="ux-mini-cart-empty flex flex-row-col text-center pt pb">
		<?php do_action( 'flatsome_before_mini_cart_empty_message' ); ?>
		<p class="woocommerce-mini-cart__empty-message empty"><?php esc_html_e( 'No products in the cart.', 'woocommerce' ); ?></p>
		<?php do_action( 'flatsome_after_mini_cart_empty_message' ); ?>
	</div>

<?php endif; ?>

<?php do_action( 'woocommerce_after_mini_cart' ); ?>